文件上传漏洞常用绕过方式
目录
文件上传漏洞原理
由于网站在对文件的上传功能中没有严格校验上传文件后缀和文件类型,导致上传的文件可以被解析成可执行的脚本文件(php、jsp、xml、cer等文件),以来达到攻击者的攻击目的
常用防御方式和常用防御方式的绕过
一、前端JS检测
客户端前端在JavaScript代码中加入了对扩展名的黑白名单检查,我们可以直接禁用javaclass="lazy" data-srcipt
二、MIME检测
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
常见图片MIME类型: image/gif
, image/png
, image/jpeg
, image/bmp
, image/webp
, image/x-icon
, image/vnd.microsoft.icon
服务端代码是通过Content-Type的值来判断文件的类型,这样我们可以直接对文件的Content-Type进行修改来绕过此防御方式。
以PIKACHU平台漏洞为例:
利用BP直接修改Content-Type值来绕过
三、白名单检测
要求只能是特定扩展名的文件才能上传
%00截断
在url中%00表示ascll码的0 ,而ascii码的0,表示字符串结束,所以当url中出现%00时就会认为读取已结束
注:需满足 php 版本<5.3.4 才有可能存在此漏洞
simple.php%00.jpg-->simple.php
文件存储时的后缀名为.php是可以被解析成php文件的,从而实现绕过
0x00截断
原理同%00截断原理相同
我们在BP中修改时,需要使用Hex模块,添加00
我这里添加个+号是方便识别的
将这个"2b"改为00并发送就可以成功绕过了
四、黑名单绕过
使用扩展名黑名单来限制上传文件类型
文件拓展名绕过
Php除了可以解析php后缀 还可以解析php2,php3,php4 ,phtmlAsp可解析 asa,cer,cdxAspx可解析 ashx,asmx,ascxJsp可解析jspx、jspf
.htaccess文件绕过
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
AddType application/x-httpd-php .png(这里是你指定的文件后缀名)
.user.ini.绕过
.user.ini
文件里的意思是:所有的php文件都自动包含指定的文件
auto_prepend_file=test.jpg
这个绕过方式前提是上传目录下要有可执行的php文件
apache解析漏洞
Apache按从右到左的顺序识别文件后缀,直至找到后缀能匹配配置文件中的设置。遇到不能识别的后缀名便跳过。
shell.php.xxx将会被解析成php文件,可用来绕过黑名单过滤
IIS解析漏洞
*.asa
、*.asp
格式的文件夹时其目录下的文件都会当做asp文件解析。当文件名为
*.asp;1.jpg
时,IIS会以asp文件来解析,也就是说;起到了截断作用。
Nginx解析漏洞
在Nginx的服务器环境下,假如成功上传一张名为test.jpg的文件到网站,如果我们访问
/test.jpg/test.php
这个虚构的目录时服务器会直接将test.jpg作为php文件进行解析。
widows系统文件命名规则的特殊利用
shell.php. ———-文件名后加点‘.’
shell.php ———-文件名后加括号空格
shell.php::$DATA ———-文件名后加::$DATA
五、文件内容检测
①文件头检测
我们可以制作图片马来绕过
或者在文件头部添加文件幻数
JPEG (jpg),文件头:FFD8FFPNG (png),文件头:89504E47GIF (gif),文件头:47494638TIFF (tif),文件头:49492A00Windows Bitmap (bmp),文件头:424DCAD (dwg),文件头:41433130Adobe Photoshop (psd),文件头:38425053Rich Text Format (rtf),文件头:7B5C727466XML (xml),文件头:3C3F786D6CHTML (html),文件头:68746D6C3EEmail [thorough only] (eml),文件头:44656C69766572792D646174653AOutlook Express (dbx),文件头:CFAD12FEC5FD746FOutlook (pst),文件头:2142444EMS Word/Excel (xls.or.doc),文件头:D0CF11E0MS Access (mdb),文件头:5374616E64617264204AWordPerfect (wpd),文件头:FF575043Adobe Acrobat (pdf),文件头:255044462D312EQuicken (qdf),文件头:AC9EBD8FWindows Password (pwl),文件头:E3828596ZIP Archive (zip),文件头:504B0304RAR Archive (rar),文件头:52617221Wave (wav),文件头:57415645AVI (avi),文件头:41564920Real Audio (ram),文件头:2E7261FDReal Media (rm),文件头:2E524D46MPEG (mpg),文件头:000001BAMPEG (mpg),文件头:000001B3Quicktime (mov),文件头:6D6F6F76Windows Media (asf),文件头:3026B2758E66CF11MIDI (mid),文件头:4D546864
②shell检测
之前做过一道CTF题禁止了文件内容中出现
可以用此来绕过
六、条件竞争
条件竞争漏洞(Race condition)官方概念是——竞争条件发生在多个线程同时访问同一个共享代码、变量、文件等没有进行锁操作或者同步操作的场景中。服务器对上传文件的操作大多数都是单线程处理,当我们执行多个线程时可以绕过一些服务器端的防御。
如:利用条件竞争绕过文件删除等等
靶场实战
来源地址:https://blog.csdn.net/qq_62078839/article/details/124026691
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341