安全沙龙

发布时间:2023-1-11 | 杂志分类:其他
免费制作
更多内容

安全沙龙

102信息安全中心安全沙龙 逆向工程 Windows(一) 的代码位于相关的 DLL 文件中,在调用者程序中只保留相关的函数信息(如函数名、DLL 文件名等)就可以。对于磁盘上的 PE 文件来说,它无法得知这些在内存中的地址,只有当 PE 文件被装入内存后输入函数,Windows 加载器才将相关DLL 装入,并将调用输入函数的指令和函数实际所处的地址联系起来。这就是“动态链接”的概念。动态链接是通过 PE 文件中定义的“导入表”来完成的,导入表中保存的正是函数名和其驻留的 DLL 名等。导入表是以一个 IMAGE_IMPORT_DESCRIPTOR (简称 IID) 的数组开始。每个被 PE 文件链接进来的 DLL 文件都分别对应一个 IID 数组结构。在这个 IID数组中,并没有指出有多少个项(就是没有明确指明有多少个链接文件),但它最后是以一个全为 NULL(0) 的 IID 作为结束标志。①联合体值为 0 时(一般用 Characteristics 判断是否是 0),表示这是导入表结构体数组最后一个元素,除了最后这一个元素,其它每一个结构体都保存了一个 dll 信息。联合体的值... [收起]
[展开]
安全沙龙
粉丝: {{bookData.followerCount}}
文本内容
第101页

101

信息安全中心安全沙龙 逆向工程 Windows(一)

块(节),并有区块表(节表)的数据来描述这些区块。这里我们需要注意的问

题是:一个区块中的数据仅仅只是由于属性相同而放在一起,并不一定是同一种

用途的内容。例如接着要讲的导入表、导出表等就有可能和只读常量一起被放在

同一个区块中,因为他们的属性都是可读不可写的。

其次,由于不同用途的数据有可能被放入同一个区块中,因此仅仅依靠区块

表是无法确定和定位的。通过 PE 文件头中 IMAGE_OPTIONAL_DEADER32 结构的数

据目录表来指出他们的位置,我们可以由数据目录表来定位的数据包括导入表、

导出表、资源、重定位表和 TLS 等 15 种数据。

文件头的最后来详细了解一下数据目录中的导入表。

在代码分析或编程中经常遇到“输入函数(Import Functions,也称导入函

数)”,输入函数就是被程序调用但其执行代码又不在程序中的函数,这些函数

第102页

102

信息安全中心安全沙龙 逆向工程 Windows(一)

的代码位于相关的 DLL 文件中,在调用者程序中只保留相关的函数信息(如函数

名、DLL 文件名等)就可以。对于磁盘上的 PE 文件来说,它无法得知这些在内

存中的地址,只有当 PE 文件被装入内存后输入函数,Windows 加载器才将相关

DLL 装入,并将调用输入函数的指令和函数实际所处的地址联系起来。这就是

“动态链接”的概念。动态链接是通过 PE 文件中定义的“导入表”来完成的,

导入表中保存的正是函数名和其驻留的 DLL 名等。

导入表是以一个 IMAGE_IMPORT_DESCRIPTOR (简称 IID) 的数组开始。每

个被 PE 文件链接进来的 DLL 文件都分别对应一个 IID 数组结构。在这个 IID

数组中,并没有指出有多少个项(就是没有明确指明有多少个链接文件),但它最

后是以一个全为 NULL(0) 的 IID 作为结束标志。

①联合体值为 0 时(一般用 Characteristics 判断是否是 0),表示这是导

入表结构体数组最后一个元素,除了最后这一个元素,其它每一个结构体都保存

了一个 dll 信息。联合体的值不为 0 时,用 OriginalFirstThunk(RVA)来索引

Import Name Table(INT)的地址。这张 INT 表存放了该 dll 的导出函数的信息

(序号与函数名)。

