漏洞概要
关注数(24)
关注此漏洞
漏洞标题:链家旗下自如某站一个有意思的文件包含到简单内网渗透(本地文件包含getshell技巧)
提交时间:2015-08-14 18:16
修复时间:2015-08-18 13:45
公开时间:2015-08-18 13:45
漏洞类型:文件包含
危害等级:高
自评Rank:20
漏洞状态:厂商已经修复
Tags标签:
无
漏洞详情
披露状态:
2015-08-14: 细节已通知厂商并且等待厂商处理中
2015-08-14: 厂商已经确认,细节仅向厂商公开
2015-08-18: 厂商已经修复漏洞并主动公开,细节向公众公开
简要描述:
这个包含应该以前没有类似案例吧?
详细说明:
某日组里小伙伴丢来一个链接:
http://price.ziroom.com/?_p=../../../../../../../../etc/passwd%00.html
说存在本地文件包含,木有上传功能,可以截断怎么破?
拿到手第一感觉就是激动,早在很久以前一直就想要做这么一个实例,苦于没有找这样苛刻的环境,一直都没能如愿。
我们都知道在向服务器上任意php文件以form-data方式提交请求上传数据时,会生成临时文件,如果我们能直接包含临时文件就能执行我们任意的代码,但是有个前提是要知道临时文件的路径以及名称。
不得不佩服国外基佬的思路,他们发现可以通过phpinfo来获取临时文件的路径以及名称,我们有了路径跟名称就可以直接包含执行任意代码。
这里又有一个问题就是生成的临时文件会在极短的时间删除,所以我们要做的就是竞争!在删除之前包含它。
要做到竞争就必须在代码的执行效率上花功夫,用两个while循环来实现,第二个while来做核心的竞争,同时也要增加临时文件删除的时间,即提交大量的数据包,让缓存文件足够大,删除的时候时间就会相对花费的较多,竞争的概率就会更大。知道原理过后我用JAVA写了一个利用程序,为什么选择JAVA,因为JAVA的执行效率是仅次于C的。
利用条件:
1、 需要知道phpinfo路径;
2、 网站存在文件包含漏洞;
3、 Windows下有盘符之分,并不像Linux是基于根目录以树状的形式存在,所以Windows的利用条件比较苛刻,即存在远程包含可以指定盘符,或者tmp文件跟web目录在同一盘符下才可利用。
知道原理过后直接用写好的利用程序来测试
提示没有权限,那应该就是根目录没权限写了,扫了下目录发现有个cache目录,根据经验应该能写入。
成功写入得到webshell
内网渗透就是体力活了,由于网段里面装有ids、防火墙等设备,大大加长了渗透的时间。
端口应该是在设备上做了统一的策略,也不能用reGeorg、Tunna、reDuh等常用的内网渗透利器,metasploit时不时还会掉,看来只能掏出神器sSocks,在有限制的情况下建议用sSocks很不错。
反弹个SHELL,内核提权到ROOT,安装好sSocks,发现没有像metasploit一样一扫描就掉线。
虽然本机的路由表是172.16.5.0/24,但是我通过搜索以前该公司爆过的漏洞发现其他网段也能访问,大致确定范围为172.165.0.0/21内的都可以访问。通过proxychains的升级版proxychains4结合nmap探测内网,虽然没有metasploit方便,但是这个环境确实也只有这个方法了。
内网渗透就比较简单了,时间有限就不详细叙述了,只做证明不深入。
漏洞证明:
修复方案:
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2015-08-14 18:23
厂商回复:
确认,谢谢对链家安全的关注
最新状态:
2015-08-18:已经修复。