一,命令执行漏洞
(1) 定义
当黑客能控制这些执行系统命令的函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。
- PHP应用程序中常见的脚本漏洞之一;就好比说一句话木马<?php @eval($_POST['cmd']);?>
- 应用程序有时需要调用一些执行系统命令的函数,如在PHP中,使用system、exec、shell_exec、passthru、 popen、 proc_popen等函数可以执行系统命令
(2)分类
- 1.代码过滤不严或无过滤;
- 2.系统漏洞造成的命令执行,bash破壳漏洞,该漏洞可以构造环境变量的值来执行具有攻击力的脚本代码,会影响到bash交互的多种应用,例如:http,ssh,dhcp;
- 3.调用第三方组件或者函数
php【system(),shell_exec(),exec(),eval()】
java的struts框架 —> 漏洞很多】,thinkphp(老牌的PHP框架);
(3)常用的命令连接符
; 执行完前面的语句再执行后面的.
| 在前面命令执行成功的前提下 显示后面语句的执行结果【且不显示前面的执行结果】.
|| 当前面的语句执行出错时,才执行后面的语句.
& 和;一致
&& 前面的命令执行成功后执行后面的,若失败不执行后面的命令
#对 || 的说明
[root@yang log]# ping -c1 127.0.0.1 || date
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.011 ms
--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.011/0.011/0.011/0.000 ms ##前面命令执行成功,后面的命令不会执行
[root@yang log]# ging -c1 127.0.0.1 || date
bash: ging: command not found
2019年 08月 20日 星期二 22:42:05 CST
二,漏洞利用
DVWA下的代码过滤不严或无过滤型命令执行漏洞
低级安全模式
- 利用代码无过滤,使用连接符号连接恶意命令【渗透思路】 ---->在可以运用命令执行漏洞处
- 添加用户并添加到管理员组
- wget脚本,在运行
高级安全模式
【源码】
【漏洞利用】
最高级安全模式