Sine安全-网络安全背后的巨人,提供服务器安全_服务器维护_网站安全解决方案

axublog 漏洞之SQL盲注的安全审计过程



          axublog博客系统,是一款个人的blog系统,代码简介而方便,采用php+mysql数据库的

架构,网站可以全面的生成静态文件,利于网站的访问速度以及网站优化,在目前互联网来说

是一个比较优秀的个人博客系统,sine安全公司对该网站进行了详细的安全检测与审计,发现

axublog存在三个比较重要的漏洞。下面我来详解一下:

 
 
axublog SQL盲注漏洞详情





 
 
下载了官方axublog 1.0.6版本,并搭建好本地的PHP环境与mysql数据库,在对其代码进行安

全审计与详细的检测时,发现hit.php文件里的代码存在sql盲注漏洞,我们来看下代码如下图:
 
我们可以看到在该代码的前头调用了sqlguolv()函数作为网站防火墙,来过滤一些非法的关键

词与恶意的字符串。我们来看下他的过滤是怎样的。Sine安全公司是一家专注于:服务器安

全、网站安全、网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。



 
Function sqlguolv() {
 
@header("Content-type:text/html; charset=utf-8");
 
if (preg_match('/select|insert|update|delete|\'|\\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/i',$_

SERVER['QUERY_STRING'])==1 or preg_match('/select|insert|update|delete|\'|\\*|\*|

\.\.\/|\.\/|union|into|load_file|outfile/i',file_get_contents("php://input"))==1){echo "警告

非法访问!";    exit;
}
 
用php环境的安全协议来接受SERVER传过来的值来进行过滤,问题来了,没有过滤and以及

盲注的字符串经过过滤可以直接造成sql语句的拼接。select * from axublog_arts where id=

$id。我们不用使用什么单引号之类的来进行绕过,直接在id后面传入想要执行的sql注入语句

就可以.如下图:Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站

漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。

 
 
axublog 后台绕过漏洞
 
 
在之前的1.0.5版本的程序代码里也发现了这个后台可以绕过cookies的漏洞,在最新版本里并

没有进行修复,我们来看下后台的文件ad/admin.php代码,如下图:

 

 
在后台的代码里,我们看到在admin.php代码里,引用了检查cookies的一个代码文件,用来

检测网站后台的管理员是否登录的一个状态,我们再来仔细看下,如下图:



 
 
if(@$_SESSION["chkad"]==''&&@$_COOKIE["chkad"]==''){
 
  header("Content-type:text/html; charset=utf-8");
 
  echo '<div id=redmsg>请<a href="login.php">请登录</a>。。。</div>';tiao();
 
  exit;
}
 
根据上面的代码,我们看到是判断管理员是否登录的一个判断条件代码,在第十二行里判断

出现错误,只判断了cookies以及session里的值是不是空值就可以直接判断用户的登录状况,

在看下面的代码检查user_agent头的值跟txtchkad里的值是否相等,我们可以看出来,直接

前端登录的时候直接输入后台面板的地址并跟随上chkad=任意字符,就可以顺利的绕过验证

,登录到管理员后台。

 
 
分享: