宽字节 墨者学院—SQL注入漏洞测试

靶场地址:SQL注入漏洞测试(宽字节)_SQL注入_在线靶场_墨者学院_专注于网络安全人才培养
我们打开靶场
有了经验了,我们直接打开下方导航条看注入点
根据题目提示是宽字节注入,我也不做其他无用功了,直接在'前加%cf来判断是否存在注入点
(此处php是开启了'转义 。如果用户输入了 ' , 那么服务器将会在这个单引号前面加一个\进行转义 。)
然后通过url编码 我们输入的' 就会被URL转变成 %5c%27
然后如果我们在前面输入一个%cf,整个句子就会被变成%cf%5c%27
%cf%5c会首先被GBK编码 。然后剩下一个%27 。
然后发送到数据库的时候也能完成闭合 。
此处涉及到编码,用纯文字我也比较难以描述..如果不太了解可以自行百度编码
我们在'号前添加了个%cf后,网页提示我们语句错误,说明我们闭合成功了,接下来就在后面加上注释就可以了 。
然后判断列数,在第六列的时候显示查询错误,所以判断数据库只有5列数据
判断回显点,在第3段和第5段都可以进行回显
查询表
%cf' union select 1,2,group_concat(table_name),4,5 from information_schema.tables where table_schema=database() --+
到这我们要查列,原本语句为
union1,2,(),4,5 from . where =''
但是由于单引号被过滤,且不能通过编码来绕过,那我们可以百度下如何绕过单引号注入 。
搜索结果有修改为16进制
进制转换器:ASCII字符串到16进制在线转换工具 - .Tools
%cf' union select 1,2,group_concat(column_name),4,5 from information_schema.columns where table_name=0x73746f726d67726f75705f6d656d626572--+
得到列名,我们要求的是name和的数据 。直接两个一起查
【宽字节墨者学院—SQL注入漏洞测试】得到的结果是加密的,通过解密即可获得密码