命令执行:
漏洞代码:
1 |
|
system()函数,执行系统命令, ping -c 2 ip,由于ip是客户端可控,导致命令执行。
漏洞代码二:
1 |
|
在执行命令之前,先正则表达式判断。
127.0.0.1;cat /etc/passwd 不满足正则表达式,所以返回无效的ip地址。
1 |
|
如果注入上面这样的代码,就会判断127.0.0.1是有效的ip,然后执行system函数
将\n换行符url编码。
漏洞代码三:
1 |
|
如果ip参数为正确的地址,则执行system(),否则就执行Location: example3.php?ip=127.0.0.1
-
效果展示 如果是有效地址,则ping给出的地址,如果是无效地址,就会ping 127.0.0.1。
-
漏洞利用 原理:由于在正则表达式判断ip地址时候,如果不符合,没有中止运行,而是302跳转到“Location: example3.php?ip=127.0.0.1”。 所以可以用nc或者telnet,观察到命令的执行结果。
1 |
|
1 |
|
命令执行的函数
system、exec、passthru、shell_exec、popen、proc_open、pcntl_exec
命令执行漏洞的危害
可以使得攻击者反弹一个shell。 例如LTR Scene(php写入一句话+sudoer提权)