中国红客联盟 首页 资讯 国内安全 查看内容

常见Web攻击手段及安全防范

2025-3-3 09:53| 发布者: Honkers| 查看: 96| 评论: 0

摘要: 系统简 介 随着互联网技术的不断发展,社交网络、微博等一系列互联网新产品的出现,基于Web环境的互联网应用越来越普遍,企业信息化过程中的各种应用都架设在Web平台上,Web服务应用技术的

系统简 介

随着互联网技术的不断发展,社交网络、微博等一系列互联网新产品的出现,基于Web环境的互联网应用越来越普遍,企业信息化过程中的各种应用都架设在Web平台上,Web服务应用技术的快速发展也让越来越多的黑客将注意力转向Web服务,SQL注射攻击、XSS(跨站脚本攻击)、文件上传欺骗攻击(即利用一句话木马获取Webshell)等攻击手段也变得更加多样化,更难以判断和防御。了解Web常见的攻击手段,是为了更好地拿出应对的防范措施。一般有充足资金的企业会选择采购相关的防火墙或相关的网络安全设备,但对于资金较为拮据的小微企业来说,安防设备购置价格高昂,而且小微企业的工程师可能能力有限,还需要聘请相关安全厂商的售后工程师对安防软件或设备进行维护和升级,费时费力费金钱。另外虽然这样做确实能保障部分Web服务的安全,但难免会有漏网之鱼,由于Web应用安全技术和黑客技术也是不断发展的,有一定技术的黑客是可以绕过WAF入侵防御系统的规则来入侵Web网站。基于上述问题,本文研究的主要目标就是找出常见的Web服务漏洞,介绍黑客惯用的Web服务攻击手法,并提供一些常用的解决方案,加以防护,以此来提高Web网站服务的安全性。
关键词:SQL注入,XSS跨站脚本攻击,文件上传漏洞,防范措施

1 绪 论

1.1 研究背景
随着社交网络、微博等一系列新型互联网产品的诞生,基于Web环境的Internet应用与服务越来越遍及,企业信息化过程中的各种应用都架设在Web平台上,Web服务技术的迅速发展也让更多的黑客们开始关注Web服务,SQL注入、XSS(跨站脚本攻击)、文件上传一句话木马获取Webshell等攻击手段也变得更加多样化,更难以判断和防御,Web攻击的思路由单纯的服务器端转向客户端,转向浏览器和用户。例如2015年海康威视事件——“监控设备默认采用弱口令设置,被黑客植入代码,实现远程监控,堪称中国版‘棱镜门’”;2018年3月,美国《纽约时报》报道称,一家名为“剑桥分析”(Cambridge Analytica)的第三方公司泄露了5000多万名Facebook用户的数据,并对Facebook用户施加政治影响;2018年11月,英国广播公司(BBC)报道,全球最大的连锁酒店——万豪国际酒店集团(Marriott International hotel Group)的详细客户个人信息被泄露,泄露人数高达5亿。这些都是近期来比较具有代表性的信息泄露事件。随着全球IT行业的快速发展,网络安全的重要性也随之变高。因此,相应的Web安全行业,以及常见黑客的攻击手段等相关技术的研究,都需要提起我们足够的关注。
1.2 国内外研究背景与现状
1.2.1 国外背景与现状
全球知名安全组织OWASP(Open Web App;ication Security Project开放式Web应用安全项目)在2017年更新了“十大安全漏洞列表”(OWASP Top 10),该组织的漏洞列表报告,不仅为全球各个企业提高Web服务安全意识提供必要的帮助,而且也为企业开发相应的Web安全防御应用提供了额外的指导。
以下为2013年版与2017年版的排名对比:

在这里插入图片描述

图1-1 2013和2017年十大漏洞排名对比
从表里我们不难看出,处于排名第一位的Web安全风险问题,还是SQL注入。而XSS跨站脚本攻击,虽然由2013年的第三名掉到第七名,但依然是在Web服务里需要额外关注的攻击方式。
1.2.2 国内背景与现状
2019年上半年,国家互联网应急中心(CNCERT)检测到我国境内约2.6万个网站被境内外约1.4万个IP地址植入了后门。其中,约有1.3万个(占总IP地址的91.2%)海外IP地址对境内约2.3万个网站植入后门,其中美国IP地址最多,其次为香港和新加坡的IP地址,如图1-2所示。在控制我国境内网站总数方面,位于香港的IP地址控制我国境内网站数量最多,有6,984个,其次是美国和菲律宾的IP地址,分别有4,816个和2,509个网站。

