MySQL盲注入

1.MySQL盲注入原理

MySQL盲注入是在网址追加MySQL IF查询判断语句,通过网页输出正确网页与错误网页,来准确判断数据库中的值从而得到数据库内的数据,下面将用盲注入来获取当前数据库库名,来进行盲注入演示

2.MySQL函数

在进行MySQL盲注入,的使用以下MySQL函数
database() 查看数据库名
substr(str,1,4) 字符串截取
mid(str,1,4) 字符串截取
ascii码
if (条件,True,False)

database()
在这里插入图片描述
substr(str,1,4)
在这里插入图片描述if(条件,1,0)
在这里插入图片描述
if((ascii(substr(database(),1,1))=15) ,1,0)

3.mysql手工注入测试

一:判断是否能进行注入
进入创建好的靶机,在url网址中传入参数id=1看是否能正确输出页面
在这里插入图片描述输出You are in … 表示正常输出页面,分别传入参数1‘ and 0与1‘ and 1 进行与运算得到的结果分别为false与true ,得到true输出页面you are in … ,false则输出错误不会显示you are in …,如下图
在这里插入图片描述
二:使用数据库函数获取库名

截取当前数据库名第一位字母,并把字母以 ascii 码方式转换成对应的数字,再使用 if 语句对数字进行条件判断,条件为真则输出1,假则输出0,语句如下
if(ascii(substr(database(),1,1))>100,1,0)

在URL网址传入参数:
id=1' and if(ascii(substr(database(),1,1))>100,1,0) --+

在这里插入图片描述输出页面显示you are in … 表示截取当前数据库名第一个字母的ascii码大于100为真,再次传入参数:
id=1' and if(ascii(substr(database(),1,1))>120,1,0) --+
在这里插入图片描述输出页面没有显示出数据,则表明截取当前数据库名第一个字母的ascii码大于120为假,这时我们就可以判断出第一个ascii码的值大于100,小于120,多次进行判断,不断缩小范围就可判断出数据库名第一个字母的值,第二个字母则使用相同的方法,得出ascii码值,但要注意截取第二个字母,要改变截取函数substr参数:substr(dataabase(),2,1)
后面的字母依次类推,最后把得到的字母组合到一起就是当前数据库名。

4.MySQL自动化注入测试

