您现在的位置:首页 >> 作品展示 >> 毕设优秀作品
  • 毕设优秀作品
  • 作品简介
  • 作品截图
  • 作品视频
Web应用协议安全分析及案例研究

2021届学生毕业综合实践优秀作品

作品名称:Web应用协议安全分析及案例研究

   者:胡耀拓、吴震斌

   业:计算机网络技术

   级:网络1802

指导教师:刘世华(副教授)

作品特点:

该作品对Web应用安全进行了实验研究,通过模拟平台复现了暴力破解、SQL注入、文件上传等常见的Web攻击过程,对其进行了协议抓包分析,用直观的方式展示了攻击的过程及其工作原理,进而提出了针对性的防范措施。作品可作为教学案例和培训素材使用。也能为安全从业人员提供工作参考。

作品说明:

伴随着现代互联网技术的高速展,产生了越来越多的业务,而其中许多的业务都依赖于Web技术,比如网上银行业务旅游在线购票业务、网上购物业务等,Web应用程序和人们的日常生活息息相关,很多恶意攻击者会想法设法对Web服务器进行攻击,从中盗取他人的个人账户信息来换取他们的利益。但是现在很多的运维人员、网络管理员或者说是普通的人们对于这些Web漏洞只能求助于安全产商,无法做到个人对Web漏洞进行排查。本文梳理了OWASP TOP10中个别主要的Web漏洞进行了分析与研究,首先对Web安全的概述进行了详细的分析,并对一些Web攻击中常见的一些漏洞进行研究和复现,其次,本文还将针对这些攻击的流量包进行分析,帮助网络管理员、运维人员深入理解安全原理、提升安全意识,加强Web应用的安全防范。

图片 1.png

1作品采用的实验环境与主要工具

作品采用eNSP构建模拟测试网络环境采用Wireshark抓包工具和Burpsuite工具进行抓包分析与攻击重放实验拓扑图如下所示,该拓扑图是由两个路由器以及两个Cloud组成,通过右边的Cloud3上对应的攻击机对Cloud4DVWA虚拟靶机中的脆弱Web网页发起攻击,并在AR3路由器的GE 0/0/1接口进行抓包分析。

图片 13.png

2案例分析实验拓扑图

作品对日常工作中最常见的三种Web安全攻击进行了案例分析通过模拟平台复现了暴力破解、SQL注入、文件上传等常见的Web攻击过程,从协议工作层面分析了攻击的原理,并提出了相应的防护措施建议,具有良好的教学利用价值和工作参考价值。

成果展示:

1.暴力破解案例分析

(1) 实验过程

图片 17.png

3暴力破解实验过程

3所示,在DVWA靶机的登录界面,首先输入任意的用户名和密码信息,根据错误提示和BurpSuite抓包分析其网页源代码的过滤规则,分析爆破的可能性然后通过设置字典,选择载入密码的字典来进行爆破。理论上只要爆破字典足够强大,一般都可爆破,本实验目的是给培训人员更加清晰的观看数据包,所以选择几个最常见的弱口令进行爆破。如图4可见,实验爆破成功,可以看到密码爆破出来为password

图片 19.png

4爆破成功界面

在这个过程中,我们可以通过wireshark进行抓包来进一步分析其工作原理。

(2) 分析过程

暴力破解分为POSTGET传参的形式,在日志中我们主要关注的是与POSTGET有关的流量,根据流量前后的响应码来确定攻击者是否已经通过暴力破解将我们的服务器或者网页后台的账号密码破解出来,通过下面的举例更加客观的表现在流量包中该如何去识别暴力破解的行为。

5所示,通过wireshark过滤GET请求包,查看流量包的时候可以发现郑国过程中有频繁GET请求发生

图片 22.png

图片 24.png

5过滤GET请求包

通过对过滤后的数据包进行分析发现同一个IP地址向服务器在短时间发了大量的请求并且在HTML协议层发现请求的User和Password网站存在暴力破解的显著特征

(3) 建议防护措施

针对如上所述的暴力破解过程及原理分析,建议可采用如下防护措施进行有效防范:

1、如果用户登录次数超过设置的阈值,则锁定帐号(有恶意登录锁定帐号的风险)

2、如果某个 IP登录次数超过设置的阈值,则锁定IP

3、增加人机验证机制