在这里插入图片描述

图1-2 2019年上半年向我国境内网站植入后门IP地址所属国家或地区TOP10排行榜
1.3 研究内容与意义
1.3.1 研究内容
论文主要的研究内容如下几点:
(1)SQL注入攻击,是一种黑客常用的数据库攻击手法,原理在于当攻击成功时候,会执行用户输入的数据视为代码并进行输出,可导致瘫痪Web服务,从而间接获取搭建网站的Web服务的软件版本和数据库版本,或者能够获取敏感的数据库内容信息。
(2)XSS跨站脚本攻击,原理是通过HTML注入,篡改网页内容,成功插入恶意脚本,当用户访问网页时,从而控制用户浏览器。当恶意代码执行成功后,黑客即可获取用户帐号Cookie值、私密网页内容与会话等各种信息。
(3)文件上传漏洞,是指黑客上传了带有恶意执行代码的可执行脚本文件,并通过执行该脚本文件拿到Webshell网站后门。文件上传功能本来是一个正常的Web业务需求,但如果服务器不做严格的处理逻辑,就很容易被黑客所利用。
1.3.2 研究意义
由于现在的Web服务技术呈现多样化发展,使得黑客对Web方向的攻击手法也呈现多样化发展,而且都能对Web安全造成极大的破坏力,因此在本课题上会选取部分主流的攻击技术与手段来进行研究,并且实现的目的也各有不同,此项课题研究对Web安全应用服务来说具有以下几点帮助:
1.了解黑客常用的Web攻击技术手段
了解时下黑客最爱且频繁使用的Web攻击手段,并通过代码审计,检查源代码并发现代码中的问题,制定合理的安全规律规则,提升整个Web服务的安全程度。
2.保证Web服务的安全性
在做Web安全防护时,重点修复已知的和具有代表性的漏洞,建立有效的过滤规则,要求系统只对主体授予必要的权限,以保证Web服务的安全性。
3.保障Web服务运行的稳定性
针对Web服务的攻击手段的多样化,不断有新的漏洞出现,需要与时俱进,更新有效的过滤规则,同时兼顾Web服务的适用性,做到运行顺畅与安全两不误。

2 常见Web攻击手法理论介绍

2.1 SQL注入攻击
SQL注入攻击是针对Web应用程序的比较主流的一种攻击技术,是目前漏洞攻击中入门成本最低,威胁性与破坏性最强悍的,在OWASP组织的2013与2017年公布的Top10排行榜中都排在第一位。SQL注入的基本原理是将攻击者精心构造的一段SQL查询语句,输入到Web应用程序提供的用户输入界面中,绕过有安全缺陷的输入验证机制,通过服务器对相关SQL语句当作代码来执行,从而实现非预期的攻击操作行为。
比如,一个网站的URL如下:
http://192.168.213.132/zzcms/About.php?id=1
执行的SQL语句为:
SELECT * FROM zzcms_sgbabout WHERE id = 1
如果攻击者构造如下的条件语句:
http://192.168.213.132/zzcms/About.php?id=1 and 1=2
实际执行的SQL语句就会变成:
SELECT * FROM zzcms_sgbabout WHERE id = 1 and 1=2
因为“and 1=2”永远为假命题,所以无法建立此SQL语句中的“and”条件。对于Web应用来说,查询结果将不会回显,攻击者看到的页面结果将为空或是一个报错页面。
为进一步判断URL是否是注入点,攻击者还需要进行再次验证。攻击者继续构造如下请求:
http://192.168.213.132/zzcms/About.php?id=1 and 1=1
当攻击者构造永真条件“and 1=1”时,如果页面回显正常,则表明SQL语句的“and”执行成功,则可以判断“id”参数是存在SQL注入漏洞。
当攻击者成功找出网站存在SQL注入点后,即可继续对网站后台数据库进行进一步的攻击,可进行猜测字段数量、联合查询、获取数据库名、获取数据库版本、查找数据表名和字段名等,最终获取网站后台管理帐号和密码。
2.2 XSS跨站脚本攻击
XSS跨站脚本攻击,也是一种经常出现在Web应用服务中的黑客攻击技术,在OWASP组织的Top 10排行榜中,在2013年版高居第三位,到2017年版时,虽降到第七位,但所造成的危害性仍不可小觑。攻击者恶意html代码插入到Web应用程序页面中,当用户浏览该网页时,会执行网页中被嵌入的html代码,从而达到恶意攻击的特殊目的。比如盗取用户Cookie值、破坏页面结构、网站挂马等。攻击流程如图2-1所示:

