文档库 最新最全的文档下载
当前位置:文档库 › Web网站渗透测试论文设计

Web网站渗透测试论文设计

Web网站渗透测试论文设计
Web网站渗透测试论文设计

XXX 职业技术学院

毕业设计(论文)

题目: Web 渗透测试技术研究

系 (院) 信息系 专业班级 计算机网络 学 号 1234567890 学生 XXX 校导师 XXX 职 称 讲师 企业导师 XXX 职 称 工程师 企业导师 XXX 职 称 工程师

----------------------------------------------

线----------------------------------------------

Web渗透测试技术研究

摘要:

随着网络技术的发展和应用领域的扩,网络安全问题越来越重要。相对于传统的系统安全,Web的安全得到了越来越多的重视。首先,越来越多的网络业务不再用专门的客户机/服务器模式开发,而是运行在Web上用浏览器统一访问;其次,和比较成熟的操作系统安全技术比较,Web的安全防护技术还不够完善,当前黑客也把大部分注意力集中在Web渗透技术的发展上,使Web安全总体上面临相当严峻的局面。

为了确保Web的安全,需要采用各种防护措施。在各种防护措施中,当前最有效的措施是先自己模拟黑客攻击,对需要评估的进行Web渗透测试,找到各种安全漏洞后再针对性进行修补。

本文在对Web渗透测试技术进行描述的基础上,配置了一个实验用Web,然后对此目关键词:

网络安全;Web;渗透测试

Web site penetration testing technology research

Abstract:

With the expansion of the network technology development and applications, network security issues become increasingly important. Compared with the traditional system security, Web security has got more and more attention. First, more and more network applications no longer develop with specialized client / server model, but run on the Web site and accessed by browser; Secondly, operating system security technology is relatively safe, but secure Web site protection technology is still not perfect, so the most of the current hackers’attention focused on the development of Web penetration technology, the Web site is facing serious security situation in general.

To ensure the security Web site, you need to use a variety of protective measures. In a variety of protective measures, the most effective measure is to own hacking simulation, the need to assess the Web site penetration testing, to find a variety of security vulnerabilities before specific repair.

Based on the Web site penetration testing techniques described, the Keywords:

Network Security, Web sites, penetration testing

目录

第一章概述 (1)

1.1 网络安全概述 (1)

1.2 Web面临的威胁 (1)

1.3 Web渗透测试概述 (2)

第二章Web渗透测试方案设计 (4)

2.1 渗透测试创建 (4)

2.2 渗透测试工具选择 (4)

2.3渗透测试方法 (5)

第三章Web渗透测试过程 (6)

3.1 扫描测试Web (6)

3.2 寻找Web安全漏洞 (7)

3.3 SQL注入攻击测试 (9)

3.4 XSS跨站攻击测试 (13)

3.5 网马上传攻击测试 (17)

第四章Web防护 (23)

4.1 代码修复 (23)

4.2 其它防护措施 (24)

总结 (25)

参考文献 (25)

第一章概述

1.1 网络安全概述

随着网络技术的发展,网络已经越来越多地渗透到当前社会生活的方方面面,网上电子商务、电子政务、电子金融等业务日益普及,网络上的敏感数据也越来越多,自然对网络安全提出了更高的要求。

根据一般的定义,网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。要做到这一点,必须保证网络系统软件、应用软件、数据库系统具有一定的安全保护功能,并保证网络部件,如终端、调制解调器、数据链路的功能仅仅能被那些被授权的人访问。

在现实世界中,由于网络相关的各种软硬件安装、配置、管理上面基本不可能做到没有任何缺陷和漏洞,所以可以说不存在绝对的网络安全。尤其在当下网络技术逐渐普及扩散的情境下,防各种形式的黑客攻击是网络资源管理者必须严肃考虑的问题。

根据黑客攻击的类型,大致可以分为两种,一种是直接针对操作系统本身或应用软件的安全漏洞进行的攻击,传统的注入端口扫描、弱口令爆破、缓冲器溢出都属于这种类型的攻击,如果攻击成功往往可以直接远程控制目标系统,因此一旦出问题危害极大,但针对这种攻击的防技术也比较成熟,采用最新的安全操作系统、强大的防火墙和IDS入侵检测系统可以将绝大部分入侵企图拒之门外。另外一种就是针对动态Web进行的攻击,它不像针对系统的攻击那样直接,成功后能在目标系统上进行的操作有限,往往还需要进行提权等后续工作,但目前Web本身设计上的安全防护水平普遍不高,针对Web的防措施目前也还不够成熟,所以有安全问题的Web非常多,Web的攻防也是现在安全技术领域的研究热点。

1.2 Web面临的威胁

