Sqli labs less 17

less 16的考点是登录后在修改密码界面注入而并非登录时注入。

1.在username和password输入1,1;1,1‘‘测试,验证失败

Sqli labs less 17

 

 2.根据代码查询,

$uname = check_input($_POST[uname]);  
$passwd = $_POST[passwd];

@$sql = "SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";

$result = mysql_query($sql);
$row = mysql_fetch_array($result);

if($row)
{
    $row1 = $row[username];   
    $update="UPDATE users SET password = ‘$passwd‘ WHERE username=‘$row1‘";
    mysql_query($update);
    
    if (mysql_error())
        print_r(mysql_error());

    echo <img src="../images/flag1.jpg"/>;    
}
else  
    echo <img src="../images/slap1.jpg"/>;
从源码中可以看到:接收到用户POST的unamepasswd后,首先根据uname查询数据库的usernamepassword,若uname存在则用passwd替换password,若不存在则显示slap1.jpg。这就是为什么之前试的几条都失败了。
当用户名正确后,页面便能够返回Mysql错误信息,这就可以利用子查询注入在错误信息中返回想要的数据。
username=admin new password=1‘
Sqli labs less 17

 

 

Sqli labs less 17

上一篇:算法学习笔记25:动态规划


下一篇:ubuntu16.04编译aws-sdk-cpp