在这里插入图片描述

图2-1 XSS攻击流程图
XSS攻击主要分为三种类型:
1.反射型XSS
反射型XSS是XSS攻击中最为简单、最为常见的手段,基本原理就是把用户输入的数据“反射”给浏览器。黑客在链接上嵌入恶意代码,并引诱用户点击该链接,从而执行嵌入的恶意代码,才算攻击成功。因恶意代码不会“储存”在服务端,因而反射型XSS也叫“非持久型XSS”。
例如:
某网站的检索:http://IP/detail.php?name=xss
嵌入的恶意代码为:
将此URL发送给受害用户,以诱导性的文字引诱其点击,从而执行攻击代码。
2.存储型XSS
存储型XSS是XSS攻击手段中危害性最大的一种。存储型XSS会把用户输入的数据永久性地“储存”在Web服务器上,并在一些“正常”页面中持续性弹出窗口,从而影响所有访问这些页面的用户。反射型XSS由于其强大的稳定性,因此也被称为“持久型XSS”。
下面是一个较为常见的存储型XSS场景示范。
来到某测试网站的留言板页面,在留言窗口输入恶意代码

,如图2-2所示。

在这里插入图片描述

图2-2 在留言板页面写入恶意代码
然后来到管理后台页面,点击留言管理,会弹出恶意窗口,如图2-3所示。

在这里插入图片描述

图2-3 遭遇恶意弹窗
在浏览器里按F12,点击network选项卡,点击.php后缀文件名,即可查看网站后台代码,可以发现恶意代码已被成功嵌入,如图2-4所示:

在这里插入图片描述

图2-4 查看后台代码
3.DOM Based XSS
DOM Based XSS其实是基于文档对象模型(Document Object Model)的一种漏洞攻击手段,通过修改页面的DOM节点来引发XSS攻击,攻击效果类似于反射XSS。但之所以要单独分出来,是因为基于DOM的XSS发生在客户端处理数据阶段,并不需要将URL发送给Web服务器。当受害用户访问攻击者精心伪装含有恶意代码的URL页面时,由Web服务器将这段恶意脚本返回给受害用户,并在其浏览器中执行。因该XSS形成原因较为特别,就把它单独作为一个分类。
2.3 文件上传漏洞攻击
如何确认Web应用程序是否存在文件Upload功能漏洞?比如一个用PHP语言编写的BBS论坛网站,具有可上传用户图片的功能,用户可以上最喜欢的图片文件作为他们的个性头像。但在上传图片文件的数据传输过程中,并没有对上传的文件格式进行验证,导致实际可上传的文件不仅仅是.png、.jpg格式的图片文件,那么这可确认网站是存在文件上传漏洞。
文件上传漏洞利用的基本攻击流程如图2-5所示:

在这里插入图片描述

图2-5 文件上传漏洞攻击的基本流程图
当攻击者在利用上传漏洞时,通常会与Web容器的解析漏洞相互配合,因此我们还应该要了解一下各种Web容器的解析漏洞,以便更深入地了解文件上传漏洞攻击的基本原理。常见的Web容器包括IIS、Apache、Tomcat、Nginx等,以Apache为例。
在Apache 1.x 、2.x中,文件名是从右往左解析的,当遇到未知的扩展名时,它将继续往左一个扩展名解析,一直识别到有认识的扩展名为止。比如:XX.php.rar.aa。
Apache首先会解析.aa扩展名,如果不能识别,将往左一个.rar扩展名进行解析,直到扩展名被识别为止,然后解析该扩展名。
Apache认识哪些扩展名?其实这些扩展名文件类型是定义在Apache的mime.types文件当中,可在Apache安装目录下的“/conf/mime.types”文件中查看。

3 搭建实验平台

