这周学长出了两道二次注入的题(再也不能直接用sqlmap水过去了……)第一道现在还没写出来QAQ,但是从第二道多少学习了一下手工注入的一些操作。
先是看了几篇讲解约束注入的博客,这个博主小姐姐超厉害,在这里就说一下自己的理解:
- 约束SQL注入的原理就是利用的约束条件,比如最长只能有15个字符的话,如果你输入的是
abcdefghijklmnop(16位)
,那么保存在数据库里的就是abcdefghijklmno
,那么别人用abcdefghijklmno
注册一个用户名,就可以登陆。 - 还有一个可以利用的地方就是SQL在执行字符串处理的时候是会自动修剪掉尾部的空白符的,也就是说
"abc"=="abc "
,同样我们可以通过注册用户名为"abc "
的账号来登陆"abc"
的账号。
这是bugku上面的一道题:
看到这种登陆界面,一般先要注册一个账号以便把每个页面都浏览一下,那我们先试试admin,发现账号已存在……emmmmm那我就注册别的吧,把页面浏览了一遍并没有发现什么QAQ,然后各种乱试……某一次注册时自己又用了一个似乎之前注册过的账号(注册次数太多……)发现直接显示注册成功???然后反应过来觉得哪里不太对……为什么admin就不行呢??这其中必定有诈.jpg
题目中说的是约束攻击哎~那就试着用"admin "
注册了一个账号,用这个的密码登陆"admin"
账号,然后就看到了flag~