当前位置: 首页 > wzjs >正文

哪家网站开发好百度seo公司报价

哪家网站开发好,百度seo公司报价,phpcms 友情链接 网站名称字数,定制营销的成功案例一、布尔盲注 1、布尔盲简介 布尔盲注是一种SQL注入攻击技术,用于在无法直接获取数据库查询结果的情况下,通过页面的响应来判断注入语句的真假,从而获取数据库中的敏感信息 2、布尔盲注工作原理 布尔盲注的核心在于利用SQL语句的布尔逻辑…

一、布尔盲注

1、布尔盲简介

布尔盲注是一种SQL注入攻击技术,用于在无法直接获取数据库查询结果的情况下,通过页面的响应来判断注入语句的真假,从而获取数据库中的敏感信息

2、布尔盲注工作原理

布尔盲注的核心在于利用SQL语句的布尔逻辑(真或假)来推断数据库中的信息。攻击者通过构造特定的SQL查询语句,观察应用程序的响应(通常是页面内容的变化、HTTP状态码的不同或响应时间的延迟等),来判断布尔条件的真假

3、常用函数

length()返回字符串的长度,用于确定数据库名表名字段名长度

substr()提取特定长度的字符串,用于逐步猜测数据库名表名字段名

ascii():将字符转换ASCII码值,用于逐个字符猜测数据库名表名字段名

4、实战步骤

(1)判断注入点

通过构造如id=1 and 1=1id=1 and 1=2的语句,观察页面响应来确认注入点

(2)判断长度

使用length()函数确定目标字符串的长度,例如id=1 and length(database())=8

(3)枚举字符

使用substr()ascii()函数逐个字符地猜测目标字符串,例如id=1 and ascii(substr(database(),1,1))=100

5、布尔盲注适用场景

页面不会回显SQL语句的执行结果;

数据库报错被处理,不会显示错误信息;

无法使用联合查询注入(UNION注入)或报错注入

6、实例

典型的布尔盲注攻击场景

假设后端的PHP代码如下:

<?php
$id = $_GET['id'];
$query = "SELECT * FROM users WHERE id = '$id'";
$result = mysqli_query($conn, $query);
?>

然后我们构造这样的注入语句:

/?id=1' and 1=1

后端生成的SQL语句则为:

SELECT * FROM users WHERE id = '1' and 1=1

解释:

1=1 始终为真,因此这条SQL语句等价于:

SELECT * FROM users WHERE id = '1'

数据库会正常执行这条语句,页面会正常显示

那假如我们构造的SQL语句为:

/?id=1' and 1=2

则后端生成的SQL语句为:

SELECT * FROM users WHERE id = '1' and 1=2

解释:

1=2 始终为假,因此这条SQL语句等价于:

SELECT * FROM users WHERE id = '1' and FALSE

由于 1=2 为假,整个条件 id = '1' and 1=2 也为,因此这条SQL语句不会返回任何结果;

如果页面逻辑依赖于查询结果的存在(例如,显示用户信息),页面可能会显示错误或异常

攻击者的逻辑判断

攻击者通过观察页面的响应来判断SQL语句的真假:

 1、页面正常显示

如果页面正常显示,说明注入的条件为1=1);

这表明注入的SQL语句被成功执行,且条件为真

2、页面显示错误或异常

如果页面显示错误或异常,说明注入的条件为1=2

这表明注入的SQL语句被成功执行,但条件为假,导致查询没有返回结果

布尔盲注的原理

布尔盲注的核心在于利用布尔逻辑真或假)来判断注入语句的真假。攻击者通过构造特定的注入语句,观察页面的响应推断数据库中的信息

示例

假设攻击者想判断数据库中是否存在某个用户 admin,可以使用以下步骤:

1、构造注入语句

/?id=1' and (SELECT username FROM users WHERE username='admin')='admin' --+

后端生成的SQL语句:

/?id=1' and (SELECT username FROM users WHERE username='admin')='admin' --+

2、观察页面响应

如果页面正常显示,说明条件为,数据库中存在用户 admin;

如果页面显示错误或异常,说明条件为,数据库中不存在用户 admin

二、时间盲注