由于本论文内容涉及黑客攻击技术,在未经企业允许授权下实行渗透攻击,会违反国家网络安全法。因此出于合理合法的考虑,论文中所用的攻击机、攻击软件和靶机环境,全都在自己搭建的内网实验环境中进行,不会对真实的网络环境造成任何负面影响。
3.1 实验用软件介绍
以下表单为实验软件简要说明:
表3-1 实验软件
软件名称 说明
VMware Workstaions 15 Pro 虚拟机软件
Mozilla Firefox 52.02 附带渗透插件的浏览器
AppScan Web服务漏洞扫描工具
Burp Suite pro v1.5.18 Web攻击集成平台
Sqlmap SQL注入测试工具
phpStudy 2018 PHP网站调试环境的程序集成包
蚁剑 WebShell控制端软件
网站安全狗3.5版 WAF网站防护软件
以下对部分软件进行简要介绍:
1、Mozilla Firefox 52.02
Mozilla Firefox火狐浏览器是一款免费的开源网页浏览器,用户可以根据自己的需要,安装附加组件来增加Firefox的功能。笔者所用的Firefox浏览器安装有Hackbar、Flagfox、Wappalyzer等渗透测试所用的插件,用作演示黑客的部分攻击手法。
2、Burp Suite pro v1.5.18
Burp Suite是一个用于攻击Web服务的集成平台,包含了多种不同功能的攻击模块。既可以用来自定义攻击规则,也能够用来手动攻击,也可以用来分析数据,还可以用网络爬虫自动搜寻内容。在本论文课题的研究中,用作渗透Web服务攻击验证漏洞的工具。
3、AppScan
AppScan是IBM旗下的一款Web安全扫描工具。它具备运用爬虫技术进行网站安全测试的功能,可以依据网站入口自动爬取网页链接URL进行安全扫描,该工具提供了扫描、报告和修复建议等功能。在本论文课题的研究中,用作检测与验证网站漏洞。
4、Sqlmap
Sqlmap是一款免费的开源工具,用于检测和利用SQL注入漏洞,他可通过网站注入点,采取多种方式攻击远程数据库,如判断数据库版本,提取数据库名,表名,列名等敏感数据。在本论文课题的研究中,用作研究SQL注入漏洞攻击的工具。
5、phpStudy 2018
phpStudy是一款用于PHP调试环境的程序集成包。该程序包集成了多个版本的Apache容器+PHP+MySQL数据库+phpMyadmin+ZendOptimizer(PHP优化引擎),捆绑式一次性安装,并把网站文件放入WWW文件夹,无需额外配置即可使用。在本论文课题的研究中,用作搭建靶机测试平台。
6、蚁剑
蚁剑是一款开源的跨平台的网站管理工具,使用功能上跟著名的中国菜刀基本没什么差别,同样只要将一句话木马成功上传到在目标网站上,获取到上传文件的完整路径,整个网站目录就可以用装在本地的蚁剑来获取和控制。差别在于蚁剑支持Windows、Linux和MAC系统,另外还加入了插件市场功能,使用者能根据需要下载使用免费的插件模块。在本论文课题的研究中,用作渗透Web服务攻击验证漏洞的工具。
7、网站安全狗3.5版
网站安全狗是一款集网站内容安全防护、网站资源保护和网站流量保护功能于一体的WAF网站服务应用防火墙软件。功能包括木马扫描、SQL注入防御、防盗链、实时网络流量监控、IP黑白名单管理、网页内容防篡改等功能模块,为用户提供实时的网站服务安全保护。在本论文课题的研究中,用作研究如何绕过WAF防火墙攻击策略的实验工具。
3.2 系统环境与配置介绍
Windows 10作为VMware的预装系统,是所有实验环境的主体。而虚拟机软件里,则运载一台靶机和两台攻击机作为虚拟实验环境,具体配置参考表3-2:
表3-2 运载系统
运载系统 系统类型
Windows Server 2008 R2X64 服务器(靶机)
Kali Linux 2018.2 攻击机
Windows 7(32位) 攻击机
Windows 10 专业版 实验客户端
因Kali Linux系统的运行要求较高,含有大量的渗透测试用工具,因此配置要求要比2008和Win7系统要高。所有参与实验的系统的配置参数说明,参考表3-3:
表3-3 系统配置
系统 内存 CPU 硬盘
Windows Server 2008 R2X64 2G 单核 40G
Kali Linux 2018.2 1G 双核 80G
Windows 7(32位) 2G 单核 60G
Windows 10 专业版 16G 4核 128G+1000G
操作系统的预装软件做简要的说明,参考表3-4。其中Win 7攻击机带渗透测试用工具,靶机2008系统带搭建实验网站用的软件与工具,并带有一个WAF软件用于测试攻击与防护。
表3-4 各系统预装软件
操作系统 预装软件
Windows Server 2008 R2X64 phpStudy 2018,网站安全狗3.5
Kali Linux 2018.2 Sqlmap
Windows 7(32位) AppScan,
Mozilla Firefox 52.02(带渗透测试插件),
Burp Suite pro v1.5.18,
蚁剑
Windows 10 专业版 VMware Workstaions 15 Pro