②TimeDateStamp:当时间戳值为 0 时,表示未加载前,Import Address Table

(IAT)与 Import Name Table(INT)完全相同;当时间戳不为 0(为-1)时,

表示 IAT 与 INT 表不同,IAT 存储的是该 dll 的所有函数的绝对地址,这样在未

加载前就直接填充函数地址的方式为函数地址的绑定,其地址是根据绑定导入表

来确定的。也就是说当时间戳为-1 时绑定导入表才有效,而真正的时间戳存放

到绑定导入表中,否则无效。

③ForwarderChain:一般情况下我们也可以忽略该字段。在老版的绑定中,

它引用 API 的第一个 forwarder chain(传递器链表)。

④Name:RVA 指向 dll 的名字字符串。

⑤FirstThunk:RVA 指向 IAT 表。

第103页

103

信息安全中心安全沙龙 逆向工程 Windows(一)

对于一个普通程序来说,需要导入多少个库,就会存在多少个这样的结构体,

这些结构体组成数组,然后数组最后是以 NULL 结构体结束。其中有几个重要的

成员:

OriginalFirstThunk:Import Name Table(INT)的地址,是 RVA 地址

Name :库名称字符串地址,是 RVA 地址,就是说该地址保存库名称

First Thunk:IAT 的地址,是 RVA 地址

INT 与 IAT 是长整型(4 个字节数据类型)数组,以 NULL 结束

INT 中各元素的值是 IMAGE_IMPORT_BY_NAME 结构体指针。

INT 与 IAT 大小应相同。

下图描述了 notepad.exe 之 kernel32.dll 的 IMAGE_IMPORT_DESCRIPTOR 结

构体,这个结构体对应 Kernel32.dll,从右边可以看出 notepad.exe 调用了

Kernel32.dll 中的三个函数,每个函数对应一个 IMAGE_IMPORT_BY_NAME 结

构 体 , 结 构 体 中 的 两 个 成 员 一 个 是 函 数 的 序 号 , 一 个 是 函 数 名 。

OriginalFirstThunk 和 FirstThunk 分别指向 INT 和 IAT,在 notepad.exe 被装

入内存前, INT 和 IAT 中的各元素都指向相同的地址。

INT 与 IAT 的各元素同时指向相同地址,但也有很多情况下它们是不一致的。

第104页

104

信息安全中心安全沙龙 逆向工程 Windows(一)

PE 装载器是如何将导入函数输出到 IAT 的,步骤如下:

OriginalFirstThunk 和 FirstThunk 都指向一个包含 IMAGE_THUNK_DATA 结

构(在后面学习)的数组,数组中的每个 IMAGE_THUNK_DATA 结构定义了一个导

入函数的信息,数组最后以一个内容为 0 的 IMAGE_THUNK_DATA 结构作为结束。

ForwarderString:只有当 IMAGE_IMPORT_DESCRIPTOR 中的 ForwarderChain

有值时,它才有效

Function:导入函数的实际内存地址,只有在载入内存中时才有效

Ordinal:导入函数的导出序号,导出表中允许使用序号的方式导出函数,导

入表也要有相应的机制。只有当 IMAGE_THUNK_DATA 的最高位是 1 的时候才有效

AddressOfData: 当 IMAGE_THUNK_DATA 的最高位为 0 的 时 候 有 效 ,

AddressOfData 指向一个 IMAGE_IMPORT_BY_NAME 结构体数组

当 IMAGE_THUNK_DATA 值的最高位为 1 时,表示函数以序号方式导入,这

时候低 31 位被看作一个函数序号。当 IMAGE_THUNK_DATA 值的最高位为 0 时,

表示函数以字符串类型的函数名方式导入,这时双字的值是一个 RVA,指向一个

IMAGE_IMPORT_BY_NAME 结构

最高位为 1 会怎么样:最高位为 1 的最小数也是 0x80000000,这个位置是

