《基于攻击者杀链的研究与实践.docx》由会员分享,可在线阅读,更多相关《基于攻击者杀链的研究与实践.docx(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘 要在互联网的世界中,会受到木马,勒索病毒的网络攻击,给我们带来的安全威胁是巨大的。所以为了减少网络威胁,采用渗透测试能够有效的评估网络系统的安全情况。实验搭建了基于Web应用的漏洞环境,通过攻击者杀链方法对三种Web漏洞进行了利用和分析,分别是SQL注入,XSS跨站脚本,文件上传攻击。通过渗透测试对目标系统进行漏洞风险评估并提供修复措施是保障目标系统稳定运行的最佳选择,对于渗透工作者来说是透明的。攻击者“杀链”方案正是一种新型的渗透测试流程。关键词:渗透测试,攻击者杀链,漏洞AbstractIn the world of the Internet, will be Trojan, rans
2、omware network attacks, to our security threat is huge.Therefore, in order to reduce network threats, penetration testing can effectively assess the security of network systems.In this paper, a vulnerability environment based on Web application is set up, and three kinds of Web vulnerabilities are u
3、tilized and analyzed through the attackers chain killing method, which are SQL injection, XSS cross-site script, and file upload attack.It is the best choice to evaluate the vulnerability risk of the target system and provide the repair measures through the penetration test to ensure the stable oper
4、ation of the target system.The attacker kill chain scheme is a new penetration testing process.Key words: Penetration test, attacker kill chain, vulnerability目录第一章 绪论81.1 课题研究背景81.2 研究的目的及意义81.3 国内外研究现状91.4 未来的发展趋势10第二章 渗透测试的“杀链”方案112.1 渗透测试定义112.2 渗透测试分类112.3 渗透测试流程112.3.1 确定目标112.3.2 被动侦察112.3.3 主
5、动侦查和漏洞扫描122.3.4 漏洞利用122.3.5 后期利用132.4 本章小结13第三章 渗透测试“杀链”方案的环境搭建143.1 测试环境介绍143.2 测试靶机143.3 攻击机153.3.1 kali Linux153.3.2 Windows10本机153.4软件工具介绍153.4.1 工具Nmap153.4.2 工具Hatchet163.5 本章小结16第四章 基于Web应用的侦察与利用174.1 对网站进行侦察174.1.1 基于Web服务的扩展侦查原则174.1.2 WAF识别174.1.3 CMS指纹探测184.2 漏洞扫描194.2.1 具体网络服务的漏洞扫描器194.2
6、.2 AppScan自动化扫描测试214.2.3 使用客户端代理测试安全性224.3 XSS攻击254.3.1 XSS攻击简介254.3.2 XSS攻击实例264.4 SQL注入攻击284.4.1 SQL注入攻击简介284.4.2 SQL注入攻击实例294.5 文件上传攻击334.5.1 文件上传攻击简介334.5.2 文件上传攻击实例334.6 本章小结36第五章 总结与展望375.1 工作总结375.2 展望37参考文献39致谢40广东东软学院本科毕业设计(论文)第一章 绪论1.1 课题研究背景在今天,社会离不开网络和信息化,离不开互联网与网络安全。互联网是新世纪的科技产物,网络成为了人们
7、沟通的桥梁,通过网站、社交软件与人沟通。网络安全问题日益突出,黑客利用网络漏洞对企业内外网进行攻击,获取用户的重要数据,从而达到自己的目的。所以它也是一把双刃剑,网络安全面临的挑战也是巨大的1。近些年,我国的网络安全问题越来越多,如信息泄露、钓鱼欺骗、DDOS攻击等安全问题不断出现,黑客的技术越来越高,随着木马、病毒的出现,让全球各地的网络安全带来了巨大的打击。2014年,谷歌安全工程师发现了一个叫做心脏滴血的漏洞(Heartbleed)。心脏滴血漏洞属于和OpenSSL有关的加密程序库的漏洞,广泛运用于互联网的传输层安全(TLS)协议,如果发现存在该漏洞的实例,不论是客户端还是服务器,都会受
8、到前所未有的高危风险,给互联网带来的挑战是巨大的2。2017年,全球范围爆发了基于Windows SMB协议进行攻击的恶意代码,许多黑客和攻击者修改了“永恒之蓝”的攻击程序,最终导致超大型的网络安全事故。在短短几个小时中,蠕虫病毒就覆盖了大部分欧洲以及中国的多个高校,计算机中的文件被病毒加密,必须要支付一定的金额才能获得解密,对金融行业来说,是一次沉重的打击3。1.2 研究的目的及意义时代发展的同时,网络技术水平也在提高,当然,面临的网络安全的问题不计其数,网络安全面临的威胁就会越来越多,社交软件和网站是我们常用的软件,可以传递人与人之间的数据信息,当然少不了隐私信息。所以黑客将网站作为主要目
9、标,并且实施攻击,窃取数据。所以防范网络攻击,减少网络攻击的财产损失,保障信息安全,是现在需要解决的难点。在今天,安全测试已经成为保障网络安全的一个重要方法,攻击者杀链就是一个典型的方式,也是目前正在发展的一种新的安全测试方法。2019年,阿里云公布了上半年的Web应用安全报告,报告中提到,主要的攻击和扫描器密切相关,攻击占比达到了90%4,WebShell上传和SQL注入攻击占比最高,因此,会以文件上传攻击和SQL注入攻击为本次实验的重点内容。Web应用安全依然是互联网安全的最大威胁来源之一。如图1-1所示。图1-1 2019上半年Web安全攻击类型占比可以说,通过攻击者杀链方法对目标系统进
10、行漏洞风险评估并提供修复措施是保障目标系统稳定运行的最佳选择。而Kali Linux正是为了顺利完成基于渗透测试开发出的系统,其中集成了非常多的渗透测试的工具,是网络安全从业人员的一个利器。所以为了减少网络威胁,攻击者杀链成为评估网络系统安全的有效方式。1.3 国内外研究现状攻击者杀链基于渗透测试方法,研究主要涉及两个方面,也就是渗透测试技术和执行标准。攻击者杀链技术在国外发展较早,技术比较成熟,也有专门的网络安全公司或者测试机构来进行专业的测试,国外的攻击者杀链技术指南如下。(1) A Penetration Testing Model(BSI),德国联邦信息安全发布的测试执行标准,清晰直观
11、地介绍了渗透测试的定义、目标及测试流程5。(2) Technical Guide to information Security and Assessment(NIST) SP800. 115,美国于2008年9月发布的关于信息安全测试和评估标准,取代了之前的NISTSP800-42,该标准介绍了整个信息安全测试与评估的实现过程和技术5。近些年,渗透测试技术在国内有了明显的提升,PTES(Penetration Testing Execution Standard,渗透测试执行标准)是国内安全业界开发的一个新标准,得到了安全业界的广泛认可。该标准还在完善中。目前国内从事渗透测试服务的安全公司有
12、很多,如:奇安信、启明星辰、绿盟、天融信。在今天,攻击者杀链在国外发展较为成熟,运用了许多先进的攻击技术,是目前国内无法达到的。所以,对于攻击者杀链的研究有着深远的意义。1.4 未来的发展趋势网络安全和信息化是一体之两翼,驱动之双轮6。网络安全也就是国家安全,网络的世界时刻处于攻击与防御的状态,而渗透测试正是为了证明网络防御按照预期计划正常运行而提供的一种机制。RAND(美国兰德公司)最先提出通过系统测试的办法保证网络安全的思路。RAND公司与美国高级研究计划局ARPA合作,制定了一个重要的报告,该报告被称作为The Willis Report,明确指出了安全问题以及策略和技术上的对策,直到今
13、天,它仍然是安全解决方案的基础7。目前,美国信息安全顾问Markus Robin着眼于未来提出了三项和渗透测试密切相关的关键性要点:(1)频率与场景用例至关重要。渗透测试进行的频率很重要,如果当大家意识到,再对风险进行处理,那么时间太长。所以应该定期对目标系统进行有效的、合法的安全测试。针对攻击占比最高的漏洞应该每半年或每季度进行一次,如DDOS攻击。(2)引入强大方案:在能力层保持对等。渗透测试技术在进步,逐渐向着攻击者杀链方法去不断完善和优化,但是面对专业的APT及专业的网络犯罪分子也面临着巨大的挑战,企业需要拥有自己的安全专家,并能在异常情况下迅速做出反应。攻击者杀链方法正在迅速发展,网
14、络和基于云的业务应用也越来越多。据MarketsandMarkets预估,渗透测试市场将会以23.7%的复合增长率从2016年的5.947亿美元增长至2021年17.243亿美元5。经济的发展会带动信息化的发展,我国信息安全的研究正处于较低的发展阶段,渗透测试人才稀缺,所以未来渗透测试工程师拥有很好的发展前景。因此,可以看见攻击者杀链的重要性越来越大,应用的范围也越来越广,而这种趋势会持续上升。第二章 攻击者杀链2.1 攻击者杀链定义攻击者杀链是基于渗透测试技术,也就是通过模拟恶意攻击者的技术与方法,利用安全漏洞,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响后果安全隐患的安全测
15、试与评估方法8。图2-1为攻击数据与风险分析图。2.2 攻击者杀链分类攻击者杀链的三种方法有:黑盒测试、白盒测试和灰盒测试。(1)黑盒测试在对目标系统网络框架未知的情况下进行渗透,一般在外网进行。(2)白盒测试对目标系统有完整的网络框架,或者网站的源代码,会更方便渗透测试人员对目标系统的测试,发现的漏洞可能会比较多。(3)灰盒测试灰盒测试结合了前两种方法,针对复杂的目标系统有一定的意义。在进行黑盒测试的过程中,渗透测试人员可以通过外网进行测试,如果此时发现一个内部登录系统,企业能提供登录数据或有用的信息,就能达到更好的渗透测试效果9。2.3 攻击者杀链流程2.3.1 确定目标确定目标属于前期交
16、互阶段,需要与客户组织确定渗透测试范围、目标、限制条件。2.3.2 被动侦察侦查的目的是,给出漏洞利用环节时需要攻击的漏洞,需要在攻击目标网络之前进行。由于被动侦查不和目标系统交互。所以攻击者的IP地址和信息不会被捕捉和发现。2.3.3 主动侦查和漏洞扫描主动侦查需要与目标系统进行交互,比如端口扫描,服务探测。这些活动可能会触发系统安全警报,被攻击者也能获取攻击者的IP地址和活动信息。与目标相互作用检测的机会越多,那么攻击者收集到的有效数据就会更多,如图2-1所示。图2-1 攻击数据与风险关系2.3.4 漏洞利用基于前期侦察,需要分析所找到的Web漏洞,并且对攻击方法进行规划,只有利用了目标系
17、统的漏洞,才能实施高威胁的入侵,并获取访问权限。渗透测试人员可以通过搜索的方式获得某个漏洞的攻击利用代码,例如漏洞信息库。2.3.5 后期利用当渗透测试人员拿到服务器访问控制权后,进入到后渗透攻击阶段,此时需要对目标主机的操作系统和文件结构完全了解,才能绕过其保护权限。通过横向或纵向渗透,来提高渗透测人员访问权限和增加被入侵用户的数量。并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要业务影响的攻击途径9。2.4 本章小结本章介绍了攻击者杀链的定义和流程,参考了国内外现有的攻击者杀链技术和评估标准,设计了适合攻击者杀链的研究实验流程,基于该流程能够顺利完成本课题
18、研究内容,获取需要的研究结果,不断提升渗透测试技术及操作水平。第三章 渗透测试“杀链”方案的环境搭建3.1 测试环境介绍基于研究内容,为了顺利完成前期实验的准备,下面介绍了攻击者杀链的实验环境。本课题是攻击者杀链的研究内容,通过模拟黑客对网站的攻击,设计了拓扑,如图3-1所示。实验设计到多个操作系统与网络环境,所以采用了VMware虚拟化技术,并将靶机与攻击机搭建在虚拟机中。图3-1 环境拓扑3.2 测试靶机虚拟机的网络是VMnet8网卡,网络地址为172.16.12.0,子网掩码为255.255.255.0。靶机的操作系统是Windows Server2003,基于Web应用的DVWA靶场环
19、境搭建在该靶机,IP地址是172.16.12.128,如图3-2所示。图3-2 靶机IP地址3.3 攻击机3.3.1 kali LinuxKali Linux是基于Debian的Linux发行版操作系统,前身是网络安全知名的BackTrack Linux发行版。Kali Linux面向专业的渗透测试和安全审计,涵盖了多种安全测试工具,是渗透测试人员手里的利器。Kali Linux的IP地址为172.16.12.133,如图3-3所示。图3-3 Kali Linux IP地址3.3.2 Windows10本机Windows10本机的ip地址如图3-4所示。图3-4 Windows10本机IP地址
20、3.4软件工具介绍3.4.1 工具NmapNmap脚本引擎(Nmap Scripting Engine,NSE),属于情报收集中使用次数最高的收集工具,也是渗透测“杀链”方案中必要的一款工具,甚至可以执行基本的漏洞扫描。主要功能如下:(1) 对目标服务器进行端口扫描(2) 主机发现,识别网络中的主机(3) 识别操作系统(4) 漏洞扫描,包括模糊测试和SQL注入检测3.4.2 工具HatchetHatchet(中国菜刀)是网站管理软件,先对目标网站上传一句话木马,然后通过中国菜刀与木马交互并控制网站。在文件上传攻击实例中,Hatchet是必须要用到的工具,起着至关重要的作用。3.5 本章小结本章
21、对攻击者杀链的实验环境进行了介绍和搭建。根据本实验的研究内容,设计了符合该实验测试环境的网络拓扑结构。介绍了攻击机Kali Linux和靶机Windows Server 2003,靶机部署了基于Web应用的DVWA靶场环境,方便对SQL注入漏洞、文件上传漏洞、XSS跨站脚本漏洞的研究。关于实验中使用的工具,包含了Nmap、Nikto、AppScan、Hatchet。渗透测试“杀链”方案的实验环境已经全部搭建完成,配置完成。 第四章 基于Web应用的侦察与利用4.1 对网站进行侦察4.1.1 基于Web服务的扩展侦查原则网站方便了人们对信息的获取,一个普通的网站可能就涉及到非常多的功能,如登录,
22、信息上传,以及信息存储。可以说,网站是非常复杂的,而攻击者通过Web漏洞利用攻击目标系统正是目前发生漏洞攻击数量最多的方式。通常来说,交付给用户的服务使用的是多层架构的Web服务器,这些服务器面向互联网公众开放,同时与后端服务器和位于网络上的数据库进行通信9。在使用”杀链”方法与测试过程中,针对特定网络服务侦查的活动,需要明确以下内容:(1) 确定目标站点,是否有防火墙、IDS/IPS和蜜罐技术。(2) 枚举目标网站的目录结构及文件,包括确定是否使用了内容管理系统(Content Management System,CMS)。若使用了CMS,则可以通过下载网站模拟渗透攻击。(3) 枚举所有的表
23、格。这是用户输入数据及与Web服务器进行交互的重要方法,这些都是可以利用的漏洞的具体功能点,如跨站脚本、文件上传攻击和SQL注入攻击。(4) 寻找接受输入的功能点,如允许文件上传的链接或页面,以及可接受的文件上传类型的限制。(5) 标识如何处理错误,由用户发现实际的错误信息,错误信息很有可能包含了关于软件版本、进程或内部文件名相关的重要信息。(6) 利用服务器的弱点获取权限或攻击目标网站。4.1.2 WAF识别Web应用非常多,给人们带来了很多方便,时刻离不开Web应用。所以Web服务器成为了黑客攻击的主要目标。很多网站被非法篡改,所以企业很有必要部署WAF来进行防御。防火墙属于第一道防线,若
24、不使用防火墙,网站将面临着巨大的安全风险。Web应用防护系统,是网站应用级入侵防御系统,可以通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的产品10。WAF对来自Web应用程序客户端各类请求的内容进行检测和校验,以此来确保数据的合法与安全,对于非法的请求应该及时阻断,从而对各类网站站点进行有效的防护。可以通过手动检查数据包来判断是否部署了WAF,并且通过客户端代理软件抓包来捕捉到WAF的标致信息。使用nmap的脚本检测目标站点是否存在WAF,http-waf-detect.nse,如图4-1所示。图4-1 nmap脚本检测WAFNmap识别出一个WAF的存在,但是返
25、回的数据过于笼统,所以该方法不能总是得到准确的结果。Wafw00f脚本是Kali Linux中自动化工具,可以识别并提取基于网络的防火墙指纹。可以通过终端调用该脚本,样本输出如图4-2所示。图4-2 wafw00f脚本检测WAF4.1.3 CMS指纹探测内容管理系统(Content Management System,CMS)是位于Web前端(Web服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统11,方便网站管理员上传或更改页面内容,如文本文件、图片等。分析建立和维护网站的CMS,是渗透测试“杀链”方案中重要的一个步骤。根据CMS的类型,可以先搜索互联网中曝光并公开的漏洞,接着查
26、找漏洞对应的攻击方式或攻击脚本,也可以根据曝光的漏洞搜集网站的敏感信息,如登录后台,默认密码。目前有公开的网站查询Web指纹、Web容器及数据库信息,查询结果如图4-3所示。图4-3 Web信息探测4.2 漏洞扫描漏洞扫描技术是攻击者杀链中非常重要的安全技术。定期使用漏洞扫描可以探测目标系统潜在的安全风险,并得出报告。有助于企业工程师了解并修复系统所存在的漏洞,极大的提高了开发与业务上线效率。企业工程师能在最短的时间内根据漏洞情况找到薄弱点和系统中的错误配置。漏洞扫描器就是漏洞扫描的最高技术体现,能够准确发现信息系统的架构安全,并且保证业务顺利的开展,起到了非常重要的作用。4.2.1 具体网络
27、服务的漏洞扫描器Nikto是基于Perl的开源的扫描器,能够躲避IDS并对网站进行全方位的扫描9。同时支持基本的端口扫描以判定网页服务器是否运行在其他开放端口。对目标靶机部分测试结果如图4-4、图4-5和图4-6所示。图4-4 Nikto测试结果a图4-5 Nikto测试结果b图4-6 漏洞数占比扇形图从扫描结果可以看到目标网站存在高风险漏洞,XSS跨站漏洞、SQL注入漏洞两者占比最高。4.2.2 AppScan自动化扫描测试AppScan是Web应用程序渗透测试使用最广泛的工具,能够帮助安全人员对Web应用程序进行自动化评估。目标系统可能是脆弱性的,也可能存在高危风险。方便企业工程师对系统安
28、全进行更全面的评估。该工具能够清晰直观显示出目标网站的目录结构和文件,极大地提高了工作效率。漏洞扫描结果如图4.6所示。图4-6 AppScan扫描结果4.2.3 使用客户端代理测试安全性客户端代理是攻击者杀链中的一项重要技术,需要使用客户端代理工具,拦截HTTP和HTTPS流量,允许安全测试人员检查用户和应用程序之间的通信。允许测试者修改并重新发送请求与Web应用进行交互。Burp Suite是用于攻击Web应用程序的客户端代理工具,其中包含了很多工具和接口,为了加快攻击应用程序的过程。所有的工具都共享一个请求,并处理对应的HTTP消息、日志、代理。第一步需要对Burp Suite进行配置,
29、Web浏览器配置为使用本地代理,即127.0.0.1,设置8080为端口号,以此来指定HTTP和HTTPS流量经过本地主机。如图4-7所示。图4-7 Burp Suite 设置代理设置代理完成后,访问靶机测试页面,HTTP流量被抓取,如图4-8所示。图4-8 HTTP流量抓取流量抓取完成后,将流量发送至Repeater选项,通过修改数据包进行重放攻击来获取返回的数据。如图4-10所示。图4-9 更改请求方法为POST图4-10 重放攻击获取数据状态码已定义范围分类1XX100-101信息提示2XX200-206成功3XX300-307重定向4XX400-417客户端错误5XX500-505服务
30、端错误图4-11 HTTP状态码的分类根据不同的HTTP状态码可以知道,本次实验出现200状态表示攻击成功,并且成功获取到其他用户的字段信息。4.3 XSS攻击4.3.1 XSS攻击简介跨站脚本攻击(XSS)是通过利用网页开发时留下的漏洞,浏览器解析了攻击者传递的恶意代码,而用户在没有任何安全意识的情况下通过浏览器访问时加载了恶意程序,此时用户就受到了XSS攻击,攻击方式一般以钓鱼链接出现。完成攻击后,攻击者可能会获取到会话和cookie等信息。XSS跨站脚本攻击分为三种,分为持久性XSS、反射型XSS和DOM型XSS。(1) 持久性XSS代码存储在服务器(数据库)中。不可信的输入被处理并在没
31、有任何验证的情况下保存在文件或数据库,同时该不可信的数据从存储中被获取然后在没有编码或转义的情况下反射回响应文中,导致了永久性的每次存储数据反射回响应文代码就会在浏览器中执行的一种XSS漏洞。这种漏洞可能存在于论坛、贴吧留言板(2)反射型XSS反射型XSS代码不会存储在服务端,是目前最为常见的类型。攻击者通过构造包含XSS的恶意请求,用户在毫无安全意识的情况下点击了链接,并且服务器对用户的HTTP请求进行了处理,最终浏览器解析了恶意脚本,就会触发XSS漏洞。(3)DOM型XSS漏洞发生原因跟服务器解析无关,它是基于DOM文档对象模型的一种漏洞。在整个攻击过程中,服务器响应的页面并没有发生变化,
32、引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。用户提交的数据,可能会包含特殊字符、系统命令、攻击代码。用户提交的数据是不可信的,若不经过适当验证和过滤,就会导致恶意脚本执行。然而反射型XSS是目前发生次数最多,占比最大最易发起攻击的跨站脚本漏洞。所以接下来会对反射型XSS进行实验。XSS攻击原理如图4-22所示。图4-12 XSS攻击原理4.3.2 XSS攻击实例在本机浏览器输入172.16.12.128并访问XSS靶场页面。Web应用程序一般通过POST或GET方式传递参数。输入admin,点击Submit,可以看到,服务器返回的数据与我们提交的值一直,说明是通过GET方式传
33、递参数的。如图4-13所示。图4-13 XSS测试查看后台页面源代码a,如图4-14所示。可以看到,传递参数时,服务端未经任何验证和过滤,直接显示出了用户提交的admin参数,此时输入“alert(/XSS/)”,结果如图4-15所示。图4-14 后台页面源代码a图4-15 XSS测试结果a查看后台页面源代码b,如图4-16所示。可以看出代码将用户输入的内容中的标签替换为了空,需要注意的是,str_replace函数不区分大小写,而且只替换一次,所以此时可以构造payload进行大小写绕过攻击。测试结果如图4-17所示。图4-16 后台页面源代码b图4-17 XSS测试结果b4.4 SQL注入
34、攻击4.4.1 SQL注入攻击简介SQL注入是Web应用代码中的漏洞,产生的原因是Web应用程序没有对用户输入的数字、字母、特殊字符等数据进行过滤。攻击者可以构造特殊请求,使Web应用执行带有附加条件的SQL语句,以此欺骗服务器执行非授权的任意查询12,最终攻击者获取到数据信息。SQL注入漏洞可能会对数据库中的库和表进行增、删、查改等操作,也可以执行系统命令,上传后门,获取系统管理员权限。SQL注入分为简单注入、Union注入、盲注等。简单注入是基于计算机逻辑语言(and、or)判断回显结果,让Web应用构造错误的SQL语句来抛出异常。Union注入是利用联合查询语句对数据库的数据进行查询。S
35、QL注入攻击最根本的原因是,Web应用程序没有对输入的数据进行匹配和过滤。触发漏洞需要满足两个必要的条件。(1) 用户可以控制输入,并且参数可控,没有对用户请求中带有参数的值进行转码或过滤。(2) 用户输入的数据当做代码执行了,拼接了SQL语句。4.4.2 SQL注入攻击实例访问DVWA靶场,找到SQL注入选项,并在本机浏览器输入目标靶机地址。如图4-18所示。SQL注入通常会出现在表单,符合本次实验的测试要求。测试步骤如下。(1)寻找注入点,并找到注入类型。在图4-19的输入框中输入“2”,页面回显结果可以看出,查询的字段名有ID、First name、Surname,以及每个字段名对应的值
36、,输入框的id值显示在了url中,那么可以确定参数是通过get方式传递的。接下来输入“1”,页面回显提示错误如图4-20所示。图4-18 SQL注入测试框图4-19 输入“2”测试结果图4-20 输入“1”测试结果图4-21 存在字符型SQL注入漏洞通过测试结果,看到数据库未对特殊字符进行过滤,证明该表单存在SQL注入漏洞,注入点是id,后台回显的数据可以看到,使用的是MySQL数据库。此时构造永真式语句id=2 or 1=1,提交数据,回显的结果与id=2一致,如图4-21所示。证明表单存在字符型的SQL注入漏洞。(2)构造特殊语句获取数据库信息此时需要确定数据库查询字段数、字段显示位。才能
37、用内置函数获取数据库信息,如:database()、version()、user()。可以通过order by语句猜解查询的字段数,若order by后面的值超过了字段数,查询会报错,以此判断出select语句查询的字段的数目。输入“2 order by num值 # ”num从1开始,每次加1,测试到“2 order by 3 # ”时出现异常回显,则证明select查询字段有两个。如图4-22和4-23所示。图4-22 字段数测试结果a图4-23 字段数测试结果b(3)获取数据库的表名和列名MySQL数据库存在三个默认的数据库,分别是mysql、information_schema和tes
38、t,information_schema库中的schemata表中存储了数据库管理系统(DBMS)所有数据库的名称信息。通过内置函数替换字段显示位,使用database()函数,得出数据库名为DVWA。从Users表中获取到列名,结果分别是:user_id、First_name、last_name、user、password。并爆出user和password的结果,password值为MD5加密。如图4-23所示。图4-23 获取用户密码(4)验证数据选取一组password的值,通过MD5解密结果为“letmein”。如图4-24所示。通过本机浏览器输入http:/172.16.12.128
39、/dvwa/login.php,成功登录该账号,SQL注入攻击完成。结果如图4-25所示。图4-24 MD5解密结果图4-25 SQL注入攻击完成本次SQL注入攻击实验完成,针对SQL注入漏洞,总结出以下几点防御措施:(1)使用预编译语句,绑定变量。(2)使用安全的编码函数。(3)检查数据类型,过滤危险字符,用正则表达式匹配危险关键字。4.5 文件上传攻击4.5.1 文件上传攻击简介文件上传是Web应用常见的一种功能,在许多的业务系统中需要用到。比如一个贴吧网站,用户可以通过上传功能上传自己的头像与个人信息,个人信息数据被保存在了服务器中,若攻击者上传了一个脚本木马,那么造成的威胁就是不可估量
40、的。文件上传漏洞的危害非常大,Web应用程序在处理用户上传的文件操作时,如果用户上传文件的路径、文件名、扩展名成为用户可控数据,就会导致直接上传脚本木马到Web服务器上,直接控制Web服务器。文件上传漏洞产生的原因如下:(1) Web应用未对用户上传的数据做验证,未对文件格式进行检查(2) 文件上传路径泄露,上传后没有采取加密函数对文件重命名(3) 上传的文件或目标文件夹开启执行权限。4.5.2 文件上传攻击实例本机浏览器访问http:/172.16.12.128/login.php登录并选择文件上传攻击模块进行测试。如图4-26所示。选择本地图片文件,进行上传,上传成功,并成功返回上传路径。
41、如图4-27所示。图4-26 文件上传漏洞测试图4-27 图片上传成功图片上传成功后,尝试上传php脚本木马,上传失败。查看后台部分源代码发现对上传的文件类型和文件大小做了限制,源代码如图4-28所示。通过Burp Suite客户端代理测试,设置代理端口为8080,并拦截HTTP流量,选中数据包,右键选择“Send to Repeater”,并对数据包进行修改。可以看见,数据包中的文件类型为“application/x-php”,结果如图4-29所示。图4-28 文件上传部分源码图4-29 文件类型不允许此时修改文件类型为“image/jpeg”,点击“go”重新上传木马文件。通过返回的数据包
42、可以看到,木马已经成功上传。如图4-30所示。图4-30 木马成功上传使用“Hatchet.exe”软件对木马进行访问,编辑木马路径与3.php中传递的参数值,如图4-31所示,编辑完成后,成功访问目标服务器并拿到WebShell权限。如图4-32所示。图4-31 配置连接路径图4-32 成功获取WebShell权限本次实验结果证明,简单的文件类型验证易被绕过。服务端不仅要对对用户上传的文件类型、扩展名进行校验。还需要限制以下几点:(1) 判断文件类型,结合后缀名检测方式,使用白名单。(2) 使用随机数改写文件名和文件路径。(3) 限制上传文件的目录的执行权限。4.6 本章小结根据2019上半
43、年Web应用安全报告,本章主要对报告中攻击类型占比较高的漏洞进行了实验。通过攻击者杀链技术,基于DVWA网站,完成了对SQL注入攻击、文件上传攻击和XSS跨站脚本攻击的实验。也完成了对目标站点的漏洞扫描实验。通过实例分析,对漏洞原理和攻击技术做了清晰的讲解。第五章 总结与展望5.1 工作总结自2019年11月,开始了毕业设计及论文的工作。途中遇到了一些困难,经过自己的摸索和努力,最终顺利解决了。刚开始对于实验比较陌生,怕无法完成工作,我发现自己学习过相关的知识点,最终重拾信心。通过书籍找到实验的方法,不断学习,花了不到四周的时间,我看完了关于实验的这本书。谨慎,认真,脚踏实地。最终,我掌握了大
44、部分重要的知识结构并顺利完成了实验。本实验是基于Kali Linux开展的渗透测试“杀链”方案的研究,通过使用VMware虚拟化技术,成功搭建了实验环境。通过构造拓扑图来模拟黑客攻击企业网站的真实环境。其中拓扑图中包含了三台主机,分别是:Windows10 本地计算机、Kali Linux、Windows Server 2003靶机。靶机中搭建了DVWA环境,模拟Web应用漏洞环境。通过攻击机Kali Linux和本机对靶场环境进行了渗透测试,以此来发现目标主机存在的漏洞与风险。不仅对目标靶机进行漏洞扫描,还对目前攻击占比最高的三种漏洞进行了安全测试,分别是SQL注入,文件上传,XSS跨站脚本
45、攻击。利用漏洞对目标实施了攻击,取得了较好的成果。在课题研究的过程中,也有一些问题与不足之处:(1) Kali Linux操作系统版本未及时更新,导致某些工具的命令无法使用,在实验中受到了小部分的影响。(2) 实验是在VMware虚拟化技术下完成的,通过模拟了内外网的环境对靶机进行了渗透测试。受主机内存的影响,只能开启一台靶机和一台攻击主机。未来有条件可以在真实的内网环境下部署实验环境,以此接触到真实环境下的难点与不同。5.2 展望攻击者杀链的研究与实践是本课题的核心,涉及了网络安全领域很多的知识点,有计算机网络知识,有网络攻击与防范,也有Web安全的知识。最重要的是实操能力,通过攻击软件或操
46、作系统对目标靶机环境进行渗透测试。渗透测试的能力是渗透人员的知识技能与实操能力的综合体现,国家网络安全人才稀缺,需要自己不断努力,不断创新,才能够取得更大的进步,才能在网络安全领域有一定的成绩。该课题还需要在真实环境中进行测试和演练,我觉得在以下几方面需要做进一步的研究:(1) 渗透测试大部分的工作是需要手工操作完成的,对于每个不同的漏洞,所耗费的时间和精力是不同的。那么,在有限的时间内,对目标系统进行全面的测试就会面临非常大的困难,所以,可以往自动化渗透测试的方向继续研究;(2) 渗透测试的结果最终会输出给企业,并告知企业目标系统存在哪些漏洞,造成的危害性是怎样的。也会给出具体的修复措施以及方案。那么,怎样和开发人员对接,才能确保所有的漏洞都完整修复了,漏洞修复的难度太大,如果开发人员不及时修复,将会造成二次或多次攻击。这是未来我需要考虑和研究的问题。参考文献1 网络是一把双刃剑Z.2 心脏滴血漏洞Z.https