sql注入练习3(二次注入)

这个注入还挺有意思~~
原理:比如在注册的地方。。。对用户输入进行了转义,用户注册了一个admin' -- -
(无法注入了) 但是把它直接插入了sql中,取出来的时候仍能用admin登录
举个栗子:
更新密码语句:

update users set password='test' where username='admin' -- -'

似乎要改变的是admin’ – - 账户的密码,实际上改了admin账户的密码
如果我知道username是admin的话,我就可以尝试一下二次注入拿下密码了

sqli-labs less24 SecondOderInjections

1.在登录处各种尝试,没有注入成功-----要试一下二次注入
2.注册新用户
在这里插入图片描述

这里插入一张有意思的tip
在这里插入图片描述
如果忘记管理员密码的话,go hack it!
emmm 也就是可以通过二次注入登录管理员界面的
3.使用admin’ – -登录
会出来修改密码的界面(我的不行。。。logged-in.php文件没配置好????)
修改后用admin登录即可

本关为二次排序注入的示范例。二次排序注入也成为存储型的注入,就是将可能导致sql注入的字符先存入到数据库中,当再次调用这个恶意构造的字符时,就可以出发sql注入。二次排序注入思路:

  1. 黑客通过构造数据的形式,在浏览器或者其他软件中提交HTTP数据报文请求到服务端进行处理,提交的数据报文请求中可能包含了黑客构造的SQL语句或者命令。

  2. 服务端应用程序会将黑客提交的数据信息进行存储,通常是保存在数据库中,保存的数据信息的主要作用是为应用程序执行其他功能提供原始输入数据并对客户端请求做出响应。

  3. 黑客向服务端发送第二个与第一次不相同的请求数据信息。

  4. 服务端接收到黑客提交的第二个请求信息后,为了处理该请求,服务端会查询数据库中已经存储的数据信息并处理,从而导致黑客在第一次请求中构造的SQL语句或者命令在服务端环境中执行。

  5. 服务端返回执行的处理结果数据信息,黑客可以通过返回的结果数据信息判断二次注入漏洞利用是否成功。

此例子中我们的步骤是注册一个admin’#的账号,接下来登录该帐号后进行修改密码。此时修改的就是admin的密码。

Sql语句变为UPDATE users SET passwd=“New_Pass” WHERE username =’ admin’ # ’
AND password=’ ,也就是执行了UPDATE users SET passwd=“New_Pass” WHERE
username =’ admin’

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章