Web渗透-SSL/TLS拒绝服务、Ajax、WebService

SSL/TLS拒绝服务攻击

  • thc-ssl-dos
    • ssl协商加密对性能开销大,大量握手请求会导致拒绝服务
    • 利用SSL secure Renegotiation特性,在单一TCP连接中生成数千个SSL重连接请求,造成服务器资源过载
    • 与流量式拒绝服务攻击不同,thc-ssl-dos可以利用dsl线路打垮30G带宽的服务器
    • 服务器平均可以处理300次/秒SSL握手请求
    • 对SMTPS、POP3S、等服务同样有效
    • thc-ssl-dos 199.223.209.205 2804 -accept
  • 对策
    • 禁用SSL-Renegotiation、使用SSL Accelerator
    • 通过修改thc-ssl-dos代码,可以绕过以上对策

Ajax

  • 目前没用通用的ajax安全最佳实践,其攻击面不为大多数人所知
  • Ajax的安全问题
    • 多种技术混合,增加了攻击面,每个参数都可能形成独立的攻击过程。
    • Ajax引擎是个全功能的脚本解释器,访问恶意站点可能后果严重,虽然浏览器有沙箱和SOP,但可被绕过
    • 服务器、客户端代码结合使用产生混乱,服务器访问控制不当,将信息泄露
    • 暴露应用程序逻辑
  • 对渗透测试的挑战
    • 异步请求数量多且隐蔽
    • 触发ajax请求的条件无规律
    • 手动和截断代理爬网可能产生大量遗漏
  • Ajax爬网工具zap
  • 客户端代码审计
    • 源码
    • firebug

WebService

  • WebService安全考虑

    • 使用API key或session token实现和跟踪身份认证

    • 身份认证由服务器完成,而非客户端

    • API key、用户名、Session token永远不要通过URL发送

    • RESTful默认不提供任何安全机制,需要使用SSL/TLS保护传输数据安全

    • SOAP提供强于HTTPS的WS-security机制

    • 使用OAuth或HMAC身份验证,HMAC身份认证使用C/S共享的密钥加密API KEY

    • RESTful应只允许身份认证用户使用PUT、DELETE方法

    • 使用随机token防止CSRF攻击

    • 对用户提交参数过滤,建议部署基于严格白名单的方法

    • 报错信息消毒

    • 直接对象引用严格身份验证(电商公司以ID作为主索引)