SQL注入学习总结(二):其他类型SQL注入

其他类型注入的详解(1)

1.二次注入

形成原理:在第一次进入数据库插入数据的时候,仅仅只是使用了addslashes或者是借助get_magic_quotes_gpc对其中的特殊字符进行转义,但是addslashes有一个特点就是虽然在参数前会添加''进行转义,但是''并不会进入数据库中,再写入数据库时还是保留了原来输入的数据.在下一次需要查询时就直接从数据库中取出了能够构成payload的语句.比如在第一次注入时写入了单引号,就可以形成二次注入

Tips:一般题目中都会存在登陆注册两种功能(当然也不排除session文件包含)

例子:(sqli-labs less-24)
  1. 首先进入搭建好的sqli-labs less-24
  2. 注册一个新的账号admin'#

1.png

  1. 查看此时数据库中已经多出一个账号了并且特殊符号没有被转义

2.png

  1. 我们尝试着登陆进去,会发现可以更改当前用户的密码

3.png

  1. 到数据库查看可以发现admin的密码被修改了,而admin'#的密码没有

4.png

  1. 我们可以查看pass_change.php的代码,发现修改密码这里的sql语句
    "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";
    5.png

我们可以看到如果将admin'#带到里面去后:
"UPDATE users SET PASSWORD='$pass' where username='admin'# and password='$curr_pass' ";
实际上就是:
"UPDATE users SET PASSWORD='$pass' where username='admin'
这里后面的内容都被#注释掉了,这样就是在修改admin的密码了,我们再尝试登陆一下,发现利用admin也可以成功了

6.png

转载于:https://www.cnblogs.com/vincy99/p/9629140.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值