1.Pass1
代码审计发现js前端检测文件后缀。
1.f12禁用网页js。
传一句话木马脚本成功。
法2.抓包
传1.php.png文件上去,然后burp改后缀,最后蚁剑连。
2.Pass2
服务器MIME检测文件后缀。
同pass1抓包改后缀通过。
3.Pass3
上传时文件后缀限制。
大小写都改成小写所以不能用PHp,Php绕过。
那就把img改成php加数字绕过。
或者用::$DATA双写绕过。
4.Pass4
限制更多了。
没有对htacess文件限制。
写一个htaccess文件。
AddType application/x-httpd-php .jpg
意思是将上传的文件后缀名为.jpg格式的文件以php格式来解析。
传进网页后将php文件改为jpg后缀传上去。
成功。
5.Pass5
还是黑名单过滤文件名,包括文件后缀的点,空格,也不能用hatccess文件。
但是源码中没有大小写限制了那就改成1.Php直接绕。
6.Pass6
看源码,不让hta,过滤了一大堆后缀,不让::DATA双写。
但是末尾不去空,那就加空格。
7.Pass7
其他都有,没有deldot末尾去点。
抓包改'php'加‘.'绕过。
8.Pass8
::DATA没有过滤。
抓包改过。
9.Pass9
黑名单严格、删除文件名末尾点、大小写转换为小写、去除::$DATA字符、首尾去空
但是代码去点去空只执行一次。
那就抓包改构造“. ."绕过。
10.Pass10
文件后缀名如果是黑名单里的,替换为空。
那么后缀名双写成pphphp绕过,只替换中间的php。
11.Pass11
用get方式将文件传入。
先改后缀为白名单内后缀用burp抓包。
改url后为1.php加%00截断。
让URL中最后一个
.
后的数据符合白名单的条件,然后利用%00截断使它无效(URL中遇到%00就会认为读取结束,修改路径值让路径值在%00前的数据被当作文件名)
即:../upload/1.php%00shell.png
会被当作../upload/1.php
方法即将1.php.jpg中的内容上传到1.php中 ,最后易建联的时候还是以php文件形式运行。
12.Pass12
这一关白名单,文件上传路径拼接生成,而且使用了post发送的数据进行拼接,我们可以控制post数据进行0x00截断绕过白名单。
先上传php的jpg一个然后抓包,找到上传路径。
加一个"1.php+",多一个加号是为了方便在hex里修改。
将加号的"2b"修改为00,上传。
13.Pass13
法1:图片马
做一个传上去然后用"include.php?file="访问文件漏洞。
法2:抓包改文件头
GIF89A
上传后用文件包含漏洞易建联。
14.Pass14
做个图片马。
15.Pass15
小皮打开php_exif
然后传个图片马上去。
16.Pass16
传上去的图片马会被二次渲染,上面的php恶意代码会被二次渲染删除。
那就先传一次,然后把回显的图片下载下来,用hxd打开,把php代码重新放进去。
17.Pass17
这关先经过move_uploaded_file函数先进行文件上传,再利用白名单过滤文件,如果不是图片文件,则通过unlink函数将文件删除。
因此,我们可以利用条件竞争的原理,利用多线程无负载爆破不断上传php文件,再后台还未来得及通过unlink函数删除shell.php文件时,访问到webshell。
18.Pass18
这一关相较于上一关,先进行了文件名检测,意思是不能传php文件然后通过竞争检测不断生成了。
那看看传个图片马能不能爆破。
......
18关有病,以后再写。
19.Pass19
黑名单过滤,然后把输入的文件的名字作为保存的名字。
改成php/.上传。
20.Pass20
绕过白名单。
具体原因。
结束。