Ctfshow web入门-web32

Ctfshow web入门-web32 WP

拿到url,首先查看源码
在这里插入图片描述

过滤了以下字符串

flag|system|php|cat|sort|shell|.| |’|`|echo|;|(

过滤了空格可以用${IFS}%0a 代替,分号可以用?>代替
但是过滤了括号之后就不能用带有括号的函数,php中include是可以不带括号的函数,和web31一样,这里需要用文件包含
所以构造的Payload是

payload:http://url/?c=include%0a$_POST[1]?> 

然后再POST某个文件名就可以查看文件了,比如下图,我传的参数是 1=/etc/passwd

在这里插入图片描述

有了这一步,接下来就是构造上传的参数1的值

php伪协议通常用于文件包含中,php中文件包含的函数有很多,比如 include include、require、include_once、require_once、highlight_file、show_source、file_get_contents、fopen、file、readfile

include在包含文件的时候会执行,这也是为什么会有远程包含和本地包含漏洞的原因,有了文件包含的函数include,接下来就可以执行php伪协议读取文件了

1的payload:
php://filter/read=convert.base64-encode/resource=想要包含的文件名

这样文件包含出来的回显就是base64加密之后的

在这里插入图片描述

获取到加密的回显之后解码
在这里插入图片描述

除了上面的php为协议,也可以用data协议命令执行

在这里插入图片描述

Payload是

data:text/plain,php代码

版权声明:本文为qq_45427131原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。