4、验证码必须在服务器端进行校验,客户端的一切校验都是不安全的。

2. 文件上传案例分析

(1) 实验过程

图片 26.png

6文件上传攻击的实验流程

文件上传功能在Web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。 6所示,在靶机上点击上传文件按钮,然后采用Burpsuite修改文件后缀名,成功将PHP的一句话木马上传到目标网站上,然后可以采用蚁剑工具来验证是否上传成功。通过访问相应的路径,并使用POST传参即可实现运行我们想要的木马程序,达到控制目标机器的目的。

如果目标机器代码对上传文件类型有过滤,我们可以通过工具更改想要的参数实现上传。如图1抓包更改Content-Type的值,由于他只可以上传的图片只能是JPGJPEGPNG格式的!所以我们将Content-Type的值改为以上三个格式对应的值,这里我们选择Image/JPEG格式即可实现文件上传。 8所示,上传成功通过相应的地址访问,即可运行一句话木马

图片 27.png

7BP抓包更改Content-Type的值

图片 28.png

8访问相应路径并使用POST传参验证执行上传代码

(2) 分析过程

根据众多资料统计,针对文件上传的漏洞基本都是上传一句话木马,所以我们在流量包中要重点观察的就是POST内容部分是否包含EvalBase64字符,可以查找关键字:ShellHackScanPasword,其次我们要寻找攻击方在一句话木马上传之后是否有执行什么命令,并查看是否有蚁剑或者冰蝎等远程连接软件的连接特征。

9所示,通过wireshark过滤POST请求包,可以看到攻击机往靶机上传文件的相关流量特征

图片 40.png

9过滤POST请求包

在上述流量中右击第一条流量然后选择追踪源 TCP即可查看相应TCP流的流量特征, 10所示。

图片 41.png

10追踪TCP

通过确定校验类型,我们发现攻击者上传了一个PHP的一句话木马,但是从第一条流量包中显示他的MIME校验是Image/JPEG 通过这个我们可以判断攻击者使用了MIME的校验绕过。

图片 42.png

11确定校验类型

通过查看执行代码,我们发现攻击者执行了一个代码x=phpinfo()指令,用于显示靶机上的PHP环境特征,此处也可以是其他一句话木马的执行代码。

图片 43.png

12查看执行代码

这个时候我们可以确定这是一个带有恶意行为的攻击,由此我们可以怀疑攻击者是否有使用蚁剑或者冰蝎这一类Webshell连接工具。果不其然,在后面的包中我们发现了蚁剑的流量特征。

图片 44.png

13蚁剑流量特征

(3) 建议防护措施

针对常见的文件上传漏洞攻击,建议采用如下防护措施:

1、对上传文件类型进行验证,除在前端验证外在后端依然要做验证,后端可以进行扩展名检测,重命名文件,MIME类型检测以及限制上传文件的大小等限制来防御,或是将上传的文件其他文件存储服务器中。

2、严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关上传文件目录的执行权限,防止木马执行。

3、对上传文件格式进行严格校验,防止上传恶意脚本文件;

4、严格限制上传的文件路径。

5、文件扩展名服务端白名单校验。

6、文件内容服务端校验。

7、上传文件重命名。

8、隐藏上传文件路径。

3.SQL注入案例分析

(1) 实验过程

图片 45.png

14SQL注入攻击分析流程

首先,可以在靶机相应输入框中输入构建的SQL语句来判断是否存在输入点,属于哪种注入类型;然后,可以通过在靶机相应数据库查询的输入框中输入1' union select 1,database()#查询出当前的数据库名称。案例中获得数据库名为dvwa接着输入1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='dvwa'#获得表名为 guestbookusers输入1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#获取数据库中的列。输入1' union select group_concat(user),group_concat(password) from users#最终获取user列和password列的内容。

(2) 分析过程

根据上方的的原理我们可以得知SQL注入在流量中基本上明文传输的,所以我们在一般流量中有几个明确的目的要查找流量中POST请求的包其次是URL、请求头部、POST Body部分是否包含unionandtablewheresqlmapupdate等关键词(需要注意的是,攻击者可能会使用一些编码手段进行隐藏)。

15过滤POST请求包所示,首先我们需要使用语句挑选出流量包中是POST传参的流量。

图片 46.png

15过滤POST请求包

