web之sql约束攻击

来源:互联网 发布:人口迁徙数据 编辑:程序博客网 时间:2024/06/05 08:31

动手之前呢,先看一下什么是约束攻击,我也是看了好多篇文章,试了好久才领悟了那么一丢丢,略陈己见,如果有不对的,还请大家指正,只是自己的理解加上借鉴的经验,有可能有些错误或者理解偏差,请见谅!

下面谈一下我的理解:

在处理SQL中的字符串时,字符串末尾的空格字符都会被删除。换句话说,“admin”与“admin                     ”几乎是等效的,这在大多数情况下是正确的

但也存在异常情况,最好的例子就是LIKE子句了。注意,对尾部空白符的这种修剪操作,主要是在字符串比较期间进行的。这是因为,QL会在内部使用空格来填充字符串,以便在比较之前使其它们的长度保持一致。在所有的INSERT查询中,SQL都会根据varchar(n)来限制字符串的最大长度。也就是说,如果字符串的长度大于n个字符的话,那么仅使用字符串的前n个字符。比如特定列的长度约束为5个字符,那么在插入字符串"admin666"时,实际上只能插入字符串的前5个字符,即"admin"

那么根据这个漏洞我们可以假设一个问题,如果当已知管理员账号是admin,不知道密码的时候,是否可以利用这个漏洞来“改”管理员的密码,假装自己是管理员,骗进后台

现在我们假设一个存在漏洞的网站使用了有INSERT代码来处理用户的注册及登录过程。为了侵入admin的账户,只需要使用用户名admin+若干个空格+1和一个随机密码进行注册即可

那么来看一个题目试试,SK的一个简单约束攻击的题目


我们尝试这样注册,然后抓包,点击注册

将admin改为admin

            1

试一下,forword


原创粉丝点击