上传漏洞简单类型

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

上传漏洞的分类:

PHP一句话木马 :<?php eval($_POST[password])?>

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并解码

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 傍晚时分,杨小白走进学校附近的一座高大的住宅楼里。在二楼东户门前停下脚步,轻轻地敲了门。门内无人回应。于是他向前稍...
    秋山静泽阅读 654评论 8 5
  • 笔者这两天在整理react知识点的时候,顺便对es6的基础知识也进行了一些整理,其实es6出来已经很久了,也不算是...
    darrell阅读 5,528评论 1 12
  • 從前慢 記得早先少年時 大家誠誠懇懇 說一句是一句 清早上火車站 長街黑暗無行人 賣豆漿的小店冒著熱氣 從前的日色...
    普魯斯特的風車阅读 190评论 0 0