SQLi-labs(Less-24)

Less-24 POST- Second Oder Injections Real treat -Stored Injections

  • 二次排序注入
    二次排序注入也成为存储型的注入,就是将可能导致sql注入的字符先存入到数据库中,当再次调用这个恶意构造的字符时,就可以出发sql注入。二次排序注入思路:
    1、黑客通过构造数据的形式,在浏览器或者其他软件中提交HTTP数据报文请求到服务端进行处理,提交的数据报文请求中可能包含了黑客构造的SQL语句或者命令。
    2、服务端应用程序会将黑客提交的数据信息进行存储,通常是保存在数据库中,保存的数据信息的主要作用是为应用程序执行其他功能提供原始输入数据并对客户端请求做出响应。
    3、黑客向服务端发送第二个与第一次不相同的请求数据信息。
    4、服务端接收到黑客提交的第二个请求信息后,为了处理该请求,服务端会查询数据库中已经存储的数据信息并处理,从而导致黑客在第一次请求中构造的SQL语句或者命令在服务端环境中执行。
    5、服务端返回执行的处理结果数据信息,黑客可以通过返回的结果数据信息判断二次注入漏洞利用是否成功。

  • 查看后端源代码():

//login.php中的源码
$username = mysql_real_escape_string($_POST["login_user"]);
$password = mysql_real_escape_string($_POST["login_password"]);
//mysql_real_escape_string() 函数,转义SQL语句中使用的字符串中的特殊字符。


//login_create.php中的源码
$username=  mysql_escape_string($_POST['username']) ;
$pass= mysql_escape_string($_POST['password']);
$re_pass= mysql_escape_string($_POST['re_password']);
//mysql_escape_string()函数,


//pass_change.php中的源码
$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";
  • 可见,登录页面和注册页面的后端源代码都有输入过滤函数对输入的字符转义。

在这里插入图片描述

  • 下图是数据库中原有的表单:
    在这里插入图片描述
  • 注册一个跟上图原有的username相似的username:
    在这里插入图片描述
  • 数据表中已存入刚注册的username和password:
    在这里插入图片描述
  • 寻找另一处引用这个数据并没有被转义又插入进了数据库中。即:在登录后的密码修改处
    在这里插入图片描述
  • Reset后admin的密码就会被更改:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值