Time: 2020-02-18  网络安全等级保护资讯网

万方安全Web应用安全检测服务方案(下篇)

    万方安全Web应用安全检测服务方案(上篇)

      8. 应用安全检测类别与明细

  8.1. 接口安全测试

  8.2. 防越权测试

  8.3. 模糊化效果评估

  8.4. 应用安全评估测试

  8.4.1. 配置管理测试

  5) FTP匿名访问

  · 测试目的:检查FTP是否可以匿名访问;

  · 测试对象:网络WEB系统;

  · 测试工具和手段:nmap;

  · 必备材料:检应用系统相关的全部主机ip地址清单;

  · 测试方法:

  (1) 使用nmap扫描主机端口,查看是否开放FTP端口;

  (2) 使用用户名为anonymous、密码为空密码以及密码test@example.com登录;

  (3) 若可以匿名访问,继续测试给用户是否具有读/写文件的权限;

  · 判断条件:

  符合:不能匿名登录FTP;

  不符合:

  (1) 中风险:存在匿名用户,但已禁用读/写权限;

  (2) 高风险:存在匿名用户,且开放读/写权限,可进一步上传webshell;

  6) 默认管理控制台/后台管理系统检测

  · 测试目的:

  (1) 是否存在默认的管理控制台或后台管理系统入口;

  (2) 管理控制台/后台管理系统是否可访问;

  · 测试对象:网络WEB系统后台;

  · 测试工具:dirbuster,wwwscan;

  · 必备材料:

  (1) 委托单位提供被检应用系统相关的全部主机ip列表;

  (2) 委托单位需提供被检应用系统的URL;

  · 测试方法:

  (1) 抽查主机列表中的10台主机,利用nmap等端口扫描工具对抽查主机进行全端口扫描;

  (2) 利用dirbuster/wwwscan等目录猜解工具对发现的存活端口进行目录猜解,查看否存在如tomcat、weblogic、axis2、jboss等默认管理控制台/后台管理系统(如URL中使用了/admin、/console等常用关键字);

  (3) 对测试结果进行手工验证;

  (4) 如果存在默认管理控制台/后台管理系统,需进一步检查:

  a) 在不登录的情况下是否可以访问;

  b) 用户名或密码是否可猜测;

  · 判断条件:

  符合:抽查主机中不存在默认管理控制台/后台管理系统

  不符合:

  (1) 低风险:存在默认管理控制台/后台管理系统,需登录方可进入;

  (2) 中风险:存在默认管理控制台/后台管理系统,登录用户名和密码可猜测;

  (3) 高风险:存在默认管理控制台/后台管理系统,可直接访问;

  7) 默认页面检测

  · 测试目的:检测目标主机是否存在默认页面,或启用默认主页服务;

  · 测试对象:网络系统主机;

  · 测试工具:dirbuster,wwwscan;

  · 必备材料:委托单位需提供被检应用系统的URL列表;

  · 测试方法:

  (1) 抽查主机列表中的10台主机,利用nmap等端口扫描工具对抽查主机进行全端口扫描;

  (2) 利用dirbuster/wwwscan扫描器测试网站是否存在如tomcat、weblogic、axis2、jboss等安装时的默认页面,如/docs,/samples等;

  (3) 对扫描结果进行手工验证;

  · 判断条件:

  符合:不存在默认页面;

  不符合:

  (1) 中风险:存在默认页面,未泄露敏感信息;

  (2) 高风险:存在默认页面,泄露敏感信息;

  8) 失效文件检测

  · 测试目的:检查应用中是否存在测试页面、备份页面、应用安全测试遗留文件、未删除的默认页面以及svn文件;

  · 测试对象:网络WEB系统后台主机;

  · 测试工具:dirbuster,wwwscan;

  · 必备材料:委托单位提供被检应用系统的URL列表;

  · 测试方法:

  (1) 根据应用系统的URL地址,利用dirbuster/wwwscan等扫描器测试网站发布目录是否存在开发中遗留的测试文件、备份文件,常用关键字如.test、.bak、.bk、.old;

  (2) 测试网站是否存在测试遗留文件以及未删除的默认页面,常用关键字如default、test;

  (3) 测试网站是否存在扩展名为.svn的文件;

  (4) 测试网站存在渗透痕迹,如:遗留的shell等木马文件;

  (5) 对扫描结果进行手工验证;

  · 判断条件:

  符合:不存在过时的、用于备份的以及未被引用的失效文件;

  不符合:

  (1) 中风险:存在过时的、用于备份的以及未被引用的文件,未泄露敏感信息;

  (2) 高风险:存在过时的、用于备份的以及未被引用的文件,泄露敏感信息;

  9) 文件扩展名处理测试

  · 测试目的:检查目标系统是否包含敏感信息的文件或完全没必要返回的文件;

  · 测试对象:网络WEB系统;

  · 测试工具:dirbuster,wwwscan;

  · 必备材料:委托单位提供被检应用系统的URL列表;

  · 测试方法:

  利用dirbuster/wwwscan等扫描器测试网站是否存在以下类型的文件:

  (1) .inc、.asa的文件扩展名不能由服务器返回,因为他们关系到系统敏感信息;

  (2) 下面的文件扩展名关系到一些文件名,一旦访问这些文件,浏览器就会显示或下载这些文件。因此,确认对带有下面扩展名的文件是否需要提供服务(不是多余的),并确定他们不包含敏感信息。

  a) .zip、.tar、.gz、.tgz、.rar……(压缩)存档文件;

  b) .java 没有必要返回java源代码文件;

  c) .txt 文本文档;

  d) .doc、.rtf、.xls、.ppt…… Office文档;

  · 判断条件:

  符合:不存在包含敏感信息的文件或完全没必要返回的文件;

  不符合:

  a) 中风险:存在包含敏感信息的文件或完全没必要返回的文件,未泄露敏感信息;

  b) 高风险:存在包含敏感信息的文件或完全没必要返回的文件,泄露敏感信息;

  10) 非安全的http方法检测

  · 测试目的:检测WEB系统中是否允许非安全的http方法;

  · 测试对象:网络WEB系统;

  · 测试工具:WVS;

  · 必备材料:

  (1) 委托单位提供被检应用系统的URL;

  (2) 委托单位提供被检系统登录帐号;

  · 测试方法:

  1、使用WVS等扫描工具检查是否存在非安全的http方法。例如:

  PUT 向指定的目录上载文件;

  DELETE 删除指定的资源;

  COPY 将指定的资源复制到Destination消息头指定的位置;

  MOVE 将指定的资源移动到Destination消息头指定的位置;

  SEARCH 在一个目录路径中搜索资源;

  PROPFIND 获取与指定资源有关的信息,如作者、大小与内容类型;

  TRACE 在响应中返回服务器收到的原始请求;

  (1) 利用发包工具发送options方法验证网站是否支持put/delete/move/copy/trace等危险的http方法。(发包工具:curl等)例如curl -v -X OPTIONS http://www.example.com/test/ 查看响应返回方法。验证PUT方法使用 curl -v -T test.html http://www.example.com/test/test.html;

  · 判断条件:

  符合:不能成功利用上述七种方法;

  不符合:

  中风险:存在可利用的不安全的http方法;

  11) 开源第三方插件检测

  · 测试目的:检查应用中使用的三方插件是否是存在漏洞的版本;

  · 测试对象:网络WEB系统;

  · 测试工具:firebug;

  · 必备材料:

  (1) 委托单位提供被检应用系统的URL;

  (2) 委托单位提供被检系统登录帐号;

  · 测试方法:

  (1) 使用Firebug等前端调试工具查看应用中引用的脚本,查看是否使用开源的js插件,例如jQuery、jQueryUI、ewebeditor、ckeditor、fckeditor、kindeditor

  (2) 常见的漏洞如下:

  jQuery1.8.0和1.10.0之间的jQueryUI存在XSS漏洞;

  fckeditor上传漏洞;

  · 判断条件:

  符合:未使用存在漏洞的第三方插件或使用插件的版本不存在漏洞;

  不符合:

  (1)中风险:使用第三方插件但无法验证该漏洞;

  (2)高风险:使用第三方插件且存在漏洞;

  12) 引用第三方不可控脚本/URL检测

  · 测试目的:检查页面系统中是否存在不可控的脚本引用;

  · 测试对象:网络WEB系统;

  · 测试工具:AWVS;

  · 必备材料:

  (1) 委托单位提供被检应用系统的URL;

  (2) 委托单位提供被检系统登录帐号;

  (3) 委托单位提供第三方外链的审批证明;

  · 测试方法:

  (1) 使用AWVS扫描,查看扫描记录中是否含有非委托单位认可的链接地址;

  (2) 定位链接所在的页面;

  (3) 查阅发现的第三方外链审批证明;

  · 判断条件:

  符合:不存在外链或通过外链方式引用的脚本;

  不符合:

  (1) 中风险:存在不可控外链或脚本,但可提供审批记录;

  (2) 高风险:存在不可控外链或脚本,且未经过审批;

  13) Flash跨域访问测试

  · 测试目的:检查Flash跨域策略文件crossdomain.xml设置是否符合要求;

  · 测试对象:网络WEB系统;

  · 测试工具:wwwscan;

  · 必备材料:委托单位提供被检应用系统的URL;

  · 测试方法:

  (1) 使用wwwscan对应用进行扫描;

  (2) 查看扫描结果中是否有crossdomain.xml;

  (3) 对含有crossdomain.xml的路径进行手工校验,查看策略设置:

  crossdomain.xml一般设置如下

  不正确的crossdomain.xml策略将导致严重的安全问题,如信息泄露、CSRF等。在进行安全评估时,重点关注以下几点:

  a) allow-access-from标签的domain属性检测:domain属性应根据最小化原则按需设置,仅允许可信任的来源跨域请求本域内容。禁止将该属性值设置为“*”;

  b) allow-http-request-headers-from标签的domain属性检测:domain属性应根据最小化原则按需设置,仅允许可信任的来源向本域跨域发送内容。禁止将该属性值设置为“*”;

  c) site-control标签的permitted-cross-domain-policies属性检测:根据业务的实际需求及可行性,对该属性做相应设置。禁止将该属性值设置为“all”;

  · 判断条件:

  符合:

  (1) allow-access-from属性不为*;

  (2) allow-http-request-headers-from属性不为*;

  (3) site-control标签的permitted-cross-domain-policies属性不为all;

  不符合:

  (1) allow-access-from属性为*;

  (2) allow-http-request-headers-from属性为*;

  (3) site-control标签的permitted-cross-domain-policies属性为all;

  8.4.2. 身份管理测试

  1) 用户名复杂度检查

  · 测试目的:验证应用系统账户复杂度是否符合要求,检查使用admin、administrator、root、system等简单易被猜解的用户名作为登录名的情况;

  · 测试对象:网络WEB系统账号;

  · 测试工具:无

  · 必备材料:委托单位提供应用系统的用户名列表或清单;

  · 测试方法:检查用户名列表,查看是否含有类似于admin、administrator、root、system、test、test111等简单的用户名;

  · 判断条件:

  符合:不存在复杂度较低的用户名;

  不符合:

  低风险:存在复杂度较低的用户名;

  2) 账号枚举测试

  · 测试目的:验证系统账号和密码是否可以通过系统返回的错误提示进行猜测;

  · 测试对象:网络WEB系统;

  · 测试工具:无

  · 必备材料:委托单位提供应用系统的用户名列表或清单;

  · 测试方法:

  (1) 在登录用户名处输入一个不存在的用户名;

  (2) 登陆后,观察是否提示“用户名不存在”,“无效的用户名”等可以作为攻击者判断用户名是否输入正确的关键字;

  · 判断条件:

  符合:无法通过返回关键字对系统可用账号进行枚举;

  不符合:

  中风险:可以通过返回关键字对系统可用账号进行枚举;

  3) 账号密码共用检查(非必要)

  · 测试目的:检查委托单位各个业务系统的用户名及密码是否有重复;

  · 测试对象:网络WEB系统;

  · 测试工具:无

  · 必备材料:委托单位提供每套应用系统的用户名列表或清单;

  · 测试方法:对省公司的不同业务系统的用户名和密码进行比较,检查是否有账号密码相同;

  · 判断条件:

  符合:

  (1) 不同用户名对应密码都不相同;

  (2) 被检查系统中不存在帐号密码相同的情况;

  不符合:

  (1) 中风险:不同用户名使用相同密码;

  (2) 高风险:同样的账户名密码可以在多个系统上登录;

  8.4.3. 认证管理测试

  1) 弱锁定机制测试

  · 测试目的:测试系统帐号锁定机制的健壮性;

  · 测试对象:系统用户登陆模块、账号集中管理系统、堡垒机;

  · 测试工具:无

  · 必备材料:客户提供应用系统的所有登陆页面及用户名;

  · 测试方法:

  (1) 尝试使用错误的密码登录5次,查看账户是否被锁定;

  (2) 等待10分钟再次测试,确认该用户是否还处于锁定状态;

  · 判断条件:

  符合:在多次尝试错误的帐号密码登录后。账户被锁定至少10分钟;

  不符合:

  中风险:账户在多次尝试失败后不会自动锁定;

  2) 认证模式绕过测试

  · 测试目的:检查目标系统是否可以跳过登录页面直接访问需要认证通过后才能访问的内部网页;

  · 测试对象:系统用户登陆模块、账号集中管理系统、堡垒机;

  · 测试工具:无

  · 必备材料:委托单位提供应用系统的功能点URL字典;

  · 测试方法:可以尝试通过篡改和假装通过验证的手法绕过验证措施,绕过Web应用验证架构的方法有:

  (1) 直接的页面请求;

  (2) 参数修改;

  (3) 会话ID预测;

  (4) SQL注入;

  · 判断条件:

  符合:认证模式不可绕过,所有需要认证方可访问内部页面都不能直接被访问到;

  不符合:

  高风险:认证模式可绕过,不登录即可访问内部页面;

  3) 密码规则检查/弱口令检查

  · 测试目的:检查目标系统的账号密码规则,是否允许设置不符合密码规则的口令;

  · 测试对象:系统用户登陆模块、账号集中管理系统、堡垒机中的密码修改功能模块;

  · 测试工具:无;

  · 必备材料:委托单位提供应用系统的帐号和密码;

  · 测试方法:

  (1) 系统密码功能模块中修改密码输入不符合下属密码规则的任意组合字符串,确认密码是否可以修改成功。

  密码规则如下:密码至少包含以下四种类别的字符中的三种:

  a) 英语大写字母 A, B, C, … Z;

  b) 英语小写字母 a, b, c, … z;

  c) 西方阿拉伯数字 0, 1, 2, … 9;

  d) 非字母数字字符,如标点符号,@, #, $, %, &, *等;

  e) 另外,口令中不能含有与IP地址、账号名、公司名、人名、生日、记念日期、电话、E-mail等有关的字符;

  (2) 依据设置的字典库进行暴力破解(字典库应包括以用户名加连续数字、键盘连续输入等弱口令,字典库可由委托单位提供或万方技术人员提供);

  · 判断条件:

  符合:

  a) 用户名口令的复杂度符合要求;

  b) 密码不可被暴力破解;

  不符合:

  a) 中风险:用户名口令的复杂度不符合要求;

  b) 高风险:密码可被暴力破解;

  4) 图形验证码限制测试

  · 测试目的:检查目标系统的验证码是否有使用次数限制;

  · 测试对象:系统用户登陆模块;

  · 测试工具:burpsuite;

  · 必备材料:委托单位提供应用系统的包含验证码功能的URL;

  · 测试方法:

  (1) 输入正确验证码,使用burpsuite抓取提交的数据包;

  (2) 将数据包发送到repeater标签下,将数据包不断提交,观察返回页面;

  (3) 查找返回数据包是否含有“验证码失效”关键字;

  · 判断条件:

  符合:含有验证码失效关键字;

  不符合:

  中风险:返回数据包中不含有“验证码失效”关键字;

  5) 短信验证码暴力破解测试

  · 测试目的:检查目标系统发送的手机短信验证码是否可以在短时间内被成功猜解得到;

  · 测试对象:系统用户登陆模块中的短信验证功能;

  · 测试工具:手机

  · 必备材料:委托单位提供应用系统的包含发送短信功能的URL;

  · 测试方法:

  (1) 检查返回的手机短信验证码是否大于等于6位;

  (2) 检查返回短信验证码是否在时间和次数上分别做限制;

  · 判断条件:

  符合:

  a) 手机短信验证码大于等于6位;

  b) 短信验证码有效期小于等于5分钟,且不可重复使用;

  不符合:

  中风险:手机短信验证码小于6位,或短信验证码有效期大于5分钟或未在使用次数上做限制;

  6) 任意用户密码重置测试

  · 测试目的:检查密码重置处的URL链接是否可以篡改实现对任意用户的密码进行修改;

  · 测试对象:系统用户登陆模块、账号集中管理系统、堡垒机中的密码修改功能模块;

  · 测试工具:burpsuite

  · 必备材料:委托单位提供应用系统的二个用户名和其密码;

  · 测试方法:

  (1) 使用burpsuite抓取密码重置处的URL链接地址;

  (2) 对URL的id、userid等参数的值进行遍历;

  (3) 观察其它用户的密码是否被重置成功;

  · 判断条件:

  符合:其它用户的密码均没有被重置成功;

  不符合:

  高风险:其它用户的密码被重置成功;

  7) 短信炸弹漏洞检查

  · 测试目的:检查目标应用系统是否限制手机短信的发送次数;

  · 测试对象:系统涉及手机短信模块;

  · 测试工具:burpsuite;

  · 必备材料:委托单位提供应用系统的包含短信发送功能的URL;

  · 测试方法:

  (1) 输入手机号后,使用burpsuite抓取提交的数据包;

  (2) 使用burpsuite的intruder功能不断对数据包进行提交;

  (3) 查看自己的手机是否可以不断收到短信;

  · 判断条件:

  符合:无法进行短信炸弹攻击;

  不符合:

  高风险:可以不断接收到短信;

  8.4.4. 授权管理测试

  1) 目录遍历测试

  · 测试目的:检测目标系统是否存在目录遍历;

  · 测试对象:网络WEB系统;

  · 测试工具:AWVS;

  · 必备材料:

  (1) 委托单位提供被检应用系统的URL;

  (2) 委托单位需提供被检系统登录帐号;

  · 测试方法:通过AWVS扫描,查看扫描结果中,是否存在Directory Listing漏洞;

  · 判断条件:

  符合:不存在Directory Listing漏洞,目录无法遍历

  不符合:

  a) 中风险:目录被成功遍历,但未列出admin、manage敏感目录及包含密码、个人信息等敏感文件;

  b) 高风险:目录被成功遍历,列出了admin、manage敏感目录或包含密码、个人信息等敏感文件;

  2) 账号提权测试

  · 测试目的:检查目标系统是否可以用低权限账户访问高权限账户资源或信息;

  · 测试对象:网络WEB系统;

  · 测试工具:burpsuite;

  · 必备材料:委托单位需提供被测系统的高权限账号一个和低权限帐号两个;

  · 测试方法:

  (1) 使用低权限帐号登录系统;

  (2) 使用burpsuite抓取低权限账户的数据访问数据包;

  (3) 修改URL参数为高权限账户,重放数据包,查看返回数据是否为高权限帐号所能访问到的资源;

  · 判断条件:

  符合:低权限帐号无法访问高权限帐号的资源或信息;

  不符合:

  高风险:低权限帐号可以通过URL篡改等方式访问高权限帐号的信息;

  8.4.5. 会话管理测试

  1) cookie伪造测试

  · 测试目的:检查目标系统的会话中是否存在cookie伪造的缺陷;

  · 测试对象:网络WEB系统;

  · 测试工具:burpsuite;

  · 必备材料:

  (1) 委托单位提供被检应用系统的URL;

  (2) 委托单位需提供被检系统登录帐号;

  · 测试方法:

  (1) 使用一个错误的业务系统的用户名和密码登入业务系统;

  (2) 使用burpsuite抓取业务系统的cookie值,观察其中是否有Isenter=no之类的示意明显的属性;

  (3) 使用burpsuite将Isenter值修改yes,观察是否进入业务系统;

  · 判断条件:

  符合:伪造cookie后,没有进入业务系统;

  不符合:

  高风险:伪造cookie后,成功进入业务系统;

  2) 传输加密测试

  · 测试目的:检查目标系统的认证过程中传输是否加密(用户名密码明文传输、敏感数据传输加密);

  · 测试对象:网络WEB系统;

  · 测试工具:Fiddler;

  · 必备材料:

  (1) 委托单位提供被检查应用系统URL;

  (2) 委托单位提供应用系统普通权限账户密码;

  · 测试方法:使用浏览器打开应用系统,,输入账号密码登陆系统,使用Fiddler2抓包查看传输数据中是否存在明文密码或简单加密(如:base64、DES等)的密码等信息;

  · 判断条件:

  符合:传输数据不包含明文密码、连接字符串、明文身份证、明文地址其他敏感信息则合格;

  不符合:

  中风险:传输数据包含明文密码、连接字符串、明文身份证、明文地址等其他敏感信息;

  3) 会话终止及浏览器缓存管理

  · 测试目的:检查核心应用系统中,当处于登录状态的用户直接关闭浏览器时,是否有会话安全终止处理机制;

  · 测试对象:网络WEB系统;

  · 测试工具:Cookie Manager;

  · 必备材料:

  (1) 委托单位提供被检查应用系统URL;

  (2) 委托单位提供应用系统普通权限账户密码;

  (3) 委托单位提供当前系统中设定的会话超时时间参数;

  · 测试方法:

  (1) 在登陆状态下,使用Cookie Manager保存Cookie;

  (2) 直接关闭处于登录状态的浏览器,使用Cookie Manager修改现有Cookie为原Cookie,查看是否可以登陆;

  (3) 查看Cookie是否配置超时Expires属性,在客户端超时后,检查用户是否自动退出;

  (4) 如果没有设置Expires属性,和管理员确认超时时间,在客户端超时后,检查用户是否自动退出;

  · 判断条件:

  符合:

  a) 关闭浏览器后用户自动登出;

  b) 超时后用户自动登出;

  不符合:

  低风险:超时后用户不会自动登出;

  高风险:关闭浏览器后用户不会自动登出;

  4) Cookies属性测试

  · 测试目的:检查目标系统Cookie的Secure、HttpOnly、Domain、Path和Expires属性是否复合安全设置准则;

  · 测试对象:网络WEB系统;

  · 测试工具:AWVS、Cookie Manager;

  · 必备材料:

  (1) 委托单位提供被检查应用系统URL;

  (2) 委托单位提供应用系统普通权限账户密码;

  · 测试方法:

  (1) 使用WVS等扫描工具检查是否存在未设置HttpOnly或Sercure的Cookies;

  (2) 使用Cookie Manager查看Cookie的Secure、HttpOnly、Domain、Path和Expires属性,各种属性详细测试规则如下:

  a) Secure属性:当cookie包含敏感信息或者当cookie是会话令牌时,应该使用使用加密渠道发送这个cookie。例如,登录应用程序后,使用cookie设置会话令牌,然后验证是否使用“;secure”标识。如果没有,浏览器会认为能安全通过HTTP等未加密渠道;

  b) HttpOnly属性:即使部分浏览器不支持此属性,但应该使用使用这个属性。这个属性能防止客户端脚本使用该cookie,加强cookie的安全。因此请检测是否设置了HttpOnly属性;

  c) Domain属性:确认Domain没有设置的过于松散。如上所述,只应该将Domain设置为设置接收该cookie的服务器。例如:如果应用存在于app.mysite.com服务器上,那么他应该被设置成“;domain=app.mysite.com”而不能设置成“;domain=.mysite.com”,因为这种设置会允许其他存在漏洞的服务器接收到cookie;

  d) Path属性;确认Path属性如Domain属性一样没有设置的过于松散。即使Domain属性配置的足够严格,但如果Path是设置在根目录“/”下,它同样会允许其他存在漏洞的应用接收到该cookie。例如:如果应用程序存在于/myapp/,并且确认cookie路径设置为“;path=/myapp/”,而不是设置为“;path=/”或“;path=/myapp”。注意在myapp之后必须使用“/”。如果没有使用,浏览器将cookie发送给任何匹配“myapp”的路径,如“myapp-exploited”;

  e) Expires属性;如果该属性被设置成将来的一个时间,就要确认它不包含任何敏感信息。例如如果cookie设置为“;expires=Fri,13-Jun-2015 13:00:00 GMT”(2015年6月13日),而当前时间是2014年12月12日,接下来就得检测该cookie。如果cookie是存储在用户硬盘中的会话令牌,那么有权限读取这个cookie的攻击者或本地用户(如管理员)就能在截止日期前通过重复提交这个令牌进入应用程序;

  · 判断条件:

  符合:

  a) 扫描报告中不存在未设置HttpOnly或Secure的Cookies报警;

  b) Domain或者Path设置了合理的路径;

  c) Expires未设置过长的有效时间;

  不符合:

  中风险:

  a) 扫描报告中存在未设置HttpOnly或Secure属性;

  b) Domain或者Path设置了合理的路径;

  c) Expires未设置过长的有效时间;

  5) 身份标识测试

  · 测试目的:测试目标系统应用登录操作应进行身份标识和鉴别,确保会话标识随机并且唯一,严禁匿名登录;

  · 测试对象:系统用户登陆模块;

  · 测试工具:Cookie Manager;

  · 必备材料:

  (1) 委托单位提供被检查应用系统URL;

  (2) 委托单位提供应用系统普通权限账户密码;

  · 测试方法:打开浏览器尝试登录应用系统5次,使用Cookie Manager查看当前Cookie,查看会话标识(如Session,Token等字段)是否存在递增,递减等可预见性规律;

  · 判断条件:

  符合:会话标识不存在可预见规律则合格;

  不符合:

  高风险:会话标识存在可预见性规律;

  6) 会话变量泄露测试

  · 测试目的:检查目标系统登录、验证等页面的隐藏域中是否存在密码信息,Web应用密码保存在页面的隐藏域中;

  · 测试对象:系统用户登陆模块和用户管理模块;

  · 测试工具:Firebug;

  · 必备材料:

  (1) 委托单位提供被检应用系统的URL;

  (2) 委托单位提供被检系统登录帐号;

  · 测试方法:使用Firebug等前端调试工具查看页面源码,检查页面中的字段是否存在密码等信息;

  · 判断条件:

  符合:隐藏域中不存在密码信息;

  不符合:

  高风险:隐藏域中存在密码等信息;

  7) CSRF测试

  · 测试目的:检查目标应用系统是否存在跨站请求伪造漏洞;

  · 测试对象:网络WEB系统;

  · 测试工具:无;

  · 必备材料:

  (1) 委托单位提供被检应用系统的URL;

  (2) 委托单位提供被检系统登录帐号及密码;

  · 测试方法:检查业务系统是否采用了token验证机制;

  · 判断条件:

  符合:业务系统采用token验证机制;

  不符合:

  中风险:业务系统没有采用token验证机制;

  8.4.6. 输入验证测试

  1) 模拟跨站脚本攻击

  · 测试目的:检查目标系统的web应用是否存在跨站脚本漏洞;

  · 测试对象:网络WEB系统;

  · 测试工具:AWVS;

  · 必备材料:委托单位提供目标应用系统的完整列表清单 ,清单中必须包含有目标场景URL(由委托单位确定)、系统主机服务详细清单、系统管理员的帐号密码;

  · 测试方法:

  (1) 寻找可疑点:通过Web应用扫描工具AWVS的跨站脚本策略检查各web应用系统是否存在跨站脚本漏洞;

  (2) 确认可疑点是否存在跨站:在可疑点的输入点输入双引号尖括号等进行手工验证,也可以输入script、iframe等HTML标签进行尝试确认,查看是否能够回显输入的;

  · 判断条件:

  符合:AWVS扫描报告中不涉及跨站脚本漏洞;

  不符合:

  高风险:应用中存在存储型跨站或反射型跨站;

  2) HTTP参数污染测试

  · 测试目的:检查目标系统关键场景的URL中参数是否可以篡改,是否存在不安全的直接对象引用的隐患;

  · 测试对象:网络WEB系统;

  · 测试工具:无

  · 必备材料:委托单位提供目标应用系统的完整列表清单 ,清单中必须包含有目标场景URL(由委托单位确定)、系统主机服务详细清单、较高权限的帐号;

  · 测试方法:

  (1) 对参数化URL进行收集

  (2) 对每一个URL进行同名参数的连续赋值,例如id=1,构造URL成如下格式,id=1&id=222222。将URL复制到到浏览器中,查看网页是否跳转到不同的正确页面。

  · 判断条件:

  符合:参数化URL加测试语句后,页面回显错误;

  不符合:

  高风险:参数化URL加测试语句后,网页跳转到不同的正确页面,并且返回错误提示;

  3) FLASH跨站脚本测试

  · 测试目的:检查目标系统网站的所有SWF文件是否存在跨站攻击漏洞;

  · 测试对象:网络WEB系统;

  · 测试工具:AWVS;

  · 必备材料:委托单位提供目标应用系统的完整列表清单 ,清单中必须包含有目标场景URL(由委托单位确定)、系统主机服务详细清单、较高权限的帐号;

  · 测试方法:

  (1) 使用AWVS等扫描工具扫描网站;

  (2) 查看扫描结果中是否报告flash跨站漏洞;

  (3) 手工对网站的swf文件的可控参数进行测试,例如:XSSTest.swf?jsFunction=alert(/XSS/);

  (4) 复制到浏览器当中,查看是否弹窗;

  · 判断条件:

  符合:AWVS扫描报告中未涉及flash跨站漏洞,手工测试之后,浏览器未弹窗;

  不符合:

  a) 高风险:AWVS报告含有flash跨站漏洞,或手工测试浏览器弹窗;

  b) 中风险:AWVS报告中含有flash跨站漏洞,但手工测试浏览器未弹窗;

  4) 模拟SQL注入攻击

  · 测试目的:检查目标系统的数据库调用语句是否存在SQL注入缺陷;

  · 测试对象:网络WEB系统中包含oracle、mysql、sqlserver、access、postgresql、NoSQL调用的场景;

  · 测试工具:AWVS、burpsuite、sqlmap、havij;

  · 必备材料:委托单位提供目标应用系统的完整列表清单 ,清单中必须包含有数据库调用的目标场景URL(由委托单位确定)、系统主机服务详细清单、较高权限的帐号;

  · 测试方法:

  (1) 寻找可疑点:使用AWVS扫描器对目标网站进行扫描以找出所有的SQL注入可疑点,对可能存在的注入点进行以下操作;

  (2) 确认可疑点是否存在注入:

  a) (1)手工确认:通过在可疑点末尾加上单引号 或者 and、or等逻辑语句,根据页面的输出结果进行判断;

  b) (2)工具确认:如SQLMAP(sqlmap -u url地址), pangolin,havij,阿D

  c) 确认是否存在以下情况:

  (a) 是否存在使用 "or"="or" ,'or'='or' ,"or"="or,'or'='or等万能口令登陆情况;

  (b) 对于数字型参数,可使用单引号value’或value and 1=1和value and 1=2进行测试。当使用单引号进行测试时如果服务器端返回SQL错误,或使用value and 1=1和value and 1=2进行测试时,服务端两次返回的内容不一致,则说明存在SQL注入漏洞;

  (c) 对于字符型参数,可使用单引号value’或value and ‘a’=’a和value and ‘a’=’b进行测试。当使用单引号进行测试时如果服务器端返回SQL错误,或使用value and ‘a’=’a和value and ‘a’=’b进行测试时,服务端两次返回的内容不一致,则说明存在SQL注入漏洞;

  · 判断条件:

  符合:不存在SQL注入;

  不符合:

  高风险:AWVS提示存在注入漏洞,或sqlmap、havij、pangolin通过注入成功获取数据;

  5) 模拟LDAP注入检测

  · 测试目的:检查目标系统是否存在LDAP注入漏洞;

  · 测试对象:网络WEB系统登陆模块;

  · 测试工具:无

  · 必备材料:委托单位提供目标应用系统的完整列表清单 ,清单中必须包含有目标场景URL(由委托单位确定)、系统主机服务详细清单、较高权限的帐号;

  · 测试方法:

  (1) 使用AWVS等扫描工具对目标网站进行扫描以发现所有的LDAP的可疑点,对可能存在LDAP的点进行手工测试;

  (2) 在可疑点末尾加上)(type=Epson*)、)(uid=*)等payload,观察页面是否返回了敏感信息;

  (3) 在登陆页面输入username=admin)(&)),密码随便输入,观察是否可以绕过登陆页面,进入目标系统;

  · 判断条件:

  符合:AWVS扫描报告不存在LDAP漏洞;加入payload后,页面没有返回敏感信息;登陆页面不能绕过;

  不符合:

  高风险:扫描报告中提示存在LDAP漏洞,或手工加入payload,页面返回敏感信息,或登陆页面被绕过;

  6) 文件包含漏洞检测

  · 测试目的:检查目标系统是否存在本地文件/远程文件包含文件包含漏洞;

  · 测试对象:网络WEB系统;

  · 测试工具:AWVS;

  · 必备材料:委托单位提供目标应用系统的完整列表清单 ,清单中必须包含有目标场景URL(由委托单位确定)、系统主机服务详细清单、较高权限的帐号;

  · 测试方法:使用AWVS等扫描工具对网站的所有URL进行爬行,检查是否存在文件包含漏洞;

  · 判断条件:

  符合:扫描报告中未涉及文件包含漏洞;

  不符合:

  高风险:扫描报告中提示文件包含漏洞;

  7) 模拟命令执行注入测试

  · 测试目的:检查目标系统是否存在命令注入漏洞;

  · 测试对象:网络WEB系统;

  · 测试工具:AWVS;

  · 必备材料:委托单位提供目标应用系统的完整列表清单 ,清单中必须包含有目标场景URL(由委托单位确定)、系统主机服务详细清单、较高权限的帐号;

  · 测试方法:

  (1) 寻找可疑点:使用AWVS扫描器对目标网站进行扫描,并生成扫描报告;

  (2) 手工确定可疑点是否存在命令注入漏洞;

  a) 对Linux系统,在参数化URL末尾加上|%20cat%20/etc/passwd;

  b) 对Windows系统,在参数化URL末尾加上;echo test;

  · 判断条件:

  符合:

  a) 对于Linux系统,没有返回passwd文件的内容;

  b) 对于Windows系统,没有返回test文本信息;

  不符合:

  高风险:成功执行系统命令,对于Linux系统,返回passwd文件的内容;对Windows系统返回test关键字;

  8.4.7. 错误处理测试

  1) 报错页面合规性检查

  · 测试目的:检查目标系统报错页面是否含有系统后台信息、错误代码、版本号等信息;

  · 测试对象:网络WEB系统中的报错页面;

  · 测试工具:AWVS;

  · 必备材料:委托单位提供的系统报错页面url清单及触发方式;

  · 测试方法:

  (1) 使用AWVS等扫描工具扫描网站;

  (2) 查看扫描结果中Http请求返回码为500的页面;

  · 判断条件:

  符合:页面中不存在后台敏感信息、错误代码或版本号;

  不符合:

  中风险:页面中存在后台敏感信息、错误代码或版本号;

  8.4.8. 逻辑测试

  1) 模拟任意文件上传检测

  · 测试目的:检测目标系统是否存在任意文件上传的设计漏洞;

  · 测试对象:网络WEB系统中的上传页面;

  · 测试工具:AWVS;

  · 必备材料:委托单位提供目标应用系统的完整列表清单 ,清单中必须包含有上传功能场景的URL(由委托单位确定)、系统主机服务详细清单、较高权限的帐号;

  · 测试方法:

  (1) 使用AWVS扫描器对目标网站进行扫描以找出所有的上传可疑点,对可能存在的上传点进行以下操作;

  (2) 尝试直接上传木马(webshell或者脚本文件);

  (3) 尝试绕过限制进行上传,例如进行拦截改包、解析漏洞等。(可使用BurpSuite等工具);

  (4) 判断服务器后台是否做了上传文件格式限制,案例如下:

  a) 文件名大小写绕过:例如AsP、pHp、JSp等;

  b) 黑名单绕过:例如asa、cer等;

  c) FCKEditor上传php2、php4、inc、pwml、asa、cer等格式;

  d) 截断绕过:1.php[\0].jpg,test.asp%00.jpg截断绕过;

  e) 解析漏洞;

  f) II6:上传1.asp;1.jpg格式的文件;

  g) Nginx下的PHP CGI解析漏洞,上传1.jpg文件,然后访问http://website.com/1.jpg/1.php,1.jpg文件可能会以php文件执行;

  h) Apache上传绕过:phpshell.php.rar.rar.rar.rar;

  · 判断条件:

  符合:不允许任意文件上传;

  不符合:

  高风险:成功上传恶意脚本文件,并成功解析并具有webshell功能;

  中风险:成功上传恶意脚本文件,但脚本文件无法正常解析;

  2) 模拟任意文件下载检测

  · 测试目的:检测目标系统是否存在任意文件下载的设计漏洞;

  · 测试对象:网络WEB系统中的下载页面;

  · 测试工具:AWVS;

  · 必备材料:委托单位提供目标应用系统的完整列表清单 ,清单中必须包含有下载功能场景的URL(由委托单位确定)、系统主机服务详细清单、较高权限的帐号;

  · 测试方法:

  (1) 通过扫描器AWVS扫描发现任意文件下载漏洞的URL;

  (2) 更改参数的值为其他路径和文件进行验证,在浏览器地址栏中尝试以下URL:

  对于UNIX/Linux服务器可以尝试下载/etc/passwd;http://www.exmaple.com/viewfile.do?filename=../etc/passwd

  http://www.exmaple.com/viewfile.do?filename=../../etc/passwd

  http://www.exmaple.com/viewfile.do?filename=../../../etc/passwd

  http://www.exmaple.com/viewfile.do?filename=../../../../etc/passwd

  http://www.exmaple.com/viewfile.do?filename=../../../../../etc/passwd

  对于Windows服务器可以尝试下载

  http://www.exmaple.com/viewfile.do?filename=c:\boot.ini文件;

  (3) 观察页面返回信息,如果可以获取到passwd或boot.ini文件,则说明漏洞存在;

  · 判断条件:

  符合:不允许任意文件下载;

  不符合:

  a) 高风险:可以下载到系统/etc/passwd文件或c:\boot.ini文件;

  b) 中风险:允许任意文件下载,但是下载/etc/shadow或c:\boot.inin文件时,提示拒绝访问或无法下载到;

  8.4.9. 客户端测试

  1) 未验证的URL跳转检测

  · 测试目的:检测目标系统登录功能返回登录前页面功能是否可以跳转至任意URL;

  · 测试对象:WEB系统登陆模块;

  · 测试工具:burpsuite;

  · 必备材料:

  (1) 委托单位需提供被检应用系统的URL;

  (2) 委托单位需提供被检系统登录帐号,账号权限没有要求;

  · 测试方法:

  对于URL跳转的实现一般会有几种实现方式:

  a) META标签内跳转;

  b) javascript跳转;

  c) header头跳转;

  通过以GET或者POST的方式接收将要跳转的URL,然后通过上面的几种方式的其中一种来跳转到目标URL。一方面,由于用户的输入会进入Meta,javascript,http头所以都可能发生相应上下文的漏洞,如xss等等,但是同时,即使只是对于URL跳转本身功能方面就存在一个缺陷,因为会将用户浏览器从可信的站点导向到不可信的站点,同时如果跳转的时候带有敏感数据一样可能将敏感数据泄漏给不可信的第三方。

  检测手段为:

  a) 使用Burp修改页面中的跳转地址参数,参考的参数如redirect=、jumpto= 等;

  b) 查看是否可以跳转至指定页面;

  · 判断条件:

  符合:不能跳转至指定页面或提示错误;

  不符合:

  中风险:可以跳转到指定页面;

  8.4.10. 常见可利用漏洞排查

  · 测试目的:检查目标系统是否存在高危安全漏洞;

  · 测试对象:系统主机、网络设备、数据库、中间件等;

  · 测试工具:K8_Struts2_EX、Nessus等扫描器;

  · 必备材料:

  (1) 委托单位提供被检应用系统的URL;

  (2) 委托单位提供被检系统登录帐号密码;

  (3) 委托单位提供被检应用系统的服务器IP地址;

  · 测试方法:

  (1) 利用K8_Struts2_EX、Nessus等扫描器对目标系统进行扫描;

  (2) 整理、查阅扫描报告;

  · 判断条件:

  符合:扫描报告未提示存在该漏洞;

  不符合:扫描报告中提示有以下漏洞中的其中一项:

  a) 扫描报告中提示存在“Struts2漏洞”;

  b) 扫描报告中提示存在“心脏出血”漏洞;

  c) 扫描报告中提示存在“bash命令执行漏洞”漏洞;

  d) 扫描报告中提示存在“Oracle Tnslsnr空口令”漏洞;

  e) 扫描报告中提示存在“MS08-067远程溢出漏洞”漏洞;

  f) 扫描报告中提示存在“MS12-020远程溢出漏洞”漏洞;

  g) 扫描报告中提示存在“NTP服务monlist拒绝服务漏洞”漏洞;

  h) 扫描报告中提示存在“OpenSSL注入漏洞”漏洞;

  i) 扫描报告中提示存在“Apache HTTP Server畸形range和range-request选项处理远程拒绝服务漏洞”漏洞;

  j) 扫描报告中提示存在“远程桌面协议中间人攻击漏洞”漏洞;

  k) 扫描报告中提示存在“thc ssl dos攻击”漏洞;

  l) 扫描报告中提示存在“远程VNC服务空口令”漏洞;

  9. 应用安全检测服务风险规避措施

  应用安全测试过程中可能对业务产生影响,可以采取以下措施规避风险:

  (1) 在应用安全测试中不使用含有拒绝服务的测试策略;

  (2) 系统备份,为避免测试过程中出现异常被测试的系统应在测试之前做一次完整的系统备份,以便系统发生在难后恢复;

  (3) 应用安全测试时间尽量安排在业务量低谷的时段或者晚上;

  (4) 在应用安全测试过程中如果出现被评估系统没有响应的情况,应当立即停止测试工作,与相关人员一起分析情况,在确定原因后,并待正确恢复系统,采取必要的预防措施(比如调整测试策略等)之后,才可以继续进行;

  (5) 测试工程师与用户网站系统和安全管理人员保持良好沟通。随时协商解决出现的各种难题;

  (6) 测试方自控:由应用安全测试方对本次测透测试过程中的三方面数据进行完整记录:操作、响应、分析,最终形成完整有效的应用安全测试报告提交给用户;

  10.应用安全检测报告

  渗透测试报告是根据测试的实际情况,万方科技提交给用户本次渗透测试的最终成果。报告将会详细说明设备测试过程中得到的数据和信息,并且将会详细记录整个渗透测试的全部操作过程。

  11.应用安全检测服务输出

  万方科技按要求完成应用安全测试,根据测试结果完成《信息系统应用安全评估报告》等文档的编制。

 


18933931888

工作时间:法定工作日,9:00~18:00

广州万方计算机科技有限公司 ©版权所有 2019-2020 粤ICP备08124637号

本站文章内容部分来源于网络转载,版权归作者所有。文章内容仅代表作者独立观点,不代表本站立场,转载目的在于传递更多信息。如有侵权,请联系删除。