一、
如何判读是否是本地的js检测?
使用burp抓包,如果抓不到包而且文件上传成功或者失败,则说明是本机js检测。所以我们可以修改本地的html代码,或者是说把本地检测的函数去掉。
二、绕过服务器端的绕过
抓包修改MIME类型
三、绕过服务器端的绕过(目录路径的检测)
1)我们在上传文件的时候,如果我们上传一个asp的后缀文件,服务器并不会给我们改名字,但是我们所上传的文件在当前目录下没有执行权限。
那么我们如何绕过目录路径的检测,我们在上传文件的时候可以用burp抓包,然后修改文件名字改成…/文件名字,。。的意思是上一级目录。我们加一个。。就是使文件目录翻到上一级。假设:upload/1.php,此目录没有执行权限,如果我们把文件名字改为…/1.jpg,当我们上传的时候文件目录就是upload/…1.php.
2)我们上传一个文件,用burp抓包,我们在文件路径中加上a.asp/,这样我们上传的文件就在a.asp的目录下(文件夹下),我们利用的是IIS6.0的解析漏洞。在此文件夹下的所有文件都会被当作asp脚本执行。
有些时候我们在上传文件的时候,把文件(a.asp)上传到某一个目录,但是此文件只对当前目录起作用,而对以上目录不起作用,这时候我们该怎么办法?我可以对他进行改名改成(…/a.asp)。这样我们就可以控制整个站点的目录了(这种情况会出现在织梦的cms中)
四、服务端检测绕过(文件扩展名检测)
绕过黑名单:
文件名大小写绕过、名单列表绕过(asa\cer)、特殊文件名绕过、0x00截断绕过。
特殊文件名绕过:
比如我们需要上传一个test.php,我们可以把名字改成test.php.或者是test.php_,这种命名方式在window下是不允许的,所以我们需要在burp中进行抓包修改,然后放包,绕过验证之后,会被Windows系统自动去除掉后面的点号和空格,但是在Linux或者unix系统下没有这个特性。
0x00截断绕过:
在burp中选中%00,ctrl+shift+u,他会把后面的jpg去掉,使文件变成asp文件。
如果我们不知道对方的网站,允许那些我文件上传,不允许那些文件上传,我们可以用burp进行爆破文件后缀名。(文件后缀名字典我们可以在安全狗中找)
绕过白名单
- .htaccess 文件攻击
通过一个.htaccess 文件调用 php 的解析器去解析一个文件名中只要包含"haha"这个字符串的 任意文件,所以无论文件名是什么样子,只要包含"haha"这个字符串,都可以被以 php 的方 式来解析,是不是相当邪恶,一个自定义的.htaccess 文件就可以以各种各样的方式去绕过很 多上传验证机制
建一个.htaccess 文件,里面的内容如下
<FilesMatch “haha”>
SetHandler application/x-httpd-php
同目录有个我们上传一个只有文件名并包含字符串"haha",但是却无任何扩展名的文件 里面的内容是 php 一句话木马
我们可以用它留后门,拿到shell之后我们才能修改他。
五、服务器端绕过文件内容的检测
主要是检测文件内容开始处的文件幻数,比如图片类型的文件幻数如下,要绕过 jpg 文件幻数检测就要在文件开头写上下图的值。
Value = FF D8 FF E0 00 10 4A 46 49 46
要绕过 gif 文件幻数检测就要在文件开头写上下图的值
Value = 47 49 46 38 39 61
要绕过 png 文件幻数检测就要在文件开头写上下面的值
Value = 89 50 4E 47
然后在文件幻数后面加上自己的一句话木马代码就行了
图像文件相关信息检测常用的就是 getimagesize()函数 只需要把文件头部分伪造好就 ok 了,就是在幻数的基础上还加了一些文件信息 。
绕过二次渲染
什么是二次渲染,二次渲染就是去掉上传的图片?中的代码。如何判断是否是二次渲染?上传图片之后,再次下载,我们在本地查看图片的内容。
表单提交按钮
假如我们找到了一个上传页面,页面没有提交按钮,那么我们可以审查元素,自己在客户端手动写一个html代码,设置一个提交按钮。<\input type=“submit”>.