文件拼接小技巧:33:00-34:00;略微判断有无解析漏洞:35:00
cmd中,copy 1.png /b + shell.php /a webshell.jpg

文件上传–解析漏洞编辑器安全与WAF

WEB编辑器漏洞

常见编辑器
fckeditor exp
ueditor 漏洞利用
在网上找fckeditor漏洞inurl:fckeditor site:edu.cn
https://blog.csdn.net/eldn__/article/details/9197521
编辑器是网站管理员对图片、音频视频进行操作的中转站,大部分编辑器是文件上传漏洞。
FCK编辑器演示:50:00

CMS编辑器漏洞

对网站进行识别,判断出是什么CMS。在发现某个网站是使用哪套开源的程序源码,上网搜漏洞。
演示:1:09:00

总结思路(测试文件上传漏洞)

在拿到一个网站,若要测试其上传漏洞:
0、WAF的判断以及绕过。
1、先尝试直接绕过,黑/白名单/内容过滤绕过。
2、看中间件确定是否存在解析漏洞。
3、CMS也会爆出一些文件上传漏洞,利用网上资料。
4、编辑器漏洞,同上方法。
5、CVE,上官网查看是否爆新的漏洞。

若存在WAF,如何绕过(已知存在文件上传漏洞)

上传参数名解析:明确有哪些东西能修改?

Content-Disposition: 一般可更改(数据类型?)
name: 表单参数值,不能更改
filename :文件名,可以更改
Content-Type:文件MIME,视情况更改

常见绕过方法

1、数据溢出-防匹配(xxx.. .)
2、符号变异-防匹配(’” ;)

1
2
3
4
payload:
filename="x.php
filename='x.php
filename="x"x.php

符号变异就是猜测WAF的字符(串)如何匹配,通过”改filename字段的双引号为单引号、去掉一个双引号”等方式尝试绕过。
可知safedog的匹配是从最后一个”往前匹配。
3、数据截断-防匹配(%00 ;换行)

1
2
3
payload:
filename="x.jpg;.php"
filename='x.php%00.jpg"(现在失效了)

还可以换行:

1
2
3
4
5
6
payload:
filename="x
.
p
h
p"

4、重复数据-防匹配(参数多次)

1
2
3
payload:
filename="x.jpg";filename="x.jpg";filename="x.jpg";filename="x.jpg";filename="y.php";
filename="Content-Disposition/Content-Type的值x.php"

但重复次数又远远比垃圾数据的少。
图一
图二
图三
图四
5、Fuzz模糊测试
fuzz字典
https://github.com/fuzzdb-project/fuzzdb
https://github.com/TheKingOfDuck/fuzzDicts
https://github.com/TuuuNya/fuzz_dict
https://github.com/jas502n/fuzz-wooyun-org
总之就是防止脚本后缀被匹配出来,思维要灵活,善于思考善于总结,探讨多种方法。
数据溢出防匹配绕过演示(感觉类似于垃圾数据):18:00-28:30
符号变异防匹配绕过演示:28:12-45:50
数据截断防匹配绕过演示:45:52-53:30
重复数据结合”垃圾数据”防匹配绕过演示:57:00-1:10:00
fuzz演示:1:15:00-

防护

图五
说明
1、函数,参考upload pass16,那个geiimage什么的,必须是图片才可以上传。
2、后缀用白名单只能jpg,文件名用黑名单,只有要出现php的字眼就拦截。
3、先判断有无WAF,若有则先绕过再判断有无上传漏洞。