系统空间,程序不可访问,因此是不可能的。

程序加载后 INT 不变依旧保存 dll 函数名与函数序号的地址信息。而 IAT 则

根据导入表 INT(IAT 加载前和 INT 相同)的内容和导出表信息,修改为对应的

函数的地址信息。程序加载前 IAT 中是 IMAGE_THUNK_DATA 结构体数组,程序加

载后 IAT 中是每个函数的地址信息。

第105页

105

信息安全中心安全沙龙 逆向工程 Windows(一)

节区头

节区头中定义了各个节区的属性,将不同的数据按照属性分类存储在不同节

区,可以保证程序的安全性,若是将代码段和数据段放在一个节区中很容易引发

安全问题(例如缓冲区溢出)覆盖代码,所以设计者将具有相似属性的数据同意

保存并分配不同的权限。

第106页

106

信息安全中心安全沙龙 逆向工程 Windows(一)

二、加脱壳基本原理

普通压缩方式

 有损压缩

有损压缩允许压缩文件(数据)时损失一定信息,以此换取高压缩率。压缩多

媒体文件(jpg、mp3、mp4)时,大部分都使用这种有损压缩方式。从压缩特性来

看,有损压缩的数据解压缩后不能完全恢复原始数据。人类的肉眼与听觉几乎无

法察觉到这些多媒体文件在压缩中损失的数据。

mp3 的核心算法通过删除超越人类听觉范围(20~20000Hz )的波长区段来缩

减(不需要的)数据大小。

 无损压缩

无损压缩用来缩减文件(数据)的大小,压缩后的文件更易保管、移动。使用

经过压缩的文件之前,需要先对文件解压缩(此过程中应该保证数据完整性)。

最具代表性的无损压缩算法有 Run-Length、Lempel-Ziv、 Huffman 等。

ZIP、RAR 等是具有代表性的压缩文件格式,它们最根本的压缩理念也是 RunLength、Lempel-Ziv、 Huffman, 然后应用了一些各自特有的技术(压缩率、压

缩/解压时间)。

运行时压缩器是针对可执行(PE,Portable Executable)文件而言的,可执

行文件内部含有解压缩代码,文件在运行瞬间于内存中解压缩后执行。

运行时压缩文件也是 PE 文件,内部含有原 PE 文件与解码程序。在程序的 EP

代码中执行解码程序,同时在内存中解压缩后执行。

第107页

107

信息安全中心安全沙龙 逆向工程 Windows(一)

壳的执行过程

装载过程

加密壳

-基本概念PE 压缩器是指可执行文件的压缩器,准确一点应该称为“运行时压缩器”,

它是 PE 文件的专用压缩器。

-使用目的1.缩减 PE 文件的大小

文件尺寸小是其突出的优点之一,更便于网络传输与保存。

2.隐藏 PE 文件内部代码与资源

使用压缩器的另一个原因在于,它可以隐藏 PE 文件内的代码及资源(字符

第108页

108

信息安全中心安全沙龙 逆向工程 Windows(一)

串、AI 名称字符串)等。压缩后的数据以难以辨识的二进制文件保存,从文件本

身来看,这能有效隐藏内部代码与资源(当然解压缩后可以通过内存 Dump 窗口查

看)。

压缩壳

-基本概念PE 保护器是一类保护 PE 文件免受代码逆向分析的实用程序。它们不像普通

的压缩器一样仅对 PE 文件进行运行时压缩,而应用了多种防止代码逆向分析的

技术(反调试、反模拟、代码混乱、多态代码、垃圾代码、调试器监视等)。这类

保护器使压缩后的 PE 文件尺寸反而比源文件要大一些,调试起来非常难。

-使用目的1.防止破解

相信没人愿意自己编写的程序被非法破解并使用。此时使用保护器可有效保

护 PE 文件。

2.保护代码与资源

保护器不仅可以保护 PE 文件本身,还可在文件运行时保护进程内存,防止

