目录
第八关
第九关:
第十关
第十一关
第十二关
第十三关
第十四关
第八关
我们用测试语句来测试是否为注入点
从上图中得知存在注入点,那么接下来就是爆列
一共有三列,接下来用union select 和报错注入都试一下发现没有回显点,那么可以测试这里存在盲注。
主要分为boolean和时间盲注
接下来引入三个函数
length() //长度
left()//取从左往右数几个字符
ascii()//ASCII码值
substr()//截取字符串
sleep()//计算时间【将程序挂起一段时间】
if()【配合时间盲注】
利用length来猜数据库名的长度【在这里可以结合burpsuite】
因为这个结果只会返回是或不是
所以从上面图中可以知道数据库名长度为8,接下来就是利用ASCII码来猜数据库名,这将会是一个漫长的过程。
利用payload:and (ascii(substr(database(),1,1)))=115--+
ASCII码值为115则说明第一位是s
接下来猜后面的
证明第二位是e就这么一步一步的猜吧,根据我们前面知道的这个数据库名是security
利用这个名字再继续一个一个猜表,列,数
利用payload:' and (ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1【位数】,1【个数】)))=101--+
得知数据库中第一个表的第一个字母为e,接下来就这么一个一个猜,列名,数据名同上。
第九关:
这一关我们用之前的方法进行测试,发现无论是哪种闭合都是返回正确的,那么这里可能就跟时间盲注有关系。【时间盲注跟布尔盲注结合】
那么在这里就需要用到if 和 sleep这两个函数来判断了。
利用payload:
' and if(length(database())=8,sleep(5),1)--+ 查看他的响应时间是否有变化。
后面的就跟之前的payload差不多。
第十关
第十关跟第九关没啥区别,就是闭合双引号的问题。
那么时间盲注最大的问题就是我们没办法一开始就猜到闭合的规则,有可能试了半天他最后没有时间盲注,所以这里就考验的是心态。
第十一关
第十一关一开始就很陌生了,没错这是一个post表单传参的问题。
那么这个就是万能密码的问题
利用payload:' or 1=1 order by 3--qwe
猜测出有两列
剩下的就跟之前是一样的了,在这里也不多说了,不知道的可以看之前的东西。
第十二关
好吧,这个跟之前一样又是一个闭合的问题。
第十三关
第十三关其实是post类型的报错注入
这个没有回显点那么就利用报错函数updatexml
利用payload:')and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)#
爆出数据库名,那么接下来的步骤,大家也都清楚了吧。
第十四关
第十四关又是闭合的问题了。报错无回显,利用updatexml来测试跟上面一样。
payload:"and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)#