Sql-labs 通关笔记 (1 - 10 关)

325 阅读2分钟
本篇是自己的一个sql-labs (1-10关) 笔记, 欢迎大家指正
1-10关主要关于基础的Get注入的知识点

基础SQL语法

下面这三个语句是获取数据的基础

后面只要找到注入点后, 用这三条语句即可

select group_concat(table_name) from information_schema.tables where table_schema=database()
select group_concat(column_name) from information_schema.columns where table_name='users'
select group_concat(username,':',password) from users

第一关

第一关是字符型注入

image.png

第二关

第二关是数字型注入

image.png

第三关

区别就在于这关由单引号括号闭合

image.png

image.png

第四关

双引号括号闭合

image.png

image.png

第五关

一开始我们试着用 id=1 and 1=1 没问题

接着用 id=1 and 1=2 发现也没问题(如下)

image.png

要知道, and 前面出错, 后面的就不会运行

说明前面传入数字正确, 那这就是字符型注入

改为字符型注入, 果然没有显示了

image.png

但此题还有一点, 你输入正确都是 You are in.......

所以我们考虑使用报错盲注

image.png

image.png

第六关

此题改为双引号闭合

image.png

image.png

第七关

此题为 ')) 闭合

image.png

image.png

第八关

此题一样, 发现 id=1 and 1=2 还有数据, 就说明是字符型注入

image.png

但是发现采用报错盲注居然没有回显, 那么我们考虑使用布尔盲注

image.png

由于我们不知道id是多少, 又为了保证后面的语句能输出, 所以使用or

image.png

我们猜长度为7, 错误, 继续猜

image.png

可以看到, 长度为 8 时有回显, 所以数据库的长度为8

接着一步步猜解库名, 表名, 列名

image.png

image.png 这里猜到库名第一个字母是 's'

接着就是无尽的往下猜 (python yyds)

第九关

第九关直接看源码:

image.png

发现无论你输入正确与否都是返回一样的 You are in......

所以我们采用时间盲注的方法

image.png

image.png

按上面方式一步步猜表名, 库名, 列名

第十关

与第九关唯一不同就在于是双引号闭合

image.png

谢谢你能看到这, 一起加油ヽ( ̄ω ̄( ̄ω ̄〃)ゝ