webgote的例子(6)SQL注入(盲注)

SQL Injection - Blind (WS/SOAP)

本期演示的是盲注的手法。有些网站在与数据库交互的地方进行了很好的修饰,将报错的语句进行修改,即使你找到了注入点也无法下手拿数据,这个时候我们的步骤就比较麻烦了,我们只能通过对错的方式进行盲注(如下演示)

首先我们看一眼这是一个正常的显示页面。

加了一个点后也有不一样的地方。。。。。。。。 电影票的数字没了。。。

Sql的系统语句错误也被很好的掩盖掉了。我们再加一个注释看看

又输入了一个注释符后页面又恢复了正常。说明这个地方仍旧有漏洞(这就是下面要演示的另一个手法——盲注。)

我们加了一个or 的语句让它与后面的select user()不冲突,并将语句故意输错误的和正确的。看看页面有什么异常,据上方的显示结果来看返回的页面是又改变这的说明语句在后台确实是执行了的。

这个时候我们就要将我们的语句进行一个转变了大致思路如下:

  1. 先将我们的注入语句完整的写上。
  2. 将我们要查的语句的返回结果转成字符串。
  3. 截取字符串的所有字符
  4. 将每个字符转成ascii码然后通过比大小确认字符

其中要用到如下方法:

Substr((sql),x,y)     //(sql)内添加查询语句就可以将返回的结果转成字符将这一串的字符以第x个开始向下截取y个。

Ascii() //该方法是将字符所对应的ascii码转换一下并显示出来。

具体如下示例:

上面的语句简单的说一下吧: select user()的结果用substr()将字符串的第一个字符开始向下截取一个,然后用ascii()方法转成ascii码再一一的比对

比如:

(ascii(substr((select user()),2,1))>90)

//这个ascii的值否大于90 如果正确则应该显示53的那个数反之就是错误的,然后在 尝试(ascii(substr((select user()),2,1))=>100) 正确则显示53的那个数反之就是错误 以此 类推逐渐缩小范围。最终确定那个数。

Ascii的值我们可以看一下 在数据库中数据库是识别ascii的也可以一一的查出来。

或者百度一下我们可以拿张表看一下

我们将这些最终判定的结果依次记下来(如上图)这样我们就可以通过ascii码拿到数据了。

这样用户就出来了 一般找到注入点后最先想到的方法就是找显示位然后用联合查询。像这样一个一个的试这样的拿数据方式就是盲注了。这样的做的方法比较麻烦效率也比较低,后面有效率较高的方法,这个回头再讲,以上就是本次演示的内容。

原文地址:https://www.cnblogs.com/shiguangliangchunshanbo/p/8847345.html

时间: 2024-09-29 23:31:12

webgote的例子(6)SQL注入(盲注)的相关文章

SQL注入盲注——布尔注入

SQL注入盲注--布尔注入 原文地址:https://www.cnblogs.com/blogs-1024/p/11204272.html

【安全牛学习笔记】​手动漏洞挖掘-SQL盲注

手动漏洞挖掘-----SQL盲注 不显示数据库内建的报错信息 内建的报错信息帮助开发人员发现和修复问题 报错信息提供关于系统的大量有用信息 当程序员隐藏了数据库内建报错信息,替换为通用的错误提示,sql注入将 无法依据报错信息判断注入语句的执行结果,即 盲 思路:既然无法基于报错信息判断结果,基于逻辑真假的不同结果来判断 1'and 1=1--+ 1'and 1=2--+ select * from table_name where id='1' orderby 2--'; 课时91 手动漏洞挖

SQL注入其实很简单,别一不留神就被利用了

SQL注入这个词相信大家应该都不陌生,而且每年都会有这样子的事情发生,下面我先带大家回忆11年两期起比较经典的案例事件: 1.SONY索尼事件2011年4月,著名的×××组织Anonymous***SONY一个网站,一星期后才被发现7千万的用户个人信息,其中包括姓名.地址.E-mail.出生日期.用户名.密码以及购买记录的数据信息,随后的一些其他服务器也被相继攻破 2.CSDN数据泄露门2011年底,国内各大网站被爆出"密码泄露门",最先公布的是著名技术网站CSDN600万账户和密码泄

SQL注入备忘录

常见注入类型 联合注入 布尔注入 报错注入 盲注(时间.布尔) 堆叠注入 三个重要表 information_schema.schemata存放库名的表 information_schema.tables存放表名的表 information_schema.columns存放字段名的表 其他信息 version() 查看数据库版本 user()查看当前用户 @@version_compile_os 操作系统 @@datadir 读取数据库路径 @@basedir MYSQL 获取安装路径 先确实构

Gxlcms时间盲注+后台任意文件删除读取下载+getshell

前台SQL时间盲注 在前台作品评分处 Lib\Home\Action/CommAction.class.php 第56行 $ting_id = $_GET["id"]; 第133行 $ting_gold = $mod->where("ting_id='$ting_id'")->getField("ting_gold"); 导致了可以时间盲注 因为回显不明确 后台GetShell 后台附件设置处 fuzz过程 输入php  被过滤成空

SQL注入(二)

5.限制输入长度 如果在Web页面上使用文本框收集用户输入的数据,使用文本框的MaxLength属性来限制用户输入过长的字符也是一个很好的方法,因为用户的输入不够长,也就减少了贴入大量脚本的可能性.程序员可以针对需要收集的数据类型作出一个相应的限制策略. 6.URL重写技术 我们利用URL重写技术过滤一些SQL注入字符,从而达到防御SQL注入.因为许多SQL注入是从URL输入发生的. 7.传递参数尽量不是字符 假设我们显示一篇新闻的页面,从URL传递参数中获得newid我们可能会随手写下下面的代

讲sql注入原理的 这篇不错(有空可以看看)

我们围绕以下几个方面来看这个问题: 1.什么是sql注入? 2.为什么要sql注入? 3.怎样sql注入? 1.什么是sql注入? 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击.如果代码使用存储过程,而这些存储过程作

聊一聊MyBatis 和 SQL 注入间的恩恩怨怨

整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 更多优选 一口气说出 9种 分布式ID生成方式,面试官有点懵了 面试总被问分库分表怎么办?你可以这样怼他 3万字总结,Mysql优化之精髓 为了不复制粘贴,我被逼着学会了JAVA爬虫 技术部突然宣布:JAVA开发人员全部要会接口自动化测试框架 Redis 5种数据结构及对应使用场景,全会面试要加分的 引言 MyBatis 是一种持久层框架,介于 JDBC 和 H

sql注入攻击与防御第二版读书笔记二——SQL盲注利用

寻找并确认SQL盲注 强制产生通用错误 注入带副作用的查询 如 mssql waitfor delay '0:0:5' mysql sleep() 拆分与平衡 5 -> 7-2 常见SQL盲注场景 提交一个错误查询时会返回一个通用错误页面,而提交正确的查询会返回一个内容可被适度控制的页面 提交一个错误查询时会返回一个通用错误页面,而提交正确的查询会返回一个内容不可被控制的页面 提交一个错误查询时不会影响,但是可能基于时间或者其他副作用 SQL盲注技术 推断攻击技术 len() 判断长度 subs