上传漏洞简单类型

上传文件的时候,如果没有对上传的文件进行严格的过滤,就容易造成上传漏洞,这便可以让心怀鬼图的人利用漏洞进行木马的上传进而查看服务器的文件目录、对文件进行偷取修改、甚至可通过此漏洞进行服务器权限的夺取从而控制 整个服务器。

上传漏洞的分类:

PHP一句话木马 :

1、JS验证绕过(基于客户端)

原理:调用JS的selectFile()函数,将文件名换为小写,然后通过substr截取文件名最后一个小数点后的后缀进行检测。

方法:通过Burpsuite进行抓包修改文件属性来进行基于客户端的JS验证进行绕过,便可以直接将一句话木马的文件上传到服务器,再通过菜刀链接,便可以进去目标服务器的目录下。   需要注意的是要找清楚文件上传后,服务器会将其放置在那个根目录下,这样才能保证菜刀的正常连接。

2、文件后缀绕过

原理:通过函数paihinfo()获得文件后缀,检测文件后缀是否是可上传的类型

方法:

1、有些源码中对.php后缀的文件进行了限制,但是却忽略了文件扩展名。比如说,一些上传对.php文件进行了限制,但是对于扩展名.php2、.php3、phtml等文件却没有限制,所以我们可以尝试一些这些扩展名的文件是否可以上传。

2、结合Apache文件解析机制,从右向左开始解析文件后缀,如果遇到的后缀名不可识别则继续向前判断直到遇到了可解析的后缀为止。

比如说,Apache解析/1.php.233==/1.php

3、MIME类型绕过

原理:判断$_Files["file"]["type"]是不是图片格式(image/gif、imge/jpeg、image\pjpeg),不是的话就不允许上传。注意的是服务器接收的$_Files["file"]["type"]的值是通过请求数据包中的Content-Type获取。

方法:通过Burpsuite对请求数据包进行抓取,在上传.php文件的时候,它的Content-Type的值为appliction/octer-stream,上传.jpg时,Content-Type的值为image/jpeg,将抓取的数据包中的Content-Type的值进行修改便可以绕过。

4、文件截断绕过

原理:有很多0x00、%00、/00之类的截断,但是核心都在chr(0)这个字符上,它可以返回ascii字符,所以chr(0)表示的是null,当程序输出包含chr(0)变量的时候,chr(0)后面的数据会被截断,后面的数据直接忽略导致漏洞产生。

方法:

1、(GET方法)上传文件,使用Burpsuite进行抓包,然后修改,进行转义:快捷键 Ctrl+Shift+u  然后再/Upload/后面加一个空格,点开Hex,将其对应的20修改为00即可,就可以绕过后缀名的过滤,从而上传成功。

2、(POST方法)在文件名后面直接加上%00.jpg,先绕过后缀上传,然后利用Burpsuite的urldecode功能,效果与方法一一致都可以将木马上传成功。

总的来说就是

GET方法中加入00截断

POST方法中传入%00并解码

你可能感兴趣的:(上传漏洞简单类型)