传统上,网络应用业务采用C/S(客户机和服务器)模式,即开发出安装在普通客户计算机上的递交申请业务模块和安装在高性能服务器上的响应请求业务模块,这样做的好处是性能高,响应速度快,但缺点是需要为每个业务专门开发不同的服务端和客户端,开发和学习的成本也高,所以现在的趋势是将所有的服务模块都放到Web上,而客户机统一使用浏览器去访问Web去实现业务功能。

用Web形式开发网络业务有不少优点,首先是客户端统一为浏览器、降低了这方面的学习成本,另一方面,Web的主流开发语言(ASP、PHP、JSP等)是动态脚本语言,比起用C/C++、Java等语言开发C/S程序,难度有所降低,有利于快速开发出所需的项目。但是从安全方面考虑,由于Web牵涉到的一些网络协议先天的不足,以及由于网络技术发展太快,复杂程度随着需求扩展不断膨胀,而开发程序员的水平和安全意识往往没有跟上,导致Web非常容易出现各种安全漏洞,使黑客能够对其进行各种形式的攻击,常见的Web安全漏洞主要有SQL注入和XSS跨站攻击等。

1 SQL注入

SQL注入(SQL injection)是发生在Web应用程序和后台数据库之间的一种安全漏洞攻击,它的基本原理是:攻击者精心构建一个包含了SQL指令的输入数据,然后作为参数传递给应用程序,在应用程序没有对输入数据做足够的检查的情况下,数据库服务器就会被欺骗,将本来只能作为普通数据的输入当成了SQL指令并执行。

数据库是动态的核心,包含了很多相关的敏感数据,例如管理员的账号和密码等,所以一旦数据库的信息被SQL注入非法查询,这些敏感信息就会被泄露,导致严重后果。此外,SQL注入还可能被用于网页篡改、网页挂马,更为严重的是,有些数据库管理系统支持SQL指令调用一些操作系统功能模块,一旦被SQL注入攻击甚至存在服务器被远程控制安装后门的风险。

2 XSS跨站攻击

简单地说,XSS也是由于Web应用程序对用户的输入过滤不严而产生,攻击者利用XSS漏洞可以将恶意的脚本代码(主要包括html代码和JavaScript脚本)注入到网页中,当其他用户浏览这些网页时,就会触发其中的恶意脚本代码,对受害者进行诸如Cookie 信息窃取、会话劫持、网络钓鱼等各种攻击。

与主动攻击Web服务器端的SQL注入攻击不同,XSS攻击发生在浏览器客户端,对服务器一般没有直接危害,而且总体上属于等待对方上钩的被动攻击,因此XSS这种安全漏洞虽很早就被发现,其危害性却曾经受到普遍忽视,但随着网络攻击者挖掘出了原来越多的XSS漏洞利用方式,加上Web2.0的流行、Ajax等技术的普及,使得黑客有了更多机会发动XSS攻击,导致近年来XSS攻击的安全事件层出不穷,对XSS攻防方面研究的重视程度明显提高。

当然,Web面临的安全威胁还有很多,并且随着网络技术和网络业务的发展而不断更新,例如CSRF跨站请求伪造、界面操作劫持等。

1.3 Web渗透测试概述

由于各种安全漏洞,因特网上的Web面临黑客攻击的风险,因此必须采取措施进行防护工作。传统防火墙因为必须放行Web服务的端口(一般是80端口),所以对SQL注入、XSS跨站攻击之类入侵手段没有防护效果,现在也出现了一些专门用于保护Web的安全设备,例如WAF防火墙、安全狗等,但这些设备并不是万能的,往往容易被高水平的入侵者绕过。最有效的措施还是进行Web渗透测试。

渗透测试时安全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试能够直观的让管理人员知道自己网络所面临的问题。

Web渗透测试主要是对Web应用程序和相应的软硬件设备配置的安全性进行测试。进行Web渗透测试的安全人员必须遵循一定的渗透测试准则,不能对被测系统进行破坏

活动。Web安全渗透测试一般是经过客户授权的,采取可控制、非控制性质的方法和手段发现目标服务器、Web应用程序和网络配置中存在的弱点。

通过Web渗透测试后,即可有针对性地对Web上的安全漏洞进行修补,最大程度地加固系统,确保安全。

第二章Web渗透测试方案设计

2.1 渗透测试创建

为了研究Web渗透测试技术,我们需要一个测试用的Web,由于法律的限制,我们不能直接去攻击互联网上的Web,所以需要自己创建一个实验测试用Web,这样不但合法,而且还有利于测试完成后做修补加固和代码审核工作。

测试Web可以创建在本地,也可以创建到自己购买的虚拟空间或云主机上,为了方便起见,这里选择在云平台上的一台Windows 2003虚拟机系统上创建Web。

