freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

【代码审计】某JA网站内容管理系统模板注入漏洞
蚁景科技 2020-01-03 15:01:27 176552
所属地 湖南省

0x00前言

一直对模板注入漏洞懵懵懂懂,直到最近在某gayhub上瞎逛碰到一个cms,再一番操作之后找到了一个前台getshell的漏洞。由于相关要求,这里隐去这个cms的全称,就分享漏洞发掘的思路。

0x01 代码审计

我们全局搜索eval(可以发现有一个地方使用了eval,可以大胆猜测这个模板引擎是使用eval去实现。我们跟进ii_eval()函数。

v2-3cdc1eda03f387e6b6d8c810570338c2_hd.j

可以见到函数的$strers可控,我们继续跟进ii_eval()看谁对他进行了调用。

v2-d1ed564f3466d54f44cc40c2d99fc1d4_hd.j

全局搜索发现就只有一个地方对他进行了调用那就是ii_creplace()函数

v2-118e458b0b3c5e5c5d3aa45bc7155549_hd.j

我们跟进ii_creplace()可以看到,$strers可控但是他必须传入一个与({\$=(.[^\}]*)})这个正则匹配的字符串才能传入到iieval(),这里我们就可以得知要想执行代码必须符合类似下面的格式:

  1. {$=phpinfo()}

v2-71e83c312f84e3bd675c2bc02b8c76df_hd.j

那么我们继续跟进ii_creplace()函数看谁对他进行了调用,找了很多但是都对函数中的$进行了转义,但是在passport\address\common\incfiles\manage_config.inc.php中的xxx_cms_admin_manage_list()并未做任何过滤。我们继续跟进。

v2-8180a386b28dcccc59b5ec97e2203bb6_hd.j

我们发现\passport\address\manage.php对passport\address\common\incfiles\manage_config.inc.php进行了包含并调用了xx_cms_admin_manage_action(),而它调用了xx_cms_admin_manage_list(),那么很明显我们只需将符合{\$=(.[^\}]*)}正则的payload传入即可导致getshell.

v2-e01435d9d15eeafaa842eed576a61052_hd.j

那么从哪传入呢,我们直接把xxx_cms_admin_manage_list()中的sql语句打印出来即可知道。

v2-dd66c36527409d39a8919991cbc6383c_hd.j

v2-758fed491cba7c30e959943883d42718_hd.j

很明显是从用户地址处传入。那么我们先注册个用户添加用户地址传入我们payload

  1. {$=phpinfo()}

v2-4810d14f76fcbb3c22bbea98ff1cf2eb_hd.j

再次刷新页面已经显示phpinfo,说明getshell成功。

v2-1d9629b77352dbb67d0c5e71d42b67bc_hd.j

0x02总结

其实纵观代码,这个cms的开发人员是有考虑过代码注入的问题,但是其对传入的内容并没有做全局过滤,而是每个点做过滤。这样难免会造成遗漏过滤的情况,当然这个cms的sql注入防护也是采取每个变量前套上一个转义函数,但是在后续的版本开发中难免也会有开发人员遗漏,这里不做深究了。

看完文章有没有想要自己尝试一下呢!登录合天网安实验室,get同款实验。或者点击阅读原文,了解相关说明。通过实验了解服务端模板注入漏洞的危害与利用。

Flask服务端模板注入漏洞:http://www.hetianlab.com/expc.do?ec=ECID87ed-2223-40e5-8083-f5c55d69af28

声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关!


# 合天智汇
本文为 蚁景科技 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
渗透测试和实践
蚁景科技 LV.9
湖南蚁景科技有限公司主要从事在线教育平台技术研究及网络培训产品研发,专注网络空间安全实用型人才培养,全面提升用户动手实践能力。
  • 907 文章数
  • 674 关注者
蚁景科技荣膺双项殊荣,引领网络安全教育新潮流
2025-03-28
FlowiseAI 任意文件写入漏洞(CVE-2025–26319)
2025-03-27
路由器安全研究:D-Link DIR-823G v1.02 B05 复现与利用思路
2025-03-18
文章目录