1、时间盲注简介

时间盲注(Time-Based Blind SQL Injection)是一种SQL注入攻击技术,用于在无法直接获取数据库查询结果的情况下,通过测量数据库响应的时间来推断数据库中的信息。这种方法特别适用于那些不会直接返回错误信息或查询结果的场景

2、时间盲注工作原理

时间盲注的核心在于利用SQL语句的执行时间来判断注入语句的真假。攻击者通过构造特定的SQL语句,使数据库在满足某些条件时延迟响应。如果页面响应时间明显增加,说明注入的条件为真;如果响应时间正常,说明注入的条件为假

3、常用函数

SLEEP():MySQL中的函数,用于使数据库延迟指定的时间(秒);

waitfor delaySQL Server中的函数,用于使数据库延迟指定的时间;

pg_sleep():PostgreSQL中的函数,用于使数据库延迟指定的时间

4、实战步骤

(1)判断注入点

通过构造如id=1' and sleep(5)的语句,观察页面响应时间来确认注入点

如果页面响应延迟了5秒,说明存在注入点

(2)判断条件真假

例如

/?id=1' and (select 1 from users where username='admin')=1 and sleep(5)

如果页面响应延迟了5秒,说明条件为真;如果响应时间正常,说明条件为假

(3)枚举数据库信息

通过逐个字符猜测数据库名、表名或字段名,构造注入语句并观察响应时间。

例如,猜测数据库名的第一个字符是否为'a'

/?id=1' AND ASCII(SUBSTRING((SELECT database()), 1, 1))=97 AND SLEEP(5)

如果页面响应延迟了5秒,说明第一个字符为'a';否则,继续猜测其他字符。

示例

假设后端的PHP代码如下:

<?php
$id = $_GET['id'];
$query = "SELECT * FROM users WHERE id = '$id'";
$result = mysqli_query($conn, $query);
?>

攻击者通过URL传递的参数是:

/?id=1' AND SLEEP(5) (大小写没有影响)

后端生成的SQL语句将是:

SELECT * FROM users WHERE id = '1' AND SLEEP(5)

如果页面响应延迟了5秒,说明存在注入点。

总之

时间盲注是一种通过测量数据库响应时间来推断数据库信息的SQL注入技术。攻击者通过构造特定的SQL语句,使数据库在满足某些条件时延迟响应,从而判断条件真假。 

http://www.dtcms.com/wzjs/133443.html

相关文章:

  • 丹阳是哪个省咸阳seo
  • 沈阳专业做网站公司整合网络营销公司
  • 武进常州做网站微信朋友圈广告代理
  • 试析媒体网站品牌建设软文范例300字
  • 湛江网警山西seo推广
  • 商城网站开发实训报告网上推广用什么平台推广最好
  • 聊城手机网站建设服务汕头百度网络推广
  • 小型电商网站模板百度推广账户优化方案
  • 网站做优化应该具备什么推广拉新app哪几个靠谱
  • 网站建设合同封面模板下载百度指数分析工具
  • 厦门 网站建设百度搜索引擎使用技巧
  • 品牌网站建设怎么做西安seo优化推广
  • 网站改版 删除栏目北京效果好的网站推广
  • 济南网站建设培训学校做一个网站需要多少钱
  • wix做的免费网站可以用吗浙江网站建设平台
  • 富阳营销型网站建设培训机构网站设计
  • 马家堡做网站的公司2345网址导航应用
  • 上饶做网站建设怎么做seo
  • 宿迁网站优化中国最大网站排名
  • 广告发布者是指网络优化工资一般多少
  • 怎么做王者荣耀网站图片扫一扫在线识别照片
  • 南昌门户网站开发营销网站案例
  • wordpress的中文插件安装教程视频教程怎么优化一个网站
  • 10m带宽做下载网站优秀软文范例200字
  • 代做网站关键词免费推广app软件下载
  • 重庆建设工程安全管理网查询seo新站如何快速排名
  • 扬州建设教育信息网站百度电视剧风云榜
  • 网站开发工具有百度推广助手下载
  • 网站建设 别墅网络广告推广方案
  • 中装建设股票有潜力吗推广优化师