发布新日志

  • 【转】网站安全性测试体系

    2011-10-24 16:09:50

    网页安全检查点
    1 输入的数据没有进行有效的控制和验证
    1) 数据类型(字符串,整型,实数,等)
    2) 允许的字符集
    3) 最小和最大的长度
    4) 是否允许空输入
    5) 参数是否是必须的
    6) 重复是否允许
    7) 数值范围
    8) 特定的值(枚举型)
    9) 特定的模式(正则表达式)(注:建议尽量采用白名单)
    2 用户名和密码
    1) 检测接口程序连接登录时,是否需要输入相应的用户
    2) 是否设置密码最小长度(密码强度)
    3) 用户名和密码中是否可以有空格或回车?
    4) 是否允许密码和用户名一致
    5) 防恶意注册:可否用自动填表工具自动注册用户? (傲游等)
    6) 遗忘密码处理
    7) 有无缺省的超级用户?(admin等,关键字需屏蔽)
    8) 有无超级密码?
    9) 是否有校验码?
    10) 密码错误次数有无限制?
    11) 大小写敏感?
    12) 口令不允许以明码显示在输出设备上
    13) 强制修改的时间间隔限制(初始默认密码)
    14) 口令的唯一性限制(看需求是否需要)
    15) 口令过期失效后,是否可以不登陆而直接浏览某个页面
    16) 哪些页面或者文件需要登录后才能访问/下载
    17) cookie中或隐藏变量中是否含有用户名、密码、userid等关键信息
    3 直接输入需要权限的网页地址可以访问
    避免研发只是简单的在客户端不显示权限高的功能项
    举例Bug:
    1) 没有登录或注销登录后,直接输入登录后才能查看的页面的网址(含跳转页面),能直接打开页面;
    2) 注销后,点浏览器上的后退,可以进行操作。
    3) 正常登录后,直接输入自己没有权限查看的页面的网址,可以打开页面。
    4) 通过Http抓包的方式获取Http请求信息包经改装后重新发送
    5) 从权限低的页面可以退回到高的页面(如发送消息后,浏览器后退到信息填写页面,这就是错误的)
    4 上传文件没有限制
    1) 上传文件还要有大小的限制。
    2) 上传木马病毒等(往往与权限一起验证)
    3) 上传文件最好要有格式的限制;
    5 不安全的存储
    1) 在页面输入密码,页面应显示 “*****”;
    2) 数据库中存的密码应经过加密;
    3) 地址栏中不可以看到刚才填写的密码;
    4) 右键查看源文件不能看见刚才输入的密码;
    5) 帐号列表:系统不应该允许用户浏览到网站所有的帐号,如果必须要一个用户列表,推荐使用某种形式的假名(屏幕名)来指向实际的帐号
    6 操作时间的失效性
    1) 检测系统是否支持操作失效时间的配置,同时达到所配置的时间内没有对界面进行任何操作时,检测系统是否会将用户自动失效,需要重新登录系统。
    2) 支持操作失效时间的配置。
    3) 支持当用户在所配置的时间内没有对界面进行任何操作则该应用自动失效。
    如,用户登陆后在一定时间内(例如15 分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
    7  日志完整性  
    1) 检测系统运行时是否会记录完整的日志
    如进行详单查询,检测系统是否会记录相应的操作员、操作时间、系统状态、操作事项、IP地址等。
    2) 检测对系统关键数据进行增加、修改和删除时,系统是否会记录相应的修改时间、操作人员和修改前的数据记录


    系统服务器安全检查点
    1)检查关闭不必要的服务
    2)是否建立安全账号策略和安全日志
    3)是否已设置安全的IIS,删除不必要的IIS组件和进行IIS安全配置
    4)Web站点目录的访问权限是否过大
    5)服务器系统补丁是否打上,是否存在系统漏洞
    6)扫描检测木马

    数据库安全检查点
    1.系统数据是否机密
    1)尽量不要使用Sa账户,密码够复杂
    2)严格控制数据库用户的权限,不要轻易给用户直接的查询、更改、插入、删除权限。可以只给用户以访问视图和执行存储过程的权限
    3)数据库的帐号,密码(还有端口号)是不是直接写在配置文件里而没有进行加密
    2.系统数据的完整性
    3.系统数据可管理性
    4.系统数据的独立性
    5.系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)
    1)服务器突然断电,这可能导致配置文件的错误导致无法访问或者数据的丢失;
    2)重做日志发生损坏,这可能导致数据库管理员无法把数据恢复到故障发生时的点;
    3)硬盘发生故障而导致数据丢失,这主要是要测试备份文件异地存放的有效性;
    4)数据批量更新的错误处理,这主要是数据库备份测试数据库管理员在进行批量更新之前是否有先对数据库进行备份的习惯,等等。

    支付宝接口检查点
    1. 支付的接口
    2. 支付的入口
    3. 与各个银行的数据接口安全
    4. 与支付宝的接口

    网页安全测试工具
     IBM AppScan
    IBM AppScan该产品是一个领先的 Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界。Rational AppScan 可自动化 Web 应用的安全漏洞评估工作,能扫描和检测所有常见的 Web 应用安全漏洞,例如 SQL 注入(SQL-injection)、跨站点脚本攻击(cross-site scripting)、缓冲区溢出(buffer overflow)及最新的 Flash/Flex 应用及 Web 2.0 应用曝露等方面安全漏洞的扫描。

     HttpWatch
    HttpWatch是强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功能.报告输出 HttpWatch 是一款能够收集并显示页页深层信息的软件。它不用代理服务器或一些复杂的网络监控工具,就能够在显示网页同时显示网页请求和回应的日志信息。甚至可以显示浏览器缓存和IE之间的交换信息。集成在Internet Explorer工具栏。

     Acunetix Web Vulnerability
    Acunetix Web Vulnerability是通过缓慢运行该软件和运行诸如交叉站点脚本和SQL涌入这样的流行的攻击方式来测试网站的安全性。在黑客攻击之前识别出购物车、窗体、安全区域和网络应用软件的攻击弱点。通过构建HTTP和HTTPS请求扩展攻击并且分析响应。创建或者定制弱点攻击。支持所有主要的网络技术。
    1.它将会扫描整个网站,它通过跟踪站点上的所有链接和robots.txt(如果有的话)而实现扫描。然后WVS就会映射出站点的结构并显示每个文件的细节信息。
    2.在上述的发现阶段或扫描过程之后,WVS就会自动地对所发现的每一个页面发动一系列的漏洞攻击,这实质上是模拟一个黑客的攻击过程。WVS分析每一个页面中可以输入数据的地方,进而尝试所有的输入组合。这是一个自动扫描阶段。
    3.在它发现漏洞之后,WVS就会在“Alerts Node(警告节点)”中报告这些漏洞。每一个警告都包含着漏洞信息和如何修复漏洞的建议。
    4.在一次扫描完成之后,它会将结果保存为文件以备日后分析以及与以前的扫描相比较。使用报告工具,就可以创建一个专业的报告来总结这次扫描。

     WVS自动地检查下面的漏洞和内容:
    •版本检查,包括易受攻击的Web服务器,易受攻击的Web服务器技术 •CGI测试,包括检查Web服务器的问题,主要是决定在服务器上是否启用了危险的HTTP方法,例如PUT,TRACE,DELETE等等。 •参数操纵:主要包括跨站脚本攻击(XSS)、SQL注入攻击、代码执行、目录遍历攻击、文件入侵、脚本源代码泄漏、CRLF注入、PHP代码注入、XPath注入、LDAP注入、Cookie操纵、URL重定向、应用程序错误消息等。 •多请求参数操纵:主要是Blind SQL / XPath注入攻击
    •文件检查:检查备份文件或目录,查找常见的文件(如日志文件、应用程序踪迹等),以及URL中的跨站脚本攻击,还要检查脚本错误等。 •目录检查,主要查看常见的文件,发现敏感的文件和目录,发现路径中的跨站脚本攻击等。
    •Web应用程序:检查特定Web应用程序的已知漏洞的大型数据库,例如论坛、Web入口、CMS系统、电子商务应用程序和PHP库等。 •文本搜索:目录列表、源代码揭示、检查电子邮件地址、微软Office中可能的敏感信息、错误消息等。 •GHDB Google攻击数据库:可以检查数据库中1400多条GHDB搜索项目。
    •Web服务:主要是参数处理,其中包括SQL注入/Blind SQL注入(即盲注攻击)、代码执行、XPath注入、应用程序错误消息等。 使用该软件所提供的手动工具,还可以执行其它的漏洞测试,包括输入合法检查、验证攻击、缓冲区溢出等。

    信息安全入侵测试
    1上传漏洞
    利用上传漏洞可以直接得到网页管理员权限,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。“上传漏洞”入侵是目前对网站最广泛的入侵方法。90%的具有上传页面的网站,都存在上传漏洞。网站有上传页面,如果页面对上传文件扩展名过滤不严,导致黑客能直接上传带木马的文件,直接上传后即拥有网站的管理员控制权。

    2暴库
    暴库,就是通过一些技术手段或者程序漏洞得到数据库的地址,并将数据非法下载到本地。比如一个站的地址为 http://www.xxx.com/dispbbs.asp?boardID=7&ID=161 ,就可以把com/dispbbs中间的/换成%5c,如果有漏洞直接得到数据库的绝对路径。用迅雷什么的下载下来就可以了。还有种方法就是利用默认的数据库路径 http://www.xxx.com/ 后面加上 conn.asp 如果没有修改默认的数据库路径也可以得到数据库的路径。

    3注入漏洞
    注入漏洞是利用某些输入或者资料输入特性以导入某些资料或者代码,造成目标系统操作崩溃的电脑漏洞,通常这些漏洞安全隐患是由不充分的输入确认及其他种种因素造成的。我们需要使用到以下几种方式进行测试:


    3.1 SQL攻击,简称注入攻击,是发生于应用程序之数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏。
    测试方法:
    某个网站的登录验证的SQL查询代码为
    strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');"
    恶意填入
    userName = "' OR '1'='1";

    passWord = "' OR '1'='1";
    时,将导致原本的SQL字符串被填为
    strSQL = "SELECT * FROM users WHERE (name = '' OR '1'='1') and (pw = '' OR '1'='1');"
    也就是实际上运行的SQL命令会变成下面这样的
    strSQL = "SELECT * FROM users;"
    因此达到无帐号密码,亦可登录网站。

    3.2 跨网站指令码(Cross-site scripting,通常简称为XSS)是一种网站应用程式的安全漏洞攻击,允许恶意使用者将程式码注入到网页上,其他使用者在观看网页时就会受到影响。这类攻击通常包含了HTML以及使用者端脚本语言。
    测试方法:
    通常有一些方式可以测试网站是否有正确处理特殊字符:
    ><script>alert(document.cookie)</script>
    ='><script>alert(document.cookie)</script>
    <script>alert(document.cookie)</script>
    <script>alert(vulnerable)</script>
    %3Cscript%3Ealert('XSS')%3C/script%3E
    <script>alert('XSS')</script>
    <img src="javascript.:alert('XSS')">
    <img src="http://xxx.com/yyy.png">
    <div style="height:expression(alert('XSS'),1)" />(这个仅限 IE 有效)
    使用者可做一个网页,试着用JavaScript把document.cookie当成参数丢过去,然后再把它记录下来,这即是偷 cookie 。
    XSS攻击方法有:
    偷 cookie 。
    利用 iframe. 或 frame. 存取管理页面或后台页面。
    利用 XMLHttpRequest 存取管理页面或后台页面。

    4旁注
    我们入侵某站时可能这个站坚固的无懈可击,我们可以找下和这个站同一服务器的站点,然后在利用这个站点用提权,嗅探等方法来入侵我们要入侵的站点。

    5COOKIE诈骗
    COOKIE是上网时由网站所为发送的值,记录了你的一些资料,比如IP,姓名。如果已经知道了XX站管理员的站号和MD5密码了,但是破解不出来密码(现在MD5密码已经可以破解了,假如网站密码不单单是用MD5加密,还用了其他加密方法,如果要分析算法那就复杂了)。就可以用COOKIE诈骗来实现,把自己的ID修改成管理员的,MD5密码也修改成他的,有工具可以修改COOKIE这样就答到了COOKIE诈骗的目的,系统以为你就是管理员了。

Open Toolbar