命令执行漏洞的原理:
在操作系统中, & 、&& 、| 、 || 都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令
可以看到,low级别的代码接收了用户输入的ip,然后根据服务器是否是Windows NT系统,对目标ip进行不同的ping测试。但是这里对用户输入的ip并没有进行任何的过滤,所以我们可以进行命令执行漏洞
我们ping一下百度的ip地址看看,可以看到能ping通
我们尝试输入 61.135.169.125 & ipconfig ,在操作系统中," & 、&& 、| 、 || "都可以作为命令连接符使用,我们在ping完后再执行ipconfig 命令查看ip信息
可以看到,成功执行。然后我们就可以继续执行我们的命令了。把ipconfig换成其他的系统命令
1使用‘192.168.1882.129&&net users’查看当前系统下的用户
wmic useraccount list full 可以查到用户的各种消息
2中使用命令注入漏洞,打开靶机3389端口,添加用户,远程登陆到靶机。
(1)在文本框中输入‘192.168.182.129&&netstat -an’,查看系统当前开放的端口
(2)从上图可以看出系统开放了很多端口,可以选择不同端口作为入侵方法,本任务中采用3389端口及远程连接。3389端口没有开放,我们需要使用命令打开3389端口,输入如下字符串,命令执行结果如图。
127.0.0.1® ADD HKLM\SY