首页 > 数据库技术 > 详细

基于约束的sql攻击的讲解和例题

时间:2020-04-27 13:51:42      阅读:73      评论:0      收藏:0      [点我收藏+]

基于约束的sql攻击
首先我们先了解一下几个知识点:

 1. 在INSERT中,SQL会根据varchar(n)来限制字符串的最大长度。如果字符串的长度大于“n”个字符的话,那么仅使用字符串的前“n”个字符。(这里我们就可以考虑如果我们故意超出规定长度会怎么样?)
 2. 在SQL中执行字符串处理时,字符串末尾的空格符将会被删除(结合上面的这里应该就可以构造出payload了)。也有特殊情况,比如LIKE。
   

现在我们思考
现在一个表里已经有了admin用户
 用户名varchar(30)
再插入一个admin  (25个空格) 1
 因为限制长度30位
所以会只存入前30位  这样就可以创建admin用户
 这就是基于约束的sql攻击,我们来看一个例题
 
  --------------------------------------------------------------------------------------
我们查看发现是这样一个页面

技术分享图片


我们先注册了一个账号,然后登录发现

技术分享图片
那他的这里应该是想我们以admin身份登录

我们尝试一下注册admin账号

技术分享图片


这里既然提示admin存在

结合这里题目基于约束的攻击

我们根据攻击原理注册账号

admin                                                 1/Aaaaaaa1

技术分享图片


发现成功  然后以admin登录得到flag



技术分享图片
防范:
 服务端检测输入数据长度

基于约束的sql攻击的讲解和例题

原文:https://www.cnblogs.com/zhichu/p/12786129.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!