一:
MySQL自动化注入原理与手工注入原理相同,这里同样以获取当前数据库名为例,来进行测试
前期准备分为两步,一是搭建python环境,二是了解python库request模块的基本使用方法
二:
搭建好python环境后,我们将准备写入python文件,导入request模块,拼接URL网址,再使用requests.get()方法向网址发出请求,这里我们发出一个正确的URL,打印出requests.get()请求返回数据的长度,通过长度来判断网页输出是否正确,正确输出
在这里插入图片描述运行上面代码,得到706,则表明页面输出正常则返回数据长度706,同样数据长度为706我们就能判断输出页面正常
在这里插入图片描述使用 for 循环对数据库名每位字母,每种可能进行循环判断,如果if(len(r.content))==706,则输出结果转换成字母,并依次保存在flag变量中,打印出flag,退出循环
在这里插入图片描述得到结果如图,数据库名已成功打印出
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
作 者:(美)克拉克 著,黄晓磊,李化 译 SQL注入是Internet上最危险、最有名的安全漏洞之一,本书是目前唯一一本专门致力于讲解SQL威胁的图书。本书作者均是专门研究SQL注入的安全专家,他们集众家之长,对应用程序的基本编码和升级维护进行全面跟踪,详细讲解可能引发SQL注入的行为以及攻击者的利用要素,并结合长期实践经验提出了相应的解决方案。针对SQL注入隐蔽性极强的特点,本书重点讲解了SQL注入的排查方法和可以借助的工具,总结了常见的利用SQL漏洞的方法。另外,本书还专门从代码层和系统层的角度介绍了避免SQL注入的各种策略和需要考虑的问题。   本书主要内容   SQL注入一直长期存在,但最近有所增强。本书包含所有与SQL注入攻击相关的、当前已知的信息,凝聚了由本书作者组成的、无私奉献的SQL注入专家团队的所有深刻见解。   什么是SQL注入?理解它是什么以及它的基本原理   查找、确认和自动发现SQL注入   查找代码中SQL注入时的提示和技巧   使用SQL注入创建利用   通过设计来避免由SQL攻击所带来的危险 目录: 第1章 什么是SQL注入  1.1 概述  1.2 理解Web应用的工作原理   1.2.1 一种简单的应用架构   1.2.2 一种较复杂的架构  1.3 理解SQL注入  1.4 理解SQL注入的产生过程   1.4.1 构造动态字符串   1.4.2 不安全的数据库配置  1.5 本章小结  1.6 快速解决方案  1.7 常见问题解答 第2章 SQL注入测试  2.1 概述  2.2 寻找SQL注入   2.2.1 借助推理进行测试   2.2.2 数据库错误   2.2.3 应用响应   2.2.4 SQL注  2.3 确认SQL注入   2.3.1 区分数字和字符串   2.3.2 内联SQL注入   2.3.3 终止式SQL注入   2.3.4 时间延迟  2.4 自动寻找SQL注入  2.5 本章小结  2.6 快速解决方案  2.7 常见问题解答 第3章 复查代码中的SQL注入  3.1 概述  3.2 复查源代码中的SQL注入   3.2.1 危险的编码行为   3.2.2 危险的函数   3.2.3 跟踪数据   3.2.4 复查PL/SQL和T-SQL代码  3.3 自动复查源代码第1章 什么是SQL注入   3.3.1 YASCA   3.3.2 Pixy   3.3.3 AppCodeScan   3.3.4 LAPSE   3.3.5 SWAAT   3.3.6 Microsoft SQL注入源代码分析器   3.3.7 CAT.NET   3.3.8 商业源代码复查工具   3.3.9 Ounce   3.3.10 Fortify源代码分析器   3.3.11 CodeSecure  3.4 本章小结  3.5 快速解决方案  3.6 常见问题解答 第4章 利用SQL注入  4.1 概述  4.2 理解常见的利用技术  4.3 识别数据库   4.3.1 非跟踪   4.3.2 跟踪  4.4 使用UINON语句提取数据   4.4.1 匹配列   4.4.2 匹配数据类型  4.5 使用条件语句   4.5.1 方法1:基于时间   4.5.2 方法2:基于错误   4.5.3 方法3:基于内容   4.5.4 处理字符串   4.5.5 扩展攻击   4.5.6 利用SQL注入错误   4.5.7 Oracle中的错误消息  4.6 枚举数据库模式   4.6.1 SQL Server   4.6.2 MySQL   4.6.3 Oracle  4.7 提升权限   4.7.1 SQL Server   4.7.2 Oracle  4.8 窃取哈希口令   4.8.1 SQL Server   4.8.2 MySQL   4.8.3 Oracle  4.9 带外通信   4.9.1 E-mail   4.9.2 HTTP/DNS   4.9.3 文件系统  4.10 自动利用SQL注入   4.10.1 Sqlmap   4.10.2 Bobcat   4.10.3 BSQL   4.10.4 其他工具  4.11 本章小结  4.12 快速解决方案  4.13 常见问题解答 第5章 SQL注利用  5.1 概述  5.2 寻找并确认SQL注   5.2.1 强制产生通用错误   5.2.2 注入带副作用的查询   5.2.3 拆分与平衡   5.2.4 常见的SQL注场景   5.2.5 SQL注技术  5.3 使用基于时间的技术   5.3.1 延迟数据库查询   5.3.2 基于时间推断的考虑  5.4 使用基于响应的技术   5.4.1 MySQL响应技术   5.4.2 SQL Server响应技术   5.4.3 Oracle响应技术   5.4.4 返回多位信息  5.5 使用非主流通道   5.5.1 数据库连接   5.5.2 DNS渗漏   5.5.3 E-mail渗漏   5.5.4 HTTP渗漏  5.6 自动SQL注利用   5.6.1 Absinthe   5.6.2 BSQL Hacker   5.6.3 SQLBrute   5.6.4 Sqlninja   5.6.5 Squeeza  5.7 本章小结  5.8 快速解决方案  5.9 常见问题解答 第6章 利用操作系统  6.1 概述  6.2 访问文件系统   6.2.1 读文件   6.2.2 写文件  6.3 执行操作系统命令  6.4 巩固访问  6.5 本章小结  6.6 快速解决方案  6.7 常见问题解答  6.8 尾注 第7章 高级话题  7.1 概述  7.2 避开输入过滤器   7.2.1 使用大小写变种   7.2.2 使用SQL注释   7.2.3 使用URL编码   7.2.4 使用动态的查询执行   7.2.5 使用空字节   7.2.6 嵌套剥离后的表达式   7.2.7 利用截断   7.2.8 避开自定义过滤器   7.2.9 使用非标准入口点  7.3 利用二阶SQL注入  7.4 使用混合攻击   7.4.1 修改捕获的数据   7.4.2 创建跨站脚本   7.4.3 在Oracle上运行操作系统命令   7.4.4 利用验证过的漏洞  7.5 本章小结  7.6 快速解决方案  7.7 常见问题解答 第8章 代码层防御  8.1 概述  8.2 使用参数化语句   8.2.1 Java中的参数化语句   8.2.2 .NET(C#)中的参数化语句   8.2.3 PHP中的参数化语句   8.2.4 PL/SQL中的参数化语句  8.3 输入验证   8.3.1 白名单   8.3.2 黑名单   8.3.3 Java中的输入验证   8.3.4 .NET中的输入验证   8.3.5 PHP中的输入验证  8.4 编码输出  8.5 规范化  8.6 通过设计来避免SQL注入的危险   8.6.1 使用存储过程   8.6.2 使用抽象层   8.6.3 处理敏感数据   8.6.4 避免明显的对象名   8.6.5 创建数据库Honeypot   8.6.6 附加的安全开发资源  8.7 本章小结  8.8 快速解决方案  8.9 常见问题解答 第9章 平台层防御  9.1 概述  9.2 使用运行时保护   9.2.1 Web应用防火墙   9.2.2 截断过滤器   9.2.3 不可编辑的输入保护与可编辑的输入保护   9.2.4 URL策略/页面层策略   9.2.5 面向方面编程   9.2.6 应用入侵检测系统   9.2.7 数据库防火墙  9.3 确保数据库安全   9.3.1 锁定应用数据   9.3.2 锁定数据库服务器  9.4 额外的部署考虑   9.4.1 最小化不必要信息的泄露   9.4.2 提高Web服务器日志的冗余   9.4.3 在独立主机上部署Web服务器和数据库服务器   9.4.4 配置网络访问控制  9.5 本章小结  9.6 快速解决方案  9.7 常见问题解答 第10章 参考资料  10.1 概述  10.2 SQL入门  10.3 SQL注入快速参考   10.3.1 识别数据库平台   10.3.2 Microsoft SQL Server备忘单   10.3.3 MySQL备忘单   10.3.4 Oracle备忘单
1。支持数据库与注入方法:   MSSQL 2000 / 2005错误   MSSQL 2000 / 2005无错误联盟总部   MSSQL   MSSQL时基   基于MySQL的联盟   MySQL   基于MySQL的错误   MySQL的时间   基于Oracle的联盟   基于Oracle错误   Oracle   基于PostgreSQL的联盟   基于MS访问联盟   MS Access   Sybase(ASE)   Sybase(ASE)Blind   2。HTTPS支持   三.多线程   4。代理支持   5。自动信息服务器检测   6。自动参数类型检测(字符串或整数)   7。自动关键词检测(发现正面和负面的反应之间的区别)   8。自动扫描所有参数。   9。尝试完全不同的注射方法   10。替代房屋的选择,…针对IDS或过滤器   11。避免开发字符串(绕过magic_quotes和类似的过滤器)   12。手动注入语法支持   13。手动查询结果   14。强迫法外联盟   15。随机信号发生器   16。完全可定制的协议头(如参考,用户代理…)   17。从网站加载Cookie(s)进行身份验证   18。加载HTML类型的输入   19。协议基本和摘要认证   20。注入统一资源定位器重写页面   21。绕过防火墙和类似防火墙ModSecurity的互联网应用   22。绕过webknight互联网应用防火墙和类似防火墙   23。即时结果 软件特色   Havij这个注入工具大家应该多蛮清楚的吧,大牛小牛应该多有玩过。   算是比较著名也比较好用的SQL注入工具了。用的人也很多,它经常更新。   正版是要钱的。要感谢国内的破解大牛Hmily。每次多是它破解的最好用了。   这次这个也是它破解的。虽然网上有好几个版本。这个是免安装。注册一下控件就行了
SQL注入是Internet上最危险、最有名的安全漏洞之一,本书是目前唯一一本专门致力于讲解SQL威胁的图书。本书作者均是专门研究SQL注入的安全专家,他们集众家之长,对应用程序的基本编码和升级维护进行全面跟踪,详细讲解可能引发SQL注入的行为以及攻击者的利用要素,并结合长期实践经验提出了相应的解决方案。针对SQL注入隐蔽性极强的特点,本书重点讲解了SQL注入的排查方法和可以借助的工具,总结了常见的利用SQL漏洞的方法。另外,本书还专门从代码层和系统层的角度介绍了避免SQL注入的各种策略和需要考虑的问题。   本书主要内容   SQL注入一直长期存在,但最近有所增强。本书包含所有与SQL注入攻击相关的、当前已知的信息,凝聚了由本书作者组成的、无私奉献的SQL注入专家团队的所有深刻见解。   什么是SQL注入?理解它是什么以及它的基本原理   查找、确认和自动发现SQL注入   查找代码中SQL注入时的提示和技巧   使用SQL注入创建利用   通过设计来避免由SQL攻击所带来的危险 第1章 什么是SQL注入 1 1.1 概述 2 1.2 理解Web应用的工作原理 2 1.2.1 一种简单的应用架构 3 1.2.2 一种较复杂的架构 4 1.3 理解SQL注入 5 1.4 理解SQL注入的产生过程 10 1.4.1 构造动态字符串 10 1.4.2 不安全的数据库配置 16 1.5 本章小结 18 1.6 快速解决方案 18 1.7 常见问题解答 19 第2章 SQL注入测试 21 2.1 概述 22 2.2 寻找SQL注入 22 2.2.1 借助推理进行测试 22 2.2.2 数据库错误 29 2.2.3 应用响应 38 2.2.4 SQL注 42 2.3 确认SQL注入 45 2.3.1 区分数字和字符串 46 2.3.2 内联SQL注入 46 2.3.3 终止式SQL注入 51 2.3.4 时间延迟 59 2.4 自动寻找SQL注入 60 2.5 本章小结 68 2.6 快速解决方案 68 2.7 常见问题解答 69 第3章 复查代码中的SQL注入 71 3.1 概述 72 3.2 复查源代码中的SQL注入 72 3.2.1 危险的编码行为 74 3.2.2 危险的函数 79 3.2.3 跟踪数据 82 3.2.4 复查PL/SQL和T-SQL代码 88 3.3 自动复查源代码第1章 什么是SQL注入 94 3.3.1 YASCA 96 3.3.2 Pixy 96 3.3.3 AppCodeScan 97 3.3.4 LAPSE 97 3.3.5 SWAAT 97 3.3.6 Microsoft SQL注入源代码分析器 98 3.3.7 CAT.NET 98 3.3.8 商业源代码复查工具 98 3.3.9 Ounce 99 3.3.10 Fortify源代码分析器 100 3.3.11 CodeSecure 100 3.4 本章小结 100 3.5 快速解决方案 101 3.6 常见问题解答 102 第4章 利用SQL注入 105 4.1 概述 106 4.2 理解常见的利用技术 107 4.3 识别数据库 108 4.3.1 非跟踪 109 4.3.2 跟踪 112 4.4 使用UINON语句提取数据 113 4.4.1 匹配列 114 4.4.2 匹配数据类型 115 4.5 使用条件语句 119 4.5.1 方法1:基于时间 120 4.5.2 方法2:基于错误 122 4.5.3 方法3:基于内容 123 4.5.4 处理字符串 123 4.5.5 扩展攻击 125 4.5.6 利用SQL注入错误 126 4.5.7 Oracle中的错误消息 128 4.6 枚举数据库模式 131 4.6.1 SQL Server 131 4.6.2 MySQL 136 4.6.3 Oracle 139 4.7 提升权限 142 4.7.1 SQL Server 142 4.7.2 Oracle 147 4.8 窃取哈希口令 148 4.8.1 SQL Server 149 4.8.2 MySQL 150 4.8.3 Oracle 151 4.9 带外通信 154 4.9.1 E-mail 154 4.9.2 HTTP/DNS 157 4.9.3 文件系统 158 4.10 自动利用SQL注入 161 4.10.1 Sqlmap 161 4.10.2 Bobcat 164 4.10.3 BSQL 164 4.10.4 其他工具 166 4.11 本章小结 166 4.12 快速解决方案 167 4.13 常见问题解答 168 第5章 SQL注利用 171 5.1 概述 172 5.2 寻找并确认SQL注 173

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值