没啥技术含量,主要是讲解下挖掘文件包含漏洞的技巧。
在PHP安全中,文件包含漏洞是很严重的漏洞!今天我不讲基础了,直接实战!
怎么挖掘文件包含漏洞?注意require(),require_once(),include(),include_once(),还有就是()变成空格也是一样的效果!
这次我演示的CMS是:ECShop_V2.7.3_GBK_release1106
我就随手测试就挖到了四个文件包含漏洞。哈哈,我和我的小伙伴都惊呆了。因为文件包含漏洞太多!
首先我们关键字搜索:include_once
http://img2.ph.126.net/PLA7iQc-m ... 282726048314526.png
搜索发现很多用include_once,这时候我们应该开心这么多include_once,肯定有几个是可以利用的地方233,我说这句话是相对的,不是绝对的!
很快我就找到一处可疑的:
第一处文件包含漏洞存在地址:
http://img1.ph.126.net/38cvb4kGS_W1AyexfUQtIw==/6632035335934744219.png
双击打开这个文件:
http://img1.ph.126.net/iNVDvkCvehDt-cRSF3he-g==/6631857215051040547.png
直觉告诉我这里有漏洞,自己看他的判断就知道,在这里$file可控!
看代码知道:$directory = ROOT_PATH . 'includes/modules/shipping';
所以我们找到这个目录下看看:
http://img0.ph.126.net/lG-WpzvbKXrQy4QZP8pSQA==/6632514723001778922.png
我们知道了$file可以控制,所以我们在这个文件下面添加个test.php的文件,文件里面写phpinfo代码:
http://img0.ph.126.net/mlUEmct9kk8F0xolpK1g4A==/6632056226655672057.png
然后直接访问php构造的地址直接访问:
http://img2.ph.126.net/nr8vKpTNQrGtBOoOsdjj8A==/6632531215676198621.png
这时候我们会发现我们的phpinfo被成功执行了!
现在我开始讲解第二个文件包含漏洞:
http://img2.ph.126.net/dcrgJ3Ll4sB5hXf7LxuwPA==/6632531215676198702.png
这里很可疑,我们打开文件:
http://img1.ph.126.net/tCg-hgME89kw3EBNLC5Pww==/6631879205283593254.png
这里可能存在安全问题经验证发现$shipping是可控的!我们查询$shipping是什么?
http://img1.ph.126.net/Kf2OFgtWCNh5SRSkQHrpOw==/6632365189420403254.png
POST请求哎,这里意思就是如果变量里面有内容,就把shipping赋值过去!
include_once(ROOT_PATH . 'includes/modules/shipping/' . $shipping . '.php');
找到这个包含文件位置:
http://img2.ph.126.net/4HOKInp7JbxnWuGfcxeV2A==/6631999052051008967.png
test.php里面的代码是phpinfo代码!我们开始构造地址访问:
http://img2.ph.126.net/0t4tYpGpPf-SbsvzclxdSQ==/6632499329838985925.png
成功!
第三个文件包含漏洞:
http://img1.ph.126.net/nC6npKfwMoH9PLorNnqnyA==/6632198063655647518.png
同样存在,利用方式和前两种差不多,我快速讲解了,这里一样的问题这里是$payment可控:
查询:$payment
http://img2.ph.126.net/MLskQwykB2fRCXJBNl63og==/6632343199187849810.png
POST请求可以!
include_once(ROOT_PATH.'includes/modules/payment/' . $payment . '.php');
这是包含的文件目录,找到这个目录:
http://img2.ph.126.net/u9vT-OSqcgxB7N7QM0Ig3g==/6631992454981242374.png
写个2.php进去,然后构造地址访问:
http://img2.ph.126.net/G3NFLkNvlSAvUxlBZtUFOw==/6632121097841704583.png
有点麻木了。。
第四个文件包含漏洞:
http://img2.ph.126.net/czi1bEMIvr23g6J1J-qoeQ==/6631988056934753927.png
这里!
http://img2.ph.126.net/9qvWHpp3yIKzbyG5J4KFtA==/6632504827397124923.png
这里直接request请求,没有做过滤,code参数可控!
一样的道理:
include_once(ROOT_PATH.'includes/modules/payment/' . $_REQUEST['code'] . '.php');
这是包含文件进入这个目录新建一个文件写点内容:
我这里直接构造地址吧:
http://img2.ph.126.net/5FhGwN0iR3wzDN8Ip5KbtQ==/6632211257795216318.png
第五个文件包含:
http://img2.ph.126.net/7pPVl-PcaED2GEj7HGM8Ag==/6632590589304102347.png
不废话了这里我直接:
http://img0.ph.126.net/6bxpK3jy_1A7gGcny5aZyA==/6632579594187815796.png
然后构造代码:
http://img2.ph.126.net/u9iLjOfDc46n0ERFcxwpEQ==/6632056226655672434.png
直接访问!文件包含漏洞太多了呜呜!累了,就这样!
技巧很简单,看哪里可控直接艹! |
评分
-
查看全部评分
|