ASP、https://www.wendangku.net/doc/d03780998.html,、PHP和JSP需要不同的环境,包括选用Apache、IIS、Nginx或者Weblogic中哪个Web服务器,数据库也有Access、Microsoft SQL Server、MySQL 以及Oracle等多种选择。至于的源代码,可以自己开发,但一般更常见是到互联网上去搜寻开源的Web项目下载,例如中国站长网等,可以根据需求自己对源代码进行适当的裁剪修改,也更好达到渗透测试目的。

如图2-1所示,这里选用了IIS+ASP方案创建了一个测试用Web。

图2-1 创建Web

2.2 渗透测试工具选择

对Web进行渗透测试的工作是在一台能访问Web的攻击机上实施的,这些测试工作有些可以直接用手工操作,不过如果有适当的工具帮助,往往可以大幅度地提高渗透测试的成功率和效率,因此选择一套渗透测试用的工具软件是必备的工作,这些工具一般包括端口扫描器、目录扫描器、后台扫描器、漏洞扫描器、SQL注入工具、XSS利用工具、转码工具、加解密工具等等。

如图2-2所示,在本地攻击机上安装了一些常用的渗透测试工具。

图2-2 渗透测试工具

2.3渗透测试方法

准备好测试用Web和渗透测试工具后,即可在攻击机上开始进行Web渗透测试工作,方法是模拟真正黑客的入侵过程,综合利用各种工具和手段,获取目标Web甚至所在服务器上的权限,从而挖掘出的各种安全漏洞,为后面的安全加固提供依据。当然,这需要很高的技术水平和熟练的操作,没有多年的经验积累是很难在各种情景下都能完成任务的,在下一章,我们就以一个比较简单的,漏洞比较明显的Web为例演示一下比较典型的Web渗透测试过程。

第三章Web渗透测试过程

3.1 扫描测试Web

如图3-1所示,渗透测试首先应该先用Nmap之类的端口扫描工具扫描一下目标所在的服务器,了解开放的端口服务,目标可能的操作系统类型等信息。这里可以看到,目标服务器的80号端口是开放的,所以Web服务应该是正常的。

图3-1 端口扫描

然后用浏览器打开验证,如图3-2所示:

图3-2 Web浏览

3.2 寻找Web安全漏洞

我们可以用一些自动化的扫描工具去检测的常见漏洞,也可以用纯手工的方式进行检测,如图3-3和3-4所示,在网页URL后面添加“and 1=1”和“and 1=2”,发现返回的情况不同!说明这里存在着SQL注入漏洞。

图3-3 SQL注入测试

图3-4 SQL注入测试

如图3-5所示,在地址栏后面添加““> ”,弹窗

窗口出现,证明这里存在反射型XSS漏洞。

图3-5 反射型XSS

如图3-6、3-7和3-8所示,在留言板里发表包含“ ”的帖子容,弹窗窗口出现,证明这里存在存储型XSS漏洞。

图3-6 留言板

图3-7 XSS留言

图3-8 存储型XSS

3.3 SQL注入攻击测试

在上一节已经找到Web的SQL注入漏洞的基础上,我们利用此漏洞去猜解后台数据库中的账号和密码,既可以用工具也可以用手工方式,这里为方便起见选用注入工具,如图3-9和3-10所示,很快猜解出账号和密码。

图3-9 工具扫描SQL注入漏洞

图3-10 注入找到后台账号密码

从密码的形式可以看出不是明文而是原始密码的MD5散列码,MD5是单向散列函数,本来是不能破解的,不过如果密码原文比较简单,也可能用暴力破解的方式找到原密码,如图3-11、3-12和3-13所示。

图3-11 破解MD5

图3-12 破解成功

图3-13 破解出密码原文

有了账号和密码后,扫描的管理后台地址,如图3-14所示。

图3-14 扫描出管理后台

如图3-15和3-16所示,用前面注入猜解和破解获取的账号和密码登录,成功进入Web的管理后台界面。

图3-15 登录管理后台

图3-16 进入管理后台

前面已经通过手工方式探测到存在XSS漏洞,XSS漏洞属于一种比较被动的安全漏洞,不能用来直接攻击服务器,而是一部用来攻击其他客户端,具体利用的方法和形式很多,下面是利用XSS漏洞窃取管理员cookie的步骤。

图3-17 XSS利用平台

如图3-17所示,XSS漏洞攻击者自己创建一个具有XSS漏洞利用功能的,然后为自己创建一个项目,生成具有窃取cookie功能的代码,如图3-18所示:

图3-18 XSS利用代码

现在攻击者可以设法利用各种欺骗手段让其他Web用户执行XSS代码,这里利用存储型XSS漏洞,由攻击者在留言板上发表包含XSS利用代码的容插入数据库,如图3-19所示。

图3-19 将代码插入目标Web

如图3-20所示,一旦Web的管理员在登录状态下查看了留言板,XSS利用代码就在后台隐蔽执行了。

图3-20 管理员被攻击

此时攻击者回到XSS,会发现自己的项目中返回了数据,如图3-21所示。

图3-21 攻击者收到cookie

如图3-22所示,攻击者窃取到了Web管理员的cookie信息。

图3-22 窃取到的cookie值

如图3-23和3-24所示,有了窃取到的cookie信息,再借助一些cookie修改工具,可以不输入密码直接进入管理后台界面。

图3-23 cookie修改工具

图3-24 窃取cookie进入管理界面

前面利用SQL注入漏洞拿到管理账户和密码后可以非法进入后台管理界面,但到这来一般并不能做多少事,用后台权限篡改新闻挂黑页是很无聊的事情,常见的做法是想办法将网页木马上传到获取Webshell得到所在服务器的某些权限,然后有需要和可能再设法提权。

如图3-25所示,在Web管理后台里找到一个能够上传自己图片的地方,然后选择上传文件,如图3-26和3-27所示,直接上传asp格式的网马是通不过检查的,所以上传一个伪装成图片文件的小马,结果成功上传,并被自动重命名,如图3-28和3-29所示。

图3-25 上传图片

图3-26 选择文件

图3-27 上传网马图片

图3-28 上传成功

图3-29 上传文件位置和名称

现在网马容上传上去了,但文件后缀名不对,所以不能访问执行,所以需要再利用类似如图3-30所示的备份漏洞,将上传的文件的后缀名成功改回asp。

图3-30 备份改名

现在可以直接访问上传成功的网马,如图3-31所示是小马的效果,利用它在上传一个功能齐全的大马,如图3-32和3-33所示。

图3-31 访问网马

图3-32 上传大马

图3-33 访问大马

现在可以直接访问大马网页文件,如图3-34所示,登录成功后即得到类似图3-35所示的Webshell界面,根据权限可以对Web所在的服务器进行操作,如果有其他系统和软件漏洞,还可以设法提权,获取对服务器的完全控制权。

图3-34 网马登录

图3-35 获取Webshell

第四章Web防护

4.1 代码修复

经过Web渗透测试,我们发现了的安全漏洞及其严重后果,下一步自然就是部署安

全防护措施,堵塞漏洞。

对Web后台代码进行阅读审核后,可知正是因为查询数据库的SQL语句缺少必要的过滤措施才导致了SQL注入、XSS等安全漏洞。修补漏洞的最好办法是用安全编码方式彻底重写所有相关代码,如果没有这个条件,添加一些过滤代码也是比较好的办法,例如图4-1所示,在数据库连接文档中添加了对用户提交值中非法参数的检测。

图4-1 过滤代码

添加过滤代码后,黑客如果再企图对Web进行诸如SQL注入之类的攻击,就会被拦截而归于失败,如图4-2所示。

图4-2 SQL注入被拦截

需要注意的是,黑式的过滤代码并不是万能的,往往会被更高水平的黑客攻击绕过,所以还应根据攻防技术的发展及时更新,并结合其他安全防措施。

4.2 其它防护措施

因为现在的Web功能越来越多,也越来越复杂,相应的黑客攻击技术也在不断发展,所以往往不是单一的安全防护措施就能有效抵御各种渗透攻击,而需要综合采用各种措施,一方面尽可能将所有的安全漏洞堵住,另一方面可以争取做到即使黑客攻破了某个安全措施,也会被其他安全措施拦截,将损失降低到最小。

目前比较常用的Web安全防措施有:尽量选用高版本的操作系统Web服务器,设置高强度的密码,给目录设置最小的必要权限,加装Web防火墙和杀毒软件监控网页木马等。

最后需要指出,Web渗透和防护技术还处在快速发展阶段,所以没有一劳永逸的安全,必须不断学习,与时俱进。

总结

网络安全是当前的一个技术研究热点,Web安全又是网络安全中的一个核心问题。Web渗透测试则是强化Web安全的重要技术手段,它是在获得授权的情况下,模拟真实的黑客攻击手段对目标Web站点进行入侵测试,因此能够最大程度挖掘出Web的安全漏洞,为Web安全防护提供有效依据。

本文是在真实网络环境里自己搭建了一个Web,然后自己对其进行渗透测试,研究Web安全相关攻防技术。限于水平,创建的Web和攻防所用的技术都比较简单,没有涉及当前最新的Web漏洞测试,但仍然比较完整地展示了Web渗透测试和防护的过程,为以后进一步学习和工作打下良好基础。

参考文献

[1] 小兵,渊,立伟.Web渗透技术及实战案例解析[M].:电子工业,2012.4

[2] 王文君,建蒙.Web应用安全威胁与防治[M].:电子工业,2013.1

[3] 吴翰清.白帽子讲Web安全[M].:电子工业,2012.3

[4] 鲍洪生.信息安全技术教程[M].:电子工程,2014.3

相关文档