Web安全测试——手工安全测试方法及修改建议

发表于:2017-7-17 11:47  作者:liqingxin   来源:51Testing软件测试网采编

字体: | 上一篇 | 下一篇 | 打印 |我要投稿 | 推荐标签: 软件测试工具 XSS 安全测试工具

  常见问题
  1.XSS(CrossSite Script)跨站脚本攻击
  XSS(CrossSite Script)跨站脚本攻击。它指的是恶意攻击者往Web 页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web 里面的html 代码会被执行,从而达
  到恶意用户的特殊目的。
  测试方法: 
  在数据输入界面,添加记录输入:<script>alert(/30141/)</script>,添加成功如果弹出对话框,表明此处存在一个XSS 漏洞
  或把url请求中参数改为<script>alert(/30141/)</script>,如果页面弹出对话框,表明此处存在一个XSS 漏洞
  修改建议:
  过滤掉用户输入中的危险字符。对输入数据进行客户端和程序级的校验(如通过正则表达式等)。
  Eg:对用户输入的地方和变量有没有做长度和对”<”,”>”,”;”,”’”等字符是否做过滤
  2.CSRF与跨站脚本(XSS)
  CSRF与跨站脚本(XSS),是指请求迫使某个登录的浏览器向易受攻击的Web应用发送一个请求,然后以受害者的名义,为入侵者的利益进行所选择的行动。
  测试方法:
  同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功
  使用工具发送请求,在http请求头中不加入referer字段,检验返回消息的应答,应该重新定位到错误界面或者登陆界面。
  修改建议:
  在不同的会话中两次发送同一请求并且收到相同的响应。这显示没有任何参数是动态的(会话标识仅在cookie 中发送),因此应用程序易受到此问题攻击。因此解决的方法为
  1.Cookie Hashing(所有表单都包含同一个伪随机值):
  2.  验证码
  3.One‐Time Tokens(不同的表单包含一个不同的伪随机值)客户端保护措施:应用防止
  CSRF攻击的工具或插件。
  3.注入测试
  SQL注入是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符
  串,最终达到欺骗服务器执行恶意的SQL命令。
  测试方法:
  在需要进行查询的页面,输入正确查询条件 and 1=1等简单sql语句,查看应答结果,如与输入正确查询条件返回结果一致,表明应用程序对用户输入未进行过滤,可以初步判断此处存在SQL注入漏洞
  修改建议:
  对用户的输入进行校验,可以通过正则表达式,或限制长度;对以下关键字进行转换等;
  |<script>|</script>|alert|and|exec|execute|insert|select|delete|update|count|drop|chr|mid|master|truncate|declare|sitename|netuser|xp_cmdshell|or|+|,|like'|and|exec|execute|insert|create|drop|table|from|grant|group_concat|column_name|information_schema.columns|table_schema|union|where|select|delete|update|order|by|count|chr|mid|master|truncate|declare|or|--|+|,|like|//
  不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取;
  不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接;
  应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。
  4.登录认证测试
  4.1暴力破解
  暴力破解是目前最直接有效的攻击方式,特别对于金融业务来说,很多情况下口令都为6位纯数字,很容易被攻击。本测试项在于检查认证系统对暴力破解的防护性。
  测试方法:
  启动抓包工具,同时打开浏览器输入用户登录页面,输入用户名、密码以及验证码,进行登录,如果在抓包中存在明文的用户名和密码,说明存在弱点。
  修改建议:
  将请求方式从HTTP方式修改为HTTPS方式或者对输入的用户名和密码进行加密,在服务端对密码进行验证
  4.2代码注释
  开发版本的Web程序所带有的注释在发布版本中没有被去掉,而导致一些敏感信息的泄漏。我们要查看客户端能看到的页面源代码并发现此类安全隐患。
  测试方法:
  打开登陆页面(或者待测试页面),点击浏览器邮件,查看源代码,检查源代码注释部分是否有敏感信息泄露,敏感信息包括以下内容:字段文字描述、内网 IP 地址、SQL 语句以及物理路径等等。
  修改建议:
  请勿在HTML  注释中遗留任何重要信息(如文件名或文件路径)。
  从生产站点注释中除去以前(或未来)站点链接的跟踪信息。
  避免在HTML  注释中放置敏感信息。
  确保HTML  注释不包括源代码片段。
  4.3 用户名破解
  为了进行暴力破解,攻击者需要知道已存在的用户名,再对该用户名进行攻击。
  测试方法:
  在登录界面输入不存在的用户名和任意的口令,如果提示用户名不存在,则说明存在漏洞;使用正确的用户名和错误的口令进行登录,如果提示口令或密码错误,则说明存在漏洞。
  修改建议:
  服务器对所有的登陆错误原因进行统一的应答,不会提示准确的错误提示信息。
  4.4
  在缺少锁定策略和验证码设计有问题的情况下,攻击者可以通过枚举的方式来进行暴力猜解。
  测试方法:
  在登录页面,输入正确的用户名、错误的口令以及正确的验证码,提交表单,重复10
  次,如果系统没有返回类似账号锁定的信息,则说明存在漏洞。
  修改建议:
  在用户进行错误登录次数达到系统配置后,需要对该账号或者该IP进行临时锁定,到达解锁条件后再进行解锁。
  4.5
  查看是否有验证码机制,以及验证码机制是否完善,避免使用自动化工具重复登录和进行业务操作。
  测试方法:
  打开登陆页面查看是否存在验证码,如果不存在说明存在漏洞。
  输入正确的用户名和口令以及错误的验证码,如果只是提示验证码错误,则说明存在漏洞。
  选择验证码,点击右键,验证码是图片形式且在一张图片中,如果不是,则说明存在漏洞。
  观察验证码图片中背景是否存在无规律的点或线条,如果背景为纯色(例如只有白色)说明存在漏洞。
  修改建议:
  将验证码生成放在在一张进行了混淆处理的图片上。
  4.6
  测试方法:
  进入系统的口令修改界面,查看是否必须输入旧口令,如果不需要则存在漏洞。
  修改建议:
  用户修改密码时必须提供旧密码,且新密码不能与旧密码相同,密码要有一定复杂度,参见口令规则建议。
  4.7 默认账户名称设置
  一般系统均设有默认登录用户,以及超级管理员账号,如登录账号过于简单将易被破解,造成超级权限泄露。
  修改建议:
  上线系统清除超级管理员权限用户,或增加超级管理员登录名复杂度,不要设置成易猜测的admin、superadmin等名称。
  4.8 错误的页面信息
  404、500等错误或警告消息,可能会泄露敏感信息。
  修改建议:
  捕获异常跳转至统一错误页面,避免对外泄漏详细错误信息。
  5.会话管理测试未更新
  5.1会话标识测试
  查看登录成功后会话标识是否变更。如果未变更,那么攻击者就可以通过一些手段(如构造URL)为受害着确定一个会话标识,当受害者登录成功后,攻击者也可以利用这个
  会话标识冒充受害者访问系统。
  测试方法:
  启动抓包工具或浏览器自带开发者模式打开登录页面,输入正确的用户名、口令以及验证码,进行登录,登录后,进行任意一项业务操作。如果登录的SessionId和进行业务的SessionId没有变化,则说明存在漏洞。
  修改建议:
  对每次请求都从上次请求获得令牌,服务端对每次交互都进行验证
  查看是否存在浏览器窗口闲置超时后需重新登录的机制
  5.2会话超时测试
  测试方法:
  打开登录界面,输入正确的用户名和口令,进行登录,进行一项业务操作,将浏览器空闲超过30分钟,在进行其他业务操作,如果能够进行其他业务操作,则说明存在漏洞。
  修改建议:
  需要在后台进行配置Session的超时时间。
  5.3会话清除测试
  用户注销后会话信息需要清除,否则会导致用户在点击注销按钮之后还能继续访问注销之前才能访问的页面。
  测试方法:
  进入登录页面,输入正确的用户名和密码,登录成功后,进行一些业务操作,点击注销按钮,在浏览器输入地址,输入上面进行业务操作的地址,如果能够正常返回业务页面,则说明存在漏洞。
  修改建议:
  在用户注销后,必须将用户的Session信息以及缓存信息全部清空。
21/212>

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2017, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道