接着, 16所示,分析HTTP协议,发现了许多的POST传参,这时候我们可以查看下他们的HTTP的协议包。

图片 48.png

16分析HTTP协议

Host: 192.168.158.15 它表示服务器域名和端口号,默认端口可省略。

Connection: keep-alive 它是用来告知请求方这个请求响应完成后不要关闭,下一次咱们还用这个请求继续交流。

Content-Length: 21 它是用于描述HTTP消息实体的传输长度。

ache-Control: max-age=0 他表示请求/回复中的,是否使用缓存机制max-age=0则为使用缓存之前进行验证。

Upgrade-Insecure-Requests: 1 请求头向服务器发送一个信号,表示客户对加密和认证响应的偏好。

Origin: http://192.168.158.15他主要是用来标识出最初请求是从哪里发起的Origin他是为了防止CSRF的攻击从而在POST请求的时候加上的一个字段,这个字段主要是用来标识出最初请求是从哪里发起的。如果浏览器不能确定源在哪里,那么在发送的请求里面Origin字段的值就为空。与Referer相比较Origin更具人性化,因为针对隐私方面更具安全性,首先Origin字段里只包含是谁发起的请求,并没有其他信息 (通常情况下是方案,主机和活动文档URL的端口)。跟Referer不一样的是,Origin字段并没有包含涉及到用户隐私的URL路径和请求内容,其次Origin字段只存在于POST请求,而Referer则存在于所有类型的请求。像我们平时随便点击一个超链接(比如从搜索列表里或者企业intranet),并不会发送Origin字段,这样可以防止敏感信息的以外泄露。

Content-Type: application/x-www-form-urlencoded 他表示窗体数据被编码为名称/值对。这是标准的编码格式。这个字段有两种表现形式,分别为application/x-www-form-urlencodedmultipart/form-data,默认为application/x-www-form-urlencoded

User-Agent 他会告诉网站服务器,访问者是通过什么工具来请求的,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答。

Accept 代表发送端(客户端)希望接受的数据类型。

Referer 当浏览器向Web服务器发送请求的时候,请求头信息一般需要包含Referer。该Referer会告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。

Accept-Encoding: gzip, deflate 告诉服务器,浏览器支持什么格式的压缩。

Accept-Language: zh-CN,zh;q=0.9 浏览器支持的语言分别是简体中文和中文,优先支持简体中文。

Cookie 是保存在用户浏览器端的,并在发出HTTP请求时会默认携带的一段文本片段。它可以用来做用户认证,服务器校验等通过文本数据可以处理的问题。

17查看使用的注入命令,我们可以解读相应字段由于我们前面也说了 SQLHTTP协议中是明文传输的,所以它传输中的值我们是可以很清晰看到的,这个截图里面边说明了攻击者他采用了什么语句对网页发起来SQL注入。

图片 50.png

17查看使用的注入命令

(3) 建议防护措施

针对SQL注入的上述原理和特征,有效的防护措施建议如下:

1、代码层最佳防御sql漏洞方案:使用预编译sql语句查询和绑定变量使用预编译语句,使用PDO需要注意不要将变量直接拼接到PDO语句中。所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。

2、对进入数据库的特殊字符(’”<>&*;等)进行转义处理,或编码转换。

3、确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。

4、数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。

5、网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。

6、严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。

7、避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。

8、过滤危险字符,例如:采用正则表达式匹配unionsleepandselectload_file等关键字,如果匹配到则终止运行。

指导教师点评:

该作品通过eNSP模拟平台和虚拟机技术,基于DVWA搭建了Web应用虚拟靶机系统,复现了暴力破解、SQL注入、文件上传等常见的Web攻击过程,并采用Burpsuite和Wireshark等工具对其进行了协议抓包分析,用直观的方式展示了攻击的过程及其工作原理,展示了基于协议抓包分析的追踪技术,并提出了针对性的防范措施建议。作品案例用于专业教学和培训素材使用也可作为安全从业人员的应急响应分析参考,具有较好的应用价值

作品案例分析还不够通俗,科普性有待提高,案例中使用的专业术语较多,应用的工具也比较专业,要求应用者需要一定的安全基础才能理解。

友情链接:选书系统-高教社    版权所有:温州职业技术学院人工智能学院    地址:温州茶山高教园区(温州大学城)  技术支持:瑞星科技      [旧版入口]