4 常见Web攻击实验模拟

4.1 SQL注入攻击模拟测试
4.1.1 无防御注入攻击
在攻击机Win7上,用AppScan安全扫描工具扫描在2008系统搭建好,没有修补任何安全性漏洞的网站,网站URL为http://192.168.213.132/zzcms,扫描完成后,会显示所有该网站漏洞问题的报告,可以查看该漏洞的问题信息、咨询、修订建议等内容,如图4-1所示:

在这里插入图片描述

图4-1 扫描的安全问题报告
从扫描结果可看出,工具可以识别网站的服务器和编程语言的具体版本,可以罗列所有网站出现的安全性问题,给出问题信息、修订建议等建议。同时也可以看出该网站的一个URL是存在可被黑客利用的SQL注入漏洞。
在攻击机Win7上,用带渗透插件的浏览器打开在2008系统搭建好的网站, 来到“关于我们”选项卡,观察到URL后缀有?后面带id的参数,怀疑此处会存在SQL注入漏洞,加上此网页带有文字内容,因此比较适合做手工SQL注入判断。如图4-2所示:

在这里插入图片描述

图4-2 寻找URL注入点
在Hackbar插件上,读取URL,然后在参数后面加上单引号’,成功触发错误,返回数据库错误信息,且关于我们的内容消失,如图4-3所示:

在这里插入图片描述

图4-3 参数后加单引号’
接着在URL参数后面加上永真条件and 1=1,网站内容回显正常,如图4-4所示:

在这里插入图片描述

图4-4 URL加上and 1=1
在URL参数后面加上永假条件and 1=2,网站回显空白,如图4-5所示:

在这里插入图片描述

图4-5 URL加上and 1=2
以上演示的是手工判断数字型SQL注入,判断成功后即可继续获取数据库名、表名、字段名等相关数据库信息,对网站进行进一步的渗透攻击。
除上述两种方法外,还有第三种方法可以判断URL:http://192.168.213.132/zzcms/About.php?id=1是否存在SQL注入漏洞的,就是采用SQLmap工具进行检测与渗透。Kali系统是默认安装了SQLmap,而Windows系统是要下载解压SQLmap的压缩包,并需要有python2.7.x环境的支持下才能使用。SQLmap判断URL是否为注入点非常简单,只需在命令终端上输入sqlmap -u “目标URL”即可。
在实际检测过程中,SQLmap会不停地询问是否要进一步尝试渗透方面的问题,下一步的操作需要手动输入Y/N,当然也可以使用参数“–batch”命令来自动确定回复。
如果检测到URL是存在SQL注入漏洞,会把存在注入点的参数、类型、数据库版本、Web服务器版本等重要信息显示出来,如图4-6所示:

在这里插入图片描述

图4-6 成功判断注入点
跟手工注入一样,当判断SQL注入点成功后,可继续获取数据库和Web服务器的相关敏感数据与信息,只不过利用SQLmap自动化工具更为便利,上手门槛不高。关于使用SQLmap如何做进一步的攻击渗透,本文不再累赘,有兴趣者可去搜索网上教程进行相关的学习研究。
4.1.2 绕过WAF安全狗3.5版注入
现在模拟一般网站管理员最常见的防御手段,安装一个WAF网站防火墙软件,这是一种最省钱最省力的做法。在Server 2008系统里安装安全狗V3.5,同时phpstudy2018必须要设置运行模式为“系统服务”,要不然安全狗软件里的Web安全插件就无法安装和启用,就会影响Web攻击拦截效果。
来到Win7系统,打开之前之前建立的ZZCMS网站,再次对“关于我们”选项页面进行SQL注入攻击,在URL参数id=1后面加上’单引号,网站会报错。但在URL参数后面加上永假条件and 1=2,发现攻击行为被网站防火墙WAF所拦截,如图4-7所示。说明安全狗WAF防护功能已经奏效,但是并不能消除此网站是存在SQL注入点的嫌疑。

