文件上传漏洞原理
常用防御方式和常用防御方式的绕过
一、前端JS检测
二、MIME检测
三、白名单检测
%00截断
0x00截断
四、黑名单绕过
文件拓展名绕过
.htaccess文件绕过
.user.ini.绕过
apache解析漏洞
IIS解析漏洞
Nginx解析漏洞
widows系统文件命名规则的特殊利用
五、文件内容检测
①文件头检测
②shell检测
六、条件竞争
靶场实战
利用BP直接修改Content-Type值来绕过
simple.php%00.jpg-->simple.php
文件存储时的后缀名为.php是可以被解析成php文件的,从而实现绕过
我这里添加个+号是方便识别的
将这个"2b"改为00并发送就可以成功绕过了
或者在文件头部添加文件幻数
JPEG (jpg),文件头:FFD8FF
PNG (png),文件头:89504E47
GIF (gif),文件头:47494638
TIFF (tif),文件头:49492A00
Windows Bitmap (bmp),文件头:424D
CAD (dwg),文件头:41433130
Adobe Photoshop (psd),文件头:38425053
Rich Text Format (rtf),文件头:7B5C727466
XML (xml),文件头:3C3F786D6C
HTML (html),文件头:68746D6C3E
Email [thorough only] (eml),文件头:44656C69766572792D646174653A
Outlook Express (dbx),文件头:CFAD12FEC5FD746F
Outlook (pst),文件头:2142444E
MS Word/Excel (xls.or.doc),文件头:D0CF11E0
MS Access (mdb),文件头:5374616E64617264204A
WordPerfect (wpd),文件头:FF575043
Adobe Acrobat (pdf),文件头:255044462D312E
Quicken (qdf),文件头:AC9EBD8F
Windows Password (pwl),文件头:E3828596
ZIP Archive (zip),文件头:504B0304
RAR Archive (rar),文件头:52617221
Wave (wav),文件头:57415645
AVI (avi),文件头:41564920
Real Audio (ram),文件头:2E7261FD
Real Media (rm),文件头:2E524D46
MPEG (mpg),文件头:000001BA
MPEG (mpg),文件头:000001B3
Quicktime (mov),文件头:6D6F6F76
Windows Media (asf),文件头:3026B2758E66CF11
MIDI (mid),文件头:4D546864
②shell检测
之前做过一道CTF题禁止了文件内容中出现<?
<script language="php">eval($_POST['pass']);</script>
可以用此来绕过
六、条件竞争
条件竞争漏洞(Race condition)官方概念是——竞争条件发生在多个线程同时访问同一个共享代码、变量、文件等没有进行锁操作或者同步操作的场景中。服务器对上传文件的操作大多数都是单线程处理,当我们执行多个线程时可以绕过一些服务器端的防御。
如:利用条件竞争绕过文件删除等等
靶场实战
PIKACHU
DVWA
upload-labs上(1-12)
upload-labs下(13-21)
发表评论 取消回复