渗透测试的核心步骤是获得shell,在渗透测试前期进行的各种漏洞利用方式,如,文件上传,文件包含,SQL注入等操作,都是为了获得shell。
文件上传漏洞是指攻击者将可执行文件,上传到服务器端,并执行。上传的这个可执行文件可以是病毒,木马,webshell等。利用文件上传漏洞上传可执行文件,是最有效最直接的攻击方式。文件上传漏洞的利用门槛较低,攻击者较容易实施。
文件包含漏洞的一般特征如下:
?page=a.php
?home=a.html
?file=content
将文件上传与文件包含结合起来,通常是这样的思路:文件上传文件至服务器端,通过文件包含执行该文件,从而获取服务器信息。
LOW级
Low级别没有对上传文件做任何限制,所以我们可以直接上传PHP文件,上传PHP文件后,复制上传文件所在路径。
上传文件后,找到文件包含注入点,通过文件包含,将上传文件的路径作为URL参数并执行,就可以调用上传的文件了。
MIDIEL级
中级设置了过滤,文件上传时,检查了文件的后缀,必须是png,jpeg和jpg的文件才能上传。否则会报错。
所以我们在上传php之类的文件的时候,要修改文件名,比如将1.php修改为1.jpeg,就可以上传成功了。
在文件包含环节,对文件路径也做了过滤,文件路径中的“http”“https””../”“..\”都会被直接替换成空。所以在设置文件包含路径时,要做过滤。
HIGH级
高级别的对文件做了过滤,要就只能上传图片格式的文件,而且对文件格式做了过滤,只有图片文件可以进行上传。所以在这时,不能通过PHP文件重命名的方式进行文件上传。但是可以考虑上传一句话图片木马。把注入语句附在图片文件的末尾。这样服务器就并不会检测出问题,也就不会进行拦截了。
getimagesize() 函数用于获取图像大小及相关信息。
此时的文件包含,只能包含文件名为“include.php”的文件,这时候我们几部没有拌饭进行文件包含。但是此时的服务器并没有对文件调用形式进行限制,我们还是可以通过文件协议查看本地文件,从而进行文件包含。
把phpinfo和任意图片组合,生成一个一句话图片木马2.png
在文件上传点,上传生成的图片木马,服务器没有检测出异常,木马生成上传。
上传成功后在文件包含点,用file协议访问上传的图片木马,phpinfo正常执行。
来源:freebuf.com 2018-09-20 10:31:42 by: DigApis
请登录后发表评论
注册