1. 黑盒渗透测试

通过采用适当测试手段,发现测试目标在服务系统认证及授权、代码审查、被信任系统的测试、文件接口模块报警响应等方面存在的安全漏洞,并现场演示再现利用该漏洞可能造成的客户资金损失,并提供避免或防范此类威胁、风险或漏洞的具体改进或加固措施。

应用程序及代码在开发过程中,由于开发者缺乏安全意识,疏忽大意极为容易导致应用系统存在可利用的安全漏洞。一般包括SQL注入漏洞、跨站脚本漏洞、上传漏洞、CSRF跨站请求伪造漏洞等。

1.1. SQL注入

SQL注入漏洞的产生原因是网站程序在编写时,没有对用户输入数据的合法性进行判断,导致应用程序存在安全隐患。SQL注入漏洞攻击就是利用现有应用程序没有对用户输入数据的合法性进行判断,将恶意的SQL命令注入到后台数据库引擎执行的黑客攻击手段。

1.2. 跨站脚本

跨站脚本攻击简称为XSS又叫CSS (Cross Site Script Execution),是指服务器端的CGI程序没有对用户提交的变量中的HTML代码进行有效的过滤或转换,允许攻击者往WEB页面里插入对终端用户造成影响或损失的HTML代码。

1.3. 表单绕过

表单绕过是指在登录表单时可以利用一些特殊字符绕过对合法用户的认证体系,这造成对用户输入的字符没有进行安全性检测,攻击者可利用该漏洞进行SQL注入攻击。

1.4. 上传漏洞

上传漏洞是指网站开发者在开发时在上传页面中针对文件格式(如asp、php等)和文件路径过滤不严格,导致攻击者可以在网站上上传木马,非法获取webshell权限。

1.5. 文件包含

目标网站允许用户调用网站程序函数进行文件包含,同时未对所包含文件的类型及内容进行严格过滤。

1.6. 已知木马

目标网站被攻击者植入恶意木马已知木马包括攻击者在进行网站入侵时留下的后门程序和网页挂马两种:后门程序严重危害网站安全,攻击者可利用该后门直接获取整个网站的控制权限,可对网站进行任意操作,甚至以网站为跳板,获取整个内网服务器的控制权限;网页挂马严重危害网站用户安全,用户对已被挂马的网页进行浏览和访问,其PC机自动下载并执行木马程序,导致用户PC机被攻击,同时严重危害网站的信誉和形象。

1.7. 敏感信息泄露

敏感信息泄漏漏洞指泄漏有关WEB应用系统的信息,例如,用户名、物理路径、目录列表和软件版本。尽管泄漏的这些信息可能不重要,然而当这些信息联系到其他漏洞或错误设置时,可能产生严重的后果。例如:某源代码泄漏了SQL服务器系统管理员账号和密码,且SQL服务器端口能被攻击者访问,则密码可被攻击者用来登录SQL服务器,从而访问数据或运行系统命令。

以下几个是比较典型的敏感信息泄露漏洞:

源码信息泄露;

备份信息泄露;

错误信息泄露;

测试账户泄露;

测试文件泄露;

绝对路径泄露;

1.8. 恶意代码

恶意代码泛指没有作用却带来危险的代码,其普遍的特征是具有恶意的目的;本身是一个独立的程序,通过执行发生作用。由于应用系统存在可被利用的安全漏洞,可能已被恶意人员植入恶意代码以获取相应权限或用以传播病毒。

1.9. 解析漏洞

解析漏洞是指没有对解析的内容进行严格的定义,被攻击者利用,可能会使系统对带有木马的文件进行了解析并执行,导致敏感信息被窃取、篡改,甚至是系统奔溃。

1.10. 远程代码执行漏洞

远程执行任意代码漏洞是指由于配置失误(有时我们在用户认证只显示给用户认证过的页面和菜单选项,而实际上这些仅仅是表示层的访问控制而不能真正生效),攻击者能够很容易的就伪造请求直接访问未被授权的页面。

1.11. 任意文件读取

