从本地文件包含到getshell

2018-08-29 14:55:547294人阅读

近日,在协助朋友处理安全事件的时候,意外的发现了文件包含漏洞的2中非常规利用方式,和大家分享,新手求轻拍。

 

0x00、什么是文件包含漏洞?

文件包含漏洞的产生原因是在通过某些函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。

 

0x01、文件包含漏洞的常见利用方式

常见利用方式比较简单明了,比如文件读取,可以读取系统敏感文件和webserver的相关配置文件。如果可以远程包含的话,还可以直接运行远程服务器上的代码。

 

0x02、利用方式一:通过写入webserver的errorlog或者accesslog来实现一句话。适用于存在本地文件包含,但是无法上传文件的场景。

以dvwa为例,操作步骤如下:

I、                   通过文件包含查看webserver的配置,找到错误日志文件。利用dvwa自带的文件包含漏洞,查看httpd.conf文件,找到error_log

2901.png

II、                 触发webserver的404,把webshell写入错误文件。

2902.png

因为URL编码的缘故,需要借助burp来修改参数

2903.png

III、               通过包含错误日志,运行一句话木马。

这里用phpinfo做例子

2904.png

 

0x03、利用方式二:特殊的php wrapper,本例以zip说明。

现在很多网站都会通过强制文件扩展名的方式来避免用户上传可执行文件,但在特定的场景中,我们可以通过某些协议巧妙的避开。

I、                    创建一个php文件,还是以phpinfo为例。

<?php phpinfo(); >

II、                  目标网站强制后缀名为png的情况下,把步骤I中的php文件改名为test.png,然后压缩为test.zip。

III、                 通过文件包含的方式,就可以getshell了。

2905.png

 

又查下文档,其实php还有很多类似的利用方式,附在参考文件里面。

 

参考文件:https://www.exploit-db.com/docs/40992.pdf



本文作者byp2ss,转载需注明出处及本文链接

0
现金券
0
兑换券
立即领取
领取成功