文件上传漏洞利用-后端白名单绕过
文件上传漏洞利用-后端白名单绕过
后端白名单绕过
MIME绕过
原理:服务端MIME类型检测通过检查http包的Content-Type的值来判断上传文件是否合法。
web服务器使用MIME来说明发送数据的种类, web客户端使用MIME来说明希望接收到的数据种类。
利用过程:
第一步:上传写入语句的执行类型文件,即.php文件
第二步:用burpsuite等代理工具进行抓包,修改Content-Type字段的值为image/jpeg
第三步:放包
第四步:获取webshell权限,即浏览器打开上传的图片马地址
第五步:用蚁剑等工具进行连接操作等
常见的MIME类型(/后面为对应的MIME值)
超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .jpeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
%00截断
原理:
在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束
利用过程:
./?filename=test.txt 此时输出的是test.txt
./?filename=test./?filename=test.php%00.txt 此时输出的是test.php
0x00截断
原理:
0x开头表示16进制,0在十六进制中是00, 0x00就是%00解码成的16进制,%00被服务器解码为0x00发挥了截断作用
环境:
php版本小于5.3.4
magic_quotes_gpc需要为OFF状态
利用过程:
第一步:准备一个写入执行语句的php文件,在PHP后缀后加上空格(占位作用,空格的16进制为0x20)和任意其他字符(便于标识)
第二步:用burpsuite等工具设置代理
第三步:上传文件
第四步:抓包并打开hex表,将空格对应的16进制(0x20,会显示出20)将20改为00实现截断
第五步:放包
修改完空格hex值后,空格被□取代,就是0x00(不可见字符),系统读到0x00时就认为已经结束了
0x0a截断
原理:
查看ASCII表,可以发现0x0a是换行即\n,当读取到\n时会进行换行,后面的将不会读取
利用过程:
和0x00类似
- 点赞
- 收藏
- 关注作者
评论(0)