系统开发过程中没有重视安全问题或使用不安全的第三方组件等,导致任意文件可读取,可导致入侵者获得数据库权限,并利用数据库提权进一步获得系统权限。

1.12. 目录遍历

目录遍历是指由于程序中没有过滤用户输入的../和./之类的目录跳转符,导致攻击者通过提交目录跳转来遍历服务器上的任意文件

1.13. 目录列出

目录列出是指攻击者通过对访问的URL分析,得到一个敏感的一级或二级目录名称,然后访问该目录,返回结果会将会显示指定目录及其子目录下的所有文件,从而可以寻找并获取敏感信息(如备份文件存放地址、数据库连接文件源码、系统敏感文件内容等),甚至可以通过在地址栏中修改URL来挖掘这个目录结构。

1.14. 跨站请求伪造

跨站请求伪造(Cross-site request forgery,缩写为CSRF),也被称成为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

1.15. 弱口令

弱口令通常有以下几种情况:用户名和密码是系统默认、空口令、口令长度过短、口令选择与本身特征相关等。系统、应用程序、数据库存在弱口令可以导致入侵者直接得到系统权限、修改盗取数据库中敏感数据、任意篡改页面等。

1.16. 不安全对象引用

不安全的对象引用是指程序在调用对象的时候未对该对象的有效性、安全性进行必要的校验,如:某些下载程序会以文件名作为下载程序的参数传递,而在传递后程序未对该参数的有效性和安全性进行检验,而直接按传递的文件名来下载文件,这就可能造成恶意用户通过构造敏感文件名而达成下载服务端敏感文件的目的。

1.17. 安全配置错误

某些HTTP应用程序,或第三方插件,在使用过程中由于管理人员或开发人员的疏忽,可能未对这些程序或插件进行必要的安全配置和修改,这就很容易导致敏感信息的泄露。而对于某些第三方插件来说,如果存在安全隐患,更有可能对服务器获得部分控制权限。

1.18. 链接地址重定向

重定向就是通过各种的方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。

而某些程序在重定向的跳转过程中,对重定向的地址未进行必要的有效性和安全性检查,且该重定向地址又很容易被恶意用户控制和修改,这就可能导致在重定向发生时,用户会被定向至恶意用户事先构造好的页面或其他URL,而导致用户信息受损。

1.19. 跳转漏洞

跳转漏洞是指网站用户访问时对其输入的参数没有进行验证,浏览器直接返回跳转到指定的URL,跳转漏洞可引发XSS漏洞,攻击者可利用这个漏洞进行恶意欺骗。

1.20. 后台管理

后台管理是指由于网站设计者的疏忽、后台管理员的配置不当或失误,导致攻击者可通过某些非法手段直接访问后台数据库页面,从而获取重要敏感信息,上传木马,甚至可获取后台管理员的权限,可进行删除、添加等非法操作,篡改后台数据库数据。

1.21. 会话管理

会话管理主要是针对需授权的登录过程的一种管理方式,以用户密码验证为常见方式,通过对敏感用户登录区域的验证,可有效校验系统授权的安全性,测试包含以下部分:

§ 用户口令易猜解

通过对表单认证、HTTP认证等方式的简单口令尝试,以验证存在用户身份校验的登录入口是否存在易猜解的用户名和密码

§ 是否存在验证码防护

验证码是有效防止暴力破解的一种安全机制,通过对各登录入口的检查,以确认是否存在该保护机制

§ 是否存在易暴露的管理登录地址

某些管理地址虽无外部链接可介入,但由于采用了容易猜解的地址(如:admin)而导致登录入口暴露,从而给外部恶意用户提供了可乘之机

§ 是否提供了不恰当的验证错误信息

某些验证程序返回错误信息过于友好,如:当用户名与密码均错误的时候,验证程序返回“用户名不存在”等类似的信息,通过对这一信息的判断,并结合HTTP Fuzzing工具便可轻易枚举系统中存在的用户名,从而为破解提供了机会。

会话管理主要是针对验证通过之后,服务端程序对已建立的、且经过验证的会话的处理方式是否安全,一般会从以下几个角度检测会话管理的安全性:

§ Session是否随机

