Axublog 1.1.0 c_login.php存在sql注入漏洞
0x00前言
开始从小的漏洞开始练习,搬运项目地址:
https://github.com/imsebao/Code-Audit
0x01
Axublog是一款PHP个人博客系统。 Axublog(c_login.php)存在SQL注入漏洞。攻击者可利用漏洞, 直接进行注入,获取数据库敏感信息。
漏洞分析: 漏洞出现在后台登录验证的部分。 首先看后台登录页面代码、www/ad/login.php
<?php include_once("all.php"); header("Content-type:text/html;charset=utf-8"); @$user=$_POST["user"]; @$psw=$_POST["psw"]; @$loginlong=$_POST["loginlong"]; @$g=$_GET["g"]; switch ($g) { case "jsloginpost":jsloginpost();break; case "exit":loginexit();break; default:index();break; } function index(){ global $codename,$codeversion,$codeurl; ?>
首先看 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"=>"<div id=redmsg>登录失败:发现非法字符!</div>"); $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="<div id=redmsg>(数据库查询失败!)</div>";}else{ $num=mysql_num_rows($sql); if($num==0){$jieguo='<div id=redmsg>登录失败:账户或密码错误! </div>';} else{ loginpass($loginlong); $chkmoblie=isMobile(); if($chkmoblie==1){$jieguo='<div id=bluemsg>登录成功!正在前往<a href="wap.php">后台</a>。。。</div> <script>setTimeout("javascript:parent.location.href=\'wap.php\'", 1000); </script>';}else{$jieguo='<div id=bluemsg>登录成功!正在前往<a href="index.php">后台 </a>。。。</div> <script>setTimeout("javascript:parent.location.href=\'index.php\'", 1000); </script>';} } } $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# 密码 随意 点 击登录,即可显示登录成功。
相关推荐
ALiDan 2020-06-11
godfather 2020-06-03
liuyang000 2020-04-20
ItBJLan 2020-04-19
qshpeng 2020-03-26
ALiDan 2020-07-27
一对儿程序猿 2020-07-04
godfather 2020-06-13
ItBJLan 2020-06-11
qshpeng 2020-05-11
一对儿程序猿 2020-04-20
wkwanglei 2020-03-27
gwn00 2020-02-14
chenjiazhu 2020-07-08
tanrong 2020-06-11
qshpeng 2020-07-26
世樹 2020-07-17
明月清风精进不止 2020-06-13