打开 Dump 窗口。因此,使用保护器可以比较安全地保护程序自身的代码与资源。

第109页

109

信息安全中心安全沙龙 越权漏洞简介

越权漏洞简介

作者:范宝文

一、越权漏洞简述

越权漏洞指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户

后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。例如在

图 1.1 中购物系统中 A 用户可以可以查询到 B 用户的订单信息,是为水平越权;

普通用户获取管理员权限的功能,是为垂直越权。

图 1.1 越权示意图

常见越权漏洞的利用方式有基于用户身份 ID、基于对象 ID、基于会话、未

授权访问等。基于 ID 的方式通常替换 SESSION 或 URL 中的 ID,查看别人的信息

(如图 1.2 所示);基于会话的方式为盗用他人的 SESSION 或 COOKIE 信息,从而

顶替他人进行操作(如图 1.3 所示)。

第110页

110

信息安全中心安全沙龙 越权漏洞简介

图 1.2 参数替换示意图

图 1.3 SESSION 替换示意图

无论是什么字段,存在越权数据操作漏洞的 web 应用都没有对它们的归属账

户进行判断,没有确认发起请求的账户是否具有操作的缺陷就直接执行了相应的

命令。

第111页

111

信息安全中心安全沙龙 越权漏洞简介

二、漏洞检测

目前越权漏洞的检测更多依赖人工进行,自动化方法是未来的发展方向。

人工检测

对于水平越权漏洞,暴力遍历是一种很好的渗透测试方法。该方法利用 burp

suite 遍历一组 ID, 进行批量检测,如图 2.1 所示。

图 2.1 使用 burpsuite 进行遍历

另一种更为常见的方式是流量重放,流程图如图 2.2 所示。该方法首先登录

高权限账户 A 并发起一次数据操作的请求,使用抓包工具拦截该请求数据包并复

制 SESSION,此时登录低权限用户 B,替换 SESSION 后重放,低权限用户 B 实现

了越权操作。在金融领域中,可对 UKEY 进行校验后的新增操作进行抓包,替换

SESSION 后重放,可以实现无需 UKEY 校验的任意次操作。

第112页

112

信息安全中心安全沙龙 越权漏洞简介

图 2.2 流量重放步骤图

自动化检测

自动化检测方法相比手动,是在流量获取环节提升了自动化的程度。图 2.3

所示为自动化越权漏洞检测方法架构图。

方法分为系统认证、流量获取和越权判断三个步骤:

 系统认证即登录环节。

 流量获取是提升自动化程度的重要阶段,动态爬取方法使用无界面浏览器

爬虫对站点进行动态的爬取;在有流量网关的情况下,可以直接从流量网

关抓取流量,从流量网关中筛选出目标的请求即可;或通过在测试人员的

浏览器中安装插件并配置好测试系统相关信息后,在测试人员手动点击待

测功能,就可以通过插件或代理服务器等方式收集到待测流量。

 在流量对比阶段,对于垂直越权,只需要再对不同身份下的请求做个减法

便可以得到不属于该身份的请求。但是对于一些公共接口还是需要通过手

动判断或者通过关键字白名单的方式进行过滤。对于水平越权,一些简单

的站点可以根据表单中的禁止编辑属性以及返回信息等属性来得到判断

第113页

113

信息安全中心安全沙龙 越权漏洞简介

依据,更为复杂的仍需人工判断。一种批量对比的方法是统一修改认证信

息,通过对比重放前后的返回信息内容进行判断是否存在越权。

图 2.3 自动化方法架构图

使用爬虫方法的流程图如图 2.4 所示。可以看出在验证部分仍需要手动替换

信息、重放流量包。自动化检测是未来研究的热门方向。

图 2.4 使用爬虫的自动化方法流程图

三、防守策略

安全管控左移