Session作为验证用户身份信息的一个重要字符串,其随机性是避免外部恶意用户构造Session的一个重要安全保护机制,通过抓包分析Session中随机字符串的长度及其形成规律,可对Session随机性进行验证,以此来确认其安全性。

§ 校验前后Session是否变更

通过身份校验的用户所持有的Session应与其在经过身份验证之前所持有的Session不同

§ 会话储存是否安全

会话存储是存储于客户端本地(以cookie的形式存储)还是存储于服务端(以Session的形式存储),同时检测其存储内容是否经过必要的加密,以防止敏感信息泄露

1.22. 无效验证码

目标系统管理入口(或数据库外部连接)存在缺少验证码,攻击者可利用弱口令漏洞,通过进行暴力猜解,获取网站管理权限,包括修改删除网站页面、窃取数据库敏感信息、植入恶意木马;甚至以网站为跳板,获取整个内网服务器控制权限。

2. 白盒渗透测试(业务逻辑错误测试

2.1. 业务逻辑错误测试概述

由于逻辑错误并不涉及到程序自身的错误及异常,因此,在自动化检测过程中,逻辑错误是无法被识别的。

逻辑错误不但需要人工进行检测,而且还需要检测人员在检测之前对业务有所了解,因此,在检测前,测试人员往往会构造大量的数据进行测试,以学习业务的正常逻辑,从而进一步构造可能造成业务危害的错误逻辑数据,以达到逻辑测试的目的。

2.2. 业务逻辑错误的类型

2.2.1. 授权绕过漏洞

业务系统中针对未加权认证、平行认证、敏感接口等缺乏认证,从而导致的越权操作及后台可猜解漏洞。

通常对于是否存在授权绕过采用的测试方面有:

当用户没有通过验证时,是否有可能访问该资源?

是否有可能在注销后访问该资源?

是否有可能获得只应由拥有不同角色/特权的用户才能访问的功能和资源?

尝试作为管理员用户访问应用程序并追踪所有的管理职能。如果测试者用普通用户身份登录是否有可能访问这些管理职能?

因拥有不同权限,而导致操作被拒绝的用户是否有可能使用这些功能?

2.2.2. 截获和修改金额漏洞

由于支付业务功能缺乏针对提交方式、服务器验证返回等手段,导致的订单支付金额可修改漏洞。通常会导致重大损失。

例如:在北加州,某电视台的网站为了Web2.0化,开发了一个新的功能:允许网友们提供当地的天气信息,该信息将在电视新闻中滚动播出。为了防止垃圾信息,网友们提供的信息是经过人工审核后才播出的。但是这套系统在设计时还允许网友们对信息进行编辑。此处存在一个逻辑漏洞:审核通过后的信息,如果被用户重新编辑了,不会再次进行审核,也会直接发送到电视新闻的滚动条中。于是不少人利用这一逻辑漏洞,在电视新闻中发送各种垃圾信息。

2.2.3. 规避交易限制

类似于“截获和修改金额漏洞”,通过对会话的修改,突破交易限制。如:“某产品购买数量100份起,通过修改,可1份下单。”

例如:开发人员没有对购买的数量进行严格的限制,当购买的数量是一个负数时,总额的算法仍然是"购买数 量x单价=总价",所以这样就会导致有一个负数的需支付金额。若仍然支付成功,则可能导致购买到了一个负数数量的产品,也有可能返还相应的积分/金币到你的账户上。这种情况可能发生在一个有站内货币的网站。

2.2.4. 请求重放漏洞

未采用动态加密方法的认证过程,可能导致业务系统的认证功能失效。

例如对重要的操作,如转账操作,先正常进行一个正常的流程,在流程的重要环节,对提交的数据进行同时拦截,对取得的数据再次进行提交,如提交返回结果成功,则此流程存在重放攻击漏洞,反之则满足设计安全要求

2.2.5. 欺骗密码找回漏洞

目前业务系统对于用户的口令找回,有多种实现逻辑,其中很可能存在验证漏洞从而导致密码泄露。


Web系统渗透测试服务

本网站由阿里云提供云计算及安全服务