CTF-SHOW刷题总结Web3
GET传参 eval执行
使用通配符绕过
前提是题目过滤的字符不多。直接使用system函数(或其他)执行命令,文件名使用通配符模糊搜索即可
若过滤了system, 还可用反字节符配合echo。如echo `cat fla*`;
使用eval嵌套
题目过滤了主要函数(cat, system),并且过滤了字符 .
这里需要使用到的字符有_ 、[] 和 $
使用文件包含漏洞
题目过滤了主要函数,并且过滤了符号 .
'
` ;
(
”
:
<
=
/
和所有的数字
首先将需要传入的参数c设置为include语句,再在include的文件中使用php协议读取内容。
1 | c=include$_GET[a]?>&a=php://filter/convert.base64-encode/resource=flag.php |
这里使用了?>绕过 ;
也可以用data伪协议和日志注入
使用RCE绕过
见下
GET传参 include执行
使用data伪协议
base64加密可以绕过flag,php
1 | c=data://text/plain;base64,PD9waHAgCnN5c3RlbSgidGFjIGZsYWcucGhwIikKPz4= |
[!NOTE]
include中的拼接符没有任何作用。因为include中的文件在?>就已经进行闭合了,后续的任何代码都不会再执行了,只会报错
使用RCE绕过
过滤掉了除了 ()
和 ;
以外所有符号,以及所有数字
详见另一个笔记
POST传参 eval执行
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Pocon's Blog!