系统命令执行的概括
系统命令执行一般是在Web应用中,可能有时候需要调用一些系统命令来执行,而程序在开发的时候没有对输入进行严格的过滤,导致恶意用户可以构造一些恶意的系统命令,从而达成系统命令执行攻击。
目录:
系统命令执行的 概括:
免责声明:
系统命令执行的函数:
系统命令执行的危害:
测试的靶场:
1.命令执行漏洞的 管道符 方法:
2.命令执行漏洞 绕过前端限制.
(1)尝试127.0.0.1是这个正常执行,说明可能存在命令执行漏洞.
(2)输入127.0.0.1 & ls,说IP格式不正确.
(3)用 Burp 抓包看看数据.
(4)在数据包里面添加 | dir ,看看服务器的响应了相关文件名.
(5)在数据包里面添加 cat <key_2234286364586.php 读取这个php文件拿到flag.
3.命令执行漏洞的防御措施.
(1)对传入的命令做一个严格的过滤.
(2)尽可能不要使用外部执行命令
(3)尽可能使用escapeshellarg 函数来处理传入的命令参数.
免责声明:
严禁利用本文章中所提到的工具和技术进行非法攻击,否则后果自负,上传者不承担任何责任。
系统命令执行的函数:
system(),passthru(),exec(),shell_exec() ......
系统命令执行的危害:
(1)可以使用Web程序的权限来执行来执行系统的命令.(包含读写文件的)
(2)利用写入的木马可以连接服务器(反弹shell).
(3)进行进一步的渗透,从而可以控制整个网站甚至服务器.
测试的靶场:
(1)自己搭建的DVWA靶场:安装在win XP(IP地址:192.168.0.105)
DVWA靶场搭建链接:DVWA的靶场搭建_半个西瓜.的博客-CSDN博客
(2)墨者学院的在线靶场:在线靶场_墨者学院
1.命令执行漏洞的 管道符 方法:
(1)& 符号 可以两个命令都执行.
执行的命令:
127.0.0.1 & ipconfig
如果想执行系统的其他命令把< ipconfig > 换为 想执行的系统命令.
查看文件目录:
127.0.01 & dir
(2)&&符号 当前命令执行成功,后面命令才能执行.
1.执行的命令:(前面的 11111111 执行错误,所有后面的 dir 就不会执行)
11111111 && dir
(2)
读取 bgxg.php 文件的内容:(前面的127.0.0.1执行成功,就会读取type bgxg.php 文件的内容)
127.0.0.1&& type bgxg.php
(3)|符号 不管前面命令执行成不成功,后面的命令都会继续执行.
显示当前Windows系统的版本号:(不管 127.0.0.1 执行成不成功,都会执行 ver)
127.0.0.1 | ver
(4)|| 符号 当前面的命令错误就会执行后面的,否则只执行前面的.
查看开启的所有端口:(因为 11111 执行错误,所有执行了 nettat -a 如果 11111 是正确的,则不会执行 netstat -a)
11111 || netstat -a
2.命令执行漏洞 绕过前端限制.
(1)尝试127.0.0.1是这个正常执行,说明可能存在命令执行漏洞.
(2)输入127.0.0.1 & ls,说IP格式不正确.
(3)用 Burp 抓包看看数据.
(4)在数据包里面添加 | dir ,看看服务器的响应了相关文件名.
(5)在数据包里面添加 cat <key_2234286364586.php 读取这个php文件拿到flag.
3.命令执行漏洞的防御措施.
(1)对传入的命令做一个严格的过滤.
(2)尽可能不要使用外部执行命令
(3)尽可能使用escapeshellarg 函数来处理传入的命令参数.
参考链接:命令执行漏洞利用及绕过方式总结 - My_Dreams - 博客园
参考链接:windows常用命令有哪些(整理)_san.hang的博客-CSDN博客
如果觉得《Web安全 RCE漏洞(命令执行漏洞的 测试和利用).》对你有帮助,请点赞、收藏,并留下你的观点哦!