在这里插入图片描述

图4-7 加上永假条件,被网站WAF拦截
黑客看到有WAF拦截后会放弃继续攻击吗,很显然是不会的,他们还会继续想方设法如何绕过WAF过滤规则,会不断尝试让WAF拦截来确定哪些危险字符是已经被过滤,从而寻找突破口。例如回到ZZCMS网站,在URL参数后面加上永真条件and 1=1,WAF就会拦截,如图4-8所示。但同样在URL参数后面改加上异或运算符xor 1=1,网站会返回正常的页面显示,如图4-9所示。这就是其中一种规避WAF拦截的办法,通过尝试变换其他运算符,来绕过WAF拦截规则。

在这里插入图片描述

图4-8 永真条件and 1=1被WAF拦截

5 常见Web安全防御

5.1 SQL注入攻击防御
1、检查数据类型
像PHP、ASP等弱类型语言,并没有强制要求处理数据类型,这类语言会根参数自动推导出数据类型,因此有必要在程序中严格判断输入数据的类型。例如使用is_numeric()、ctype_digit()等函数判断数据类型。另外做好其他的数据格式或类型检查也是必要的。例如用户输入邮箱时,必须严格按照邮箱的格式;输入电话号码时,必须严格按照电话号码长度格式,等等。
2、过滤危险字符
可以在PHP4.0.3以上版本采用mysql_real_escape_string函数对字符串进行过滤,但该函数仅仅会转义“’”、“””、“\r”、“\n”、“NULL”、“Control-Z”这几个字符,攻击者依然有其他办法可以绕过过滤规则进行SQL注入攻击,因此这种基于黑名单的方法,依然无法从根本上防御攻击。
3、最小权限原则
严格限制网站对数据库的访问权限,避免Web应用直接使用root、dbowner等高权限用户连接数据库。如果有多个不同的网站应用共享一个数据库,则应该为每个网站应用分配不同的账户。Web应用服务运用的数据库账户,不应该允许创建自定义函数、操作本地文件等权限。
4、安装与配置WAF(Web应用防护软件)
现在市面上的WAF形态主要分为硬件WAF、Web防护软件和云WAF,企业可以根据自身条件需要选择相应的WAF类型。但是防御Web攻击是不能仅仅依靠WAF防御,因为有经验的黑客攻击者依然有多种办法去尝试绕过安全策略进行注入攻击,因此还需要配合其他的防御技术手段,才能更好地保护Web服务,免受信息泄露风险。
5.2 XSS跨站脚本攻击防御
1、HttpOnly
HttpOnly最早是在微软的IE 6浏览器中采用的技术,HttpOnly最常见的应用场景,是防止网站被XSS攻击后,利用javascript来获取敏感cookie值。如果服务器设置多个Cookie,可以在关键的身份标识字段采用HttpOnly来隐藏敏感信息。然而,XSS攻击不但可以劫持Cookie值,还可以窃取用户信息、模拟用户的正常操作、网站钓鱼等攻击手段,因此还需要借助其他防御手段来解决XSS漏洞攻击。
2、输入检查
输入检查分为黑名单和白名单过滤。黑名单过滤方式,主要采用XSS Filter过滤器技术,检查用户输入的数据是否包含一些特殊字符,例如“<”、“>”、“’”、“、”等。如果发现存在危险的特殊字符,这些字符将会被过滤或转码,更智能的“黑名单”过滤,也可能会匹配XSS攻击特征,例如找出用户的输入数据中是否含有敏感字符,如“

