作者:傅雪莱_ | 来源:互联网 | 2024-11-09 13:37
在Axublog1.1.0版本的`c_login.php`文件中发现了一个严重的SQL注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意SQL代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。
0x00前言
开始从小的漏洞开始练习,搬运项目地址:
https://github.com/imsebao/Code-Audit
0x01
Axublog是一款PHP个人博客系统。 Axublog(c_login.php)存在SQL注入漏洞。攻击者可利用漏洞, 直接进行注入,获取数据库敏感信息。
漏洞分析: 漏洞出现在后台登录验证的部分。 首先看后台登录页面代码、www/ad/login.php
首先看 user 和 psw 参数没经过然后过滤直接是 post 传递过来的值。 继续跟踪登录验证函数, jsloginpost 。jsloginpost 方法定义在文件 www/ad/c_login.php 第74行。
ps:这里我直接看的项目我也没看到他开头包含的all.php内容,想必应该没有过滤条件。
function jsloginpost(){
global $tabhead;
global $txtchk;
@$user=$_POST["user"];
@$psw=$_POST["psw"];$psw = authcode(@$psw, 'ENCODE', 'key',0);
@$loginlOng=$_POST["loginlong"];
$chk=sqlguolv();
if($chk==1){
$json_arr = array("jieguo"=>"登录失败:发现非法字符!
");
$json_obj = json_encode($json_arr);
echo $json_obj;die();
}
#-------
#setCOOKIE("lggqsj",date('Y-m-d H:i:s',time()+$loginlong), time()+60*60*24,"/;
HttpOnly" , "",'');
$tab=$tabhead."adusers";
$chk=" where adnaa='".$user."' and adpss='".$psw."' ";
mysql_select_db($tab);
$sql = mysql_query("select * from ".$tab.$chk);
if(!$sql){$jieguo="(数据库查询失败!)
";}else{
$num=mysql_num_rows($sql);
if($num==0){$jieguo='登录失败:账户或密码错误!
';}
else{
loginpass($loginlong);
$chkmoblie=isMobile();
if($chkmoblie==1){$jieguo='登录成功!正在前往后台。。。
';}else{$jieguo='登录成功!正在前往后台
。。。
';}
}
}
$json_arr = array("jieguo"=>$jieguo);
$json_obj = json_encode($json_arr);
echo $json_obj;
}
#-------
?>
这里可以看到 user 和 psw 没有任何过滤直接进入了sql查询,导致sql注入,万能密码登录。 漏洞复 现: 访问后台登录页面 http://localhost/ad/login.php 账号: admin‘ and 1=1# 密码 随意 点 击登录,即可显示登录成功。
Axublog 1.1.0 c_login.php存在sql注入漏洞