自己做网站如何月入3k,网站建设招标提问,电商产品推广方案范文,企业培训心得1
直接写一个php文件测试一下#xff0c;发现弹窗不让上传 原理很简单#xff0c;就是把后缀名拿出来过滤一遍#xff0c;而白名单就是弹窗的这三个
解决方法#xff1a;
因为这是在前端防御的一个手段#xff0c;所以直接在浏览器设置上禁用js就行了#xff1a;
也可…1
直接写一个php文件测试一下发现弹窗不让上传 原理很简单就是把后缀名拿出来过滤一遍而白名单就是弹窗的这三个
解决方法
因为这是在前端防御的一个手段所以直接在浏览器设置上禁用js就行了
也可以用bp抓包然后直接改后缀 2
这关检测的是文件类型也就是content-Type
那就直接抓包改文件类型content-Type:image/jpeg就搞定了 3
这关过滤了.asp,.aspx,.php,.jsp后缀名
根据这道题的httpd.conf文件的AddType application/x-httpd-php .php .php3.phtmlphp3自动解析成php所以后缀名改成php3就行了这关方法仅限这道题 4
利用.htaccess文件一般适用于伪静态的也可以控制网站根目录下的文件解析所以我们创建一个htaccess文件然后写入规则AddType application/x-httpd-php .jpg作用就是将这个.jpg后缀当成php解析。
所以我们先上传这个htaccess文件然后再上传图片马就成功了
图片马的创建:
一个图片一个php文件,然后在命令行下copy xxx.jpg/b xxx.php/a mmm.jpg这个mmm.jpg就是图片马 5
这关没有大小写过滤直接后缀名改成PHP就行了 6
没有过滤空格用bp抓包在php后面加个空格变成.php 就成功上传了
注这个特性是windows下的linux是不行的 7
没有删除文件后缀的点又因为windows会自动去除点那就抓包改成xxx.php.直接绕过然后windows自动去除点后执行php 8
这关没有过滤::$DATA
像这样写xxx.php::$DATA这个::DATA写了就相当于没写但是可以绕过上传成功 9
尝试下冒号截断冒号可以将web.php:jpg截断用jpg绕过后再把jpg丢掉php上传成功但是文件内容也被清空了。
解决方法在windowsphpiis部分apache也可以等于*。
那么我们这样写web.会转换成???然后会匹配三个任意字符就匹配上web.php了。
所以这道题抓包改后缀名即可
10
这关直接抓包双写绕过xxx.phphpp 11
看源码得知上传一个图片放到临时文件夹然后通过move函数把这个临时文件覆盖到upload目录正常情况下会是upload/temp.jpg
问题在于这个路径是get我们可以控制所以抓包改路径构造成upload/shell.php%00temp.jpg
这样就会把后面的jpg截断因为php底层是c语言00在c语言中是停止的意思
所以相当于把shell.php传到upload目录了
这是php5.2的漏洞) 12
还是00截断只是改成post了%是urlcode编码的这里不能用%了
可以随便写一个内容这里写了一个点然后再post的16进制里改成00
13
检测文件内容的前两个字节
先创建一个shell.gif文件然后在一句话木马之前写一个GIF89a,这是伪造的图片头上传成功但是不能用用文件包含才能用先复制图片路径然后打开一个include的文件再添加参数为图片路径
include就是一个把包含的文件当成php执行的函数 14
用图片马然后加上一个include包含就行了
.jpg .png后缀的时候不用加GIF89a 15
增加了一个类型判断 跟上一关操作一样 16
过滤图片马了也就是会打乱图片顺序所以图片马就会被打乱了不能用。
先随便传个上传个图片马然后再把这个图片下载下来看看发现里面的一句话木马乱了 思路就是在没有混淆的地方插入一句话木马所以我们用010editor找可以放一句话木马的地方只要能放下就行
然后把一句话木马插入这个不会改动的地方就能上了可能找的地方会把图片格式弄乱那就换一个地方写一句话木马
再把文件复制下来用文件包含打开即可GIF好改一点jpg、png格式比较复杂改动容易出错会被判定为不是jpg、png格式
jpg、png的话可以用脚本来弄思路跟gif一样 顺便提一句比较好的防御方法是吧上传图片文件夹的执行权限去掉 17
这是在上传成功以后才判断的后缀所以直接写php文件
这关用一个竞争型的思路,因为这源码看得出来先上传后再判断是否要删除
我们写这样一个php文件
?php fputs(fopen(../shell.php,w),?php phpinfo();?);
这个文件执行的话会在上一级目录创建一个php文件当然这个文件会被马上删除但是在上传到删除之间是有一定时间的我们正是要利用这一点。
手工操作不现实所以用bp的爆破的方式相当于多次上传然后我们就访问xxx/shell.php一直手动刷新。也可以用bp再开一个进程一个上传一个访问就可以访问到了
想避免这种条件竞争的漏洞就先过滤再上传