转为&gt;
&转为&amp;
”(双引号)转为&quot;
’(单引号)转为&#39。
当字符串经过这类函数处理后,敏感字符将会被一一转义。
5.3 文件上传漏洞修补
1、判断文件类型
在判断文件类型时,可以结合文件MIME 类型验证(比如jpg图片的MIME类型为image/jpeg,doc文件的MIME类型为application/msword等)、后缀检查等方式。建议在设置文件后缀检查时,采用白名单的限制方式,严格指定允许上传的文件格式。此外,对于图片文件的处理,可以采用二次渲染或压缩函数,在处理图片的同时破坏图片中可能存在的恶意html代码,用于对付包含一句话木马恶意代码的图片。
2、改写文件名和文件路径
值得注意的一点,就是攻击者上传了一句话木马后,还需要得到Webshell的路径才能通过工具进行连接,因此为了避免暴露已上传文件的路径,可以采用随机数重写文件名和文件路径,像XX.php.rar.aa这种文件,都会因文件名被改写而无法成功实施攻击。
3、文件Upload目录设置为不可执行
只要服务器使用的Web容器无法解析该目录下的文件,即使攻击者成功Upload了嵌入一句话木马的恶意文件,服务器也不能执行该恶意文件里的代码。
除上述方法之外,资金充裕的公司可以部署防御安全设备和防御此类漏洞攻击的专业设备,主要是通过检测恶意文件的上传数据的传输和上传执行行为。制作恶意文件,绕过规则上传的手法不断推陈出新,对一般的系统管理员说,可以借助安全设备来抵御攻击行为。

6 总结与展望

本文通过分析SQL注入、XSS漏洞和文件上传漏洞等Web漏洞攻击的手法的理论研究,结合在虚拟环境下模拟常见的攻击手法和软件工具,理论与实践相结合,对黑客攻击Web服务的常见手法做了分析,也对如何修复漏洞给出了部分解决方法,用于预防将来开发服务过程中可能存在的安全隐患。主要工作有以下几点:
(1)通过对比OWASP 2013和2017年十大漏洞榜单排名,了解到SQL注入、XSS跨站脚本攻击和包含文件上传漏洞的“失效的访问控制”依然是需要受关注且威胁极大的Web应用安全风险,尤其是SQL注入,从13年到17年,依然在漏洞榜单中排名第一,更能说明该漏洞攻击的普遍性和威胁性,因此本文后续主要是对这三种漏洞攻击进行相应的理论性分析和实验测试复现。
(2)因本文论述的Web服务漏洞攻击是带有一定的破坏性和非法性,因此在本地搭建了虚拟的实验环境,同时针对不同的安全漏洞类型,搭建不同的网站系统作为靶机,在虚拟环境实验中复现黑客常用的攻击手法,并对攻击手法背后的原理进行论述。
(3)通过手动或者自动化渗透工具AppScan、Sqlmap、带渗透插件的Firefox火狐浏览器、Burp Suite和蚁剑,对靶机里的ZZCMS网站和DoraBox,多拉盒渗透测试网站进行SQL注入、XSS跨站脚本攻击和文件上传欺骗等攻击测试,针对目前安全风险最高的SQL注入,增加了对绕过WAF网站防火墙软件的攻击模拟测试内容。另外根据之前研究过的攻击手法与原理,对Web服务的漏洞修复提出部分解决方法以供参考。
Web服务安全是一个大而广的课题,非常值得去发现更多的问题与对策,并且随着网络技术的不断发展,网上信息泄露的问题也会层出不穷,黑客的攻击手法也会不断创新。因研究的时间与能力有限,在内容上还是有不少局限性,希望在未来的学习与工作中能有更进一步的发现与了解。本文的不足之处有以下几点:
(1)本文主要内容以研究SQL注入、XSS跨站脚本攻击和文件上传漏洞攻击为主。对于OWASP里提到的其他漏洞攻击,如跨站请求伪造(CSRF)、XML外部实体(XXE)注入攻击、反序列化漏洞攻击等,并没有做相应的介绍,这些Web安全漏洞同样都具有一定的安全风险,也值得对其进行深入研究,搭建实验平台进行漏洞攻击复现,在测试方面做进一步的归纳与总结。
(2)本文只是使用操作了部分常用的渗透工具,而且还只是使用其功能的冰山一角,并没有对其使用功能进行介绍、使用和归纳,没有介绍其他强大而好用的功能,也没有提到其他优秀的渗透测试工具。在将来还是有必要了解其他黑客常用的渗透测试工具,并对他们进行介绍、测试、归纳和总结。
(3)由于本人的才疏学浅,本文并没有对造成Web攻击的漏洞的代码(即代码审计)做深入研究与论述,也没有设计出模拟修复好漏洞的网站平台并进行测试,在将来还是有必要回顾一下php代码基础和安全特性,同时也是要适当关注下新PHP版本的安全特性。在安全圈里一直流传着一句话“不懂编程、没挖过漏洞的黑客,充其量只能算脚本小子”。


免责声明:本内容来源于网络,如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

路过

雷人

握手

鲜花

鸡蛋

发表评论

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行