针对业务类逻辑漏洞,我们可以充分发挥甲方的优势,采用威胁建模的方法,

在项目进入设计阶段前就建立起漏洞的预防链,如图 3.1 所示。例如在某个系统

中的“查询、展示”场景中,就要考虑接口对应的代码、接口对应的业务、接口

返回的数据、接口的数据来源等等中可能存在的安全风险。一次完整的威胁建模

可以将服务、应用,甚至依赖包等都纳入风险分析的范围内。

第114页

114

信息安全中心安全沙龙 越权漏洞简介

图 3.1 威胁建模方法的应用

开发者应注意的地方

开发人员在权限管理中遵守下列规则,可减少越权漏洞的发生:

1.使用最小权限原则对用户进行赋权;

2.使用合理(严格)的权限校验规则;

3.使用后台登录态作为条件进行权限判断。

参考文献

[1]净山, 徐国爱. 一种 Web 应用越权漏洞自动化检测实现[J]. 2014.

[2]赵川, 徐雁飞. 一种越权漏洞攻击方法实例研究[J]. 信息安全研究,

2019, 5(3):5.

第115页

115

信息安全中心安全沙龙 Django 漏洞简介

Django 漏洞简介

作者:朱俊涛

Django 是一个 Python 开发的开源 Web 应用框架。它最初是被开发来用于管

理新闻内容为主的网站(CMS 内容管理系统),于 2005 年 7 月在 BSD 许可证下发

布。框架以比利时的吉普赛爵士吉他手 Django Reinhardt 来命名。

·采用了 MTV 的框架模式;

·简化数据库驱动的网站的开发;

·注重组件的重用性和可插拔性;

图 1 Django logo

图 2 基本结构

一、ORM

ORM 实现面向对象编程语言里不同类型系统的数据之间的转换,起桥梁的作

用。不同的数据引擎在<project_name>/settings.py 的 DATABASES 配置。Django

也可以使用直接执行 SQL 进行查询。ORM 对接 MySQL 基本流程:

1.ORM 会将 Python 代码转成为 SQL 语句;

2.SQL 语句通过 pymysql 传送到数据库服务端;

3.在数据库中执行 SQL 语句并将结果返回。

第116页

116

信息安全中心安全沙龙 Django 漏洞简介

图 3 ORM 基本流程

Model 类

Model 类 一 般 在 <app_name>/model.py 中 定 义 , 涉 及 的 字 段 有

IntegerField/CharField/ImageField/DateField 。

图 4 定义了一个 Student 的 Model 类

以下 4 条操作,使用 orm 对数据库的增删查改:

student.objects.create(name='张三',age=18,pwd=\"123\")

student.objects.get(id=1).delete()

student.objects.get(name='张三').update(pwd='456')

student_obj = student.objects.get(id=1)

QuerySet 类

Django 中用于数据查询的 <model_name>.objects 是一个

django.db.models.manager.Manager 对象,而 Manager 类中的方法,全都来自

于 QuerySet 类。

使用 QuerySetAPI 进行数据筛选时,方法返回的仍是一个 QuerySet 对象,

依此可以对 API 进行链式调用,对数据进行多层筛选。 比如筛选完后还要根据

某个字段进行排序,则可以通过链式调用进行:

qs = student.objects.all()

qs = student.objects.filter(age=18).order_by(\"name\")

第117页

117

信息安全中心安全沙龙 Django 漏洞简介

二、CVE-2021-35042

Django 的 ORM 组 件 存 在 SQL 注入漏洞。该漏洞是由于对

QuerySet.order_by()中用户提供数据的过滤不足,攻击者可利用该漏洞在未授

权的情况下,构造恶意数据执行 SQL 注入攻击,最终造成服务器敏感信息泄露。

用 过 一 个 靶 场 来 复 现 该 漏 洞 , 图 5 显 示 了 靶 场 应 用 的 路 由 为

http://ip:host/vuln,通过 GET 方法获取 Collection 类的所有对象,并对获取

的 QuerySet 根据 id 排,图 6 展示了正常访问返回的结果。使用 PoC 访问数据以

后返回图 7 的 信 息 泄 露 , 返 回 了 后 端 MySQL 的 版 本 信 息 。 PoC 为

“ vuln/?order=vuln_collection.name);select updatexml(1,

concat(0x7e,(select @@version)),1)%23”,其中 vuln 是 app 名称 collection

是 model 的名称 name 是 model 中的参数。该漏洞来源于 ORM 对“.”操作时的

逻辑错误。

图 5 靶场应用的主要源代码(路由以及 Model)

图 6 应用的基本使用方式

第118页

118

信息安全中心安全沙龙 Django 漏洞简介

图 7 Poc 使用后的信息泄露

三、基础的安全实践

(1)在生产环境下关闭 DEBUG 模式:

DEBUG = False 同时配置 ALLOWED_HOSTS;DEBUG = False 的时候必须配置

ALLOWED_HOSTS,否则会抛出异常。

(2)SQL 注入攻击:

确保在原始 SQL 中进行正确转义处理;model.objects.raw()\\extra(),

QuerySet.explain()直接访问数据库的指针,注意特定版本得 ORM 函数漏洞。

(3)预防 Python 代码注入攻击:

小心使用 eval(), exec() 和 execfile()。在项目中允许将任意字符串或

文件传入到这些函数,就会有安全漏洞。不可以使用 pickle 模块对用户发送来

的数据进行反序列化。

第119页

119

信息安全中心安全沙龙 redis 未授权访问漏洞利用

redis 未授权访问漏洞利用

作者:茅雨绮

一、Redis 介绍

Redis 是一个开源的高性能 Key-Value 数据库,由于配置不当,部分 Redis

绑定在 0.0.0.0:6379,并且没有开启认证(这是 Redis 的默认配置),这样就会

导致任意用户在可以访问 Redis 所在网络的情况下未授权访问 Redis 并进行相

关恶意操作。

Redis 基本命令

·连接 redis:

redis-cli -h 192.168.163.130

·查看 redis 版本信息、一些具体信息、服务器版本信息等等:

192.168.163.130 :6379>info

·将变量 x 的值设为 test:

192.168.163.130 :6379>set x \"test\"

·获取设置的某个变量的值:

192.168.163.130 :6379>get x

·flushall 是把整个 redis 数据库删除(删除所有 key),一般情况下不要

192.168.163.130 :6379>flushall

·查看所有键:

192.168.163.130 :6379>KEYS *

·获取默认的 redis 目录、和 rdb 文件名:

192.168.163.130 :6379>CONFIG GET dir

192.168.163.130 :6379>CONFIG GET dbfilename

二、Redis 未授权访问漏洞利用

利用公私钥认证获取 root 权限

·当 redis 以 root 身份运行,可以给 root 账户写入 SSH 公钥文件,直接通

过 SSH 登录目标服务器

·攻击前提:靶机存在 redis 未授权访问,且开启 ssh 服务

第120页

120

信息安全中心安全沙龙 redis 未授权访问漏洞利用

·在攻击机中生成 ssh 公钥和私钥,密码设置为空:

进入/root/.ssh 目录,将生成的公钥写入 1.txt

将保存 ssh 的公钥 1.txt 写入 redis(使用 redis-cli -h ip 命令连接靶

机,将文件写入):

远程登录靶机的 redis 服务,更改路径为 ssh 公钥存放目录(一般为

/root/.ssh),设置上传公钥的备份文件名字为 authorized_keys 并保存退出

第121页

121

信息安全中心安全沙龙 redis 未授权访问漏洞利用

在攻击机上 ssh 免密登录

写入 webshell

前提:靶机 redis 存在未授权访问,且开了 web 服务器,并且知道路径(如

利用 phpinfo,或者错误爆路经),还需要具有文件读写增删改查权限

远程登录靶机的 redis 服务,更改路径为 web 服务器的目录,将 webshell

代码写入文件中

使用蚁剑进行连接

第122页

122

信息安全中心安全沙龙 redis 未授权访问漏洞利用

利用 crontab 反弹 shell

在攻击者服务器上监听一个端口(未被占用的任意端口):

远程登录靶机的 redis 服务,将反弹 shell 命令写入 crontab 中

(/var/spool/cron 或/var/spool/cron/crontabs)

成功反弹 shell

三、ssrf+Redis 未授权漏洞利用

SSRF(服务器端请求伪造) 是一种由攻击者构造,由服务端发起请求的一个

网络攻击,一般用来在外网探测或攻击内网服务。

Gopher 协议是 internet 的一个信息查找系统,俗称万能协议,可以通过

gopher 访问对应计算机上的其他资源,例如利用 gopher 实现:GET 请求,POST

请求,内网的 redis,mysql(以及各类关系型数据库)未授权访问等。通常 ssrf

漏洞会结合 gopher 协议来攻击内网服务,如 ssrf 使用 gopher 协议去控制未授

权的 redis 进行 webshell 的写入等。

ssrf + redis(webshell 上传)

在靶机的网站根目录下放置含有 ssrf 漏洞的 php 代码如下,且靶机开启了

redis 服务

第123页

123

信息安全中心安全沙龙 redis 未授权访问漏洞利用

在攻击机访问靶机的 ssrf.php:http:// 192.168.163.130/ ssrf.php? 、

url=127.0.0.1,确认含有 ssrf 漏洞。

在 攻 击 机 访 问 http:// 192.168.163.130/ ssrf.php?url=dict://

127.0.0.1:6379/info,进行 redis 的默认端口 6379 进行访问,可以发现靶机上

的 redis 服务

使用 gopherus 工具构造攻击利用 redis 写入 webshell 的 payload 如下:

将生成的 payload 进行二次 url 编码,传入具有 ssrf 漏洞的 url 参数中

第124页

124

信息安全中心安全沙龙 redis 未授权访问漏洞利用

使用蚁剑成功连接写入的 shell 文件

第125页

125

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

WAF-Bypass 之 SQL 注入绕过云锁

作者:谭钰耀

一、Bypass 云锁 MySQL 注入

(一) MySQL 特性

实验环境

靶场:DVWA(low 级别)

数据库:MySQL 5.5

第126页

126

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

Web 脚本:PHP 5.4.19

WAF:云锁-win_3.1.20.24

(二) 超大数据包绕过

绕过原理

实验步骤

第127页

127

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

第128页

128

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

第129页

129

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

第130页

130

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

第131页

131

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

(三) 畸形的 boundary 绕过

绕过原理

实验步骤

首先使用 BurpSuite 进行抓包,并发送到 Repeater

第132页

132

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

第133页

133

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

二、Bypass 云锁 SQLServer 注入

(一) SQLServer 特性

第134页

134

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

实验环境

第135页

135

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

(二)GET 方法传输 POST 数据绕过

绕过原理

实验步骤

首先使用 POST 方法发送数据,并使用 BurpSuite 抓取数据包

第136页

136

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

(三)多行注释符替代空格绕过【未成功】

绕过原理

实验步骤

第137页

137

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

第138页

138

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

第139页

139

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

第140页

140

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

(四)注释符与回车符结合绕过

绕过原理

实验步骤

第141页

141

信息安全中心安全沙龙 WAF-Bypass 之 SQL 注入绕过云锁

百万用户使用云展网进行专业电子书制作,只要您有文档,即可一键上传,自动生成链接和二维码(独立电子书),支持分享到微信和网站!
收藏
转发
下载
免费制作
其他案例
更多案例
免费制作
x
{{item.desc}}
下载
{{item.title}}
{{toast}}