了解文件包含漏洞
文件包含漏洞是指攻击者通过在应用程序中插入恶意代码,从而利用服务器上的其他文件来执行攻击。这种漏洞通常出现在应用程序中,当它从外部输入中读取文件名或路径时,没有进行适当的验证和过滤。
例如,一个应用程序可能会使用用户输入的文件名来读取文件内容,并将其显示在网页上。如果攻击者可以控制输入的文件名,他们就可以读取服务器上的任何文件,包括配置文件、数据库密码等敏感信息。
为了防止文件包含漏洞,开发人员应该对用户输入进行严格的验证和过滤,确保只允许访问受信任的文件。此外,还可以使用安全编码实践,如输入验证、输出转义等来减少潜在的风险
开始解题
因为是文件包含漏洞所以先先使用伪协议php://filter
发现不行应该存在过滤,继续尝试,再=号后面直接打赏base64出现do not hack!就是被过滤了的意思,测试read,encode都是返回这个,所以这三个都被过滤了
但是php中有两种转换器
一种是string.*另一种是convert.*因为string被过滤了所以之可以用convert了
详解php://filter以及死亡绕过-CSDN博客过滤器的使用介绍,本题因为base64被过滤了所以使用concert.iconv.utf-8.utf-7把php标签打乱,使其无法正常解析,其中的代码就会当作字符串被输出
代码为php://filter/convert.iconv.utf-7.utf-8/resource=flag.php然后获取到了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*
EUC-JP*
SJIS*
eucJP-win*
SJIS-win*
ISO-2022-JP
ISO-2022-JP-MS
CP932
CP51932
SJIS-mac(别名:MacJapanese)
SJIS-Mobile#DOCOMO(别名:SJIS-DOCOMO)
SJIS-Mobile#KDDI(别名:SJIS-KDDI)
SJIS-Mobile#SOFTBANK(别名:SJIS-SOFTBANK)
UTF-8-Mobile#DOCOMO(别名:UTF-8-DOCOMO)
UTF-8-Mobile#KDDI-A
UTF-8-Mobile#KDDI-B(别名:UTF-8-KDDI)
UTF-8-Mobile#SOFTBANK(别名:UTF-8-SOFTBANK)
ISO-2022-JP-MOBILE#KDDI(别名:ISO-2022-JP-KDDI)