web安全渗透测试技术实践.doc_第1页
web安全渗透测试技术实践.doc_第2页
web安全渗透测试技术实践.doc_第3页
web安全渗透测试技术实践.doc_第4页
web安全渗透测试技术实践.doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

院 系 学生学号 编 号 本科毕业设计题目 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的站点有:百度()、京东()、新浪()、腾讯()、淘宝()等。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种,数字型注入,搜索型注入,字符型注入。数字型注入:/news.php?id=1 and 1=1; select * from news where id=1 and 1=1 字符型注入:/news.php?chr=name; select * from news where chr=name; select * from news where chr=name and 1=1 搜索型注入:/news.php?search=测试; select * from news where search like % 汉字 % ; select * from news where search like %汉字 % and %1%=%1%判断注入点判断条件:第一必须有参数,第二必须要有带入数据库查询。例如:/papers.asp?id=1 可能存在注入。进一步通过逻辑注入语句进行判定结果,一定要用逻辑判断。/papers.asp?id=1 and 1=1 执行语句select * from papers where id=1 and 2=2页面返回显示正常。/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武器库中的eternalbl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论