【黑客攻防技术宝典】04-客户端控件

黑客攻防技术宝典——客户端控件

阅读范围:《黑客攻防技术宝典:web实战篇》第五章内容



5-客户端控件

5.1 传送用户数据

表面隐藏手段

  • 隐藏表单字段
  • HTTP cookie
  • URL参数
  • Referer消息头

攻击方式
使用 burp 等拦截代理服务器,直接修改参数

模糊数据

攻击方式

  1. 已知模糊字符串对应明文,尝试破译
  2. 若破译成功,提交 payload 对应模糊字符串
  3. 未破译,可利用其他功能对应的模糊字符串
  4. 提交畸形字符串,包含超长值、不同字符集等错误

ASP.NET ViewState

攻击方式

  1. 检查是否对 ViewState启用了 MAC保护(ViewState结构末尾是否存在一个20字节的散列) 2. 解码不同页面中的 ViewState参数,检查是否传送了敏感数据
  2. 尝试修改特殊参数值,检查是否报错
  3. 分析各参数功能,探查常见漏洞

5.2 收集用户数据:HTML表单

常见设置

  • 长度限制
  • 基于脚本确认
  • 禁用元素

攻击方法

  • 代理拦截,抓包修改对应参数值
  • 使⽤Burp Proxy中的HTML修改功能自动重新启用禁用字段

5.3 收集用户数据:浏览器扩展

常见拓展技术

  • Java applet
  • Flash
  • Silverlight

提供安全功能:

均编译成中间字节码;
在提供沙盒执行环境的虚拟机中运行;
可能会使用远程框架。

攻击方法

  • 拦截并修改浏览器扩展组件提出的请求及服务器的响应
  • 直接针对组件实施攻击,尝试反编译字节码,查看源代码
  • 使用调试器与组件进行动态交互
拦截扩展流量
  1. 确保能正确拦截浏览器扩展送出的所有流量,必要时使用嗅探器检查
  2. 针对序列化数据,确保有解压和修改工具
  3. 确保客户端组件正确配置代理信息,安装SSL等可信证书
反编译扩展

攻击浏览器扩展组件的最彻底的方法

  1. 下载要处理的可执行字节码(注意找历史记录、清缓存)

  2. 解压、反编译字节码

  3. 分析源代码

  4. 针对模糊处理:
    只查看公用方法、利用 JS 调用、签名等内容
    对无意义表达式采用重构
    对字节码再次进行模糊处理

    常见模糊技巧:

    1. 使用没有意义的表达式(如 a、b、c)代替有意义的类、方法和成员变 量名称
    2. 使用 new 和 int 之类的保留关键字代替项目名称
    3. 删除不必要的调试和信息
    4. 增加多余的代码
    5. 使用跳转指令修改代码的执行路径
    6. 引入非法的编程结构
附加调试器

调试器在字节码级别运行,因此可以轻松控制并了解组件的执行过程。

将组件的方法和类与界面中的关键功能进行关联,只需要修改其中的某项关键功能来达到目的即可,可以避免反编译大型复杂组件时的困难。

本地客户端组件

本地客户端组件一般通过 ActiveX 控件传送。

ActiveX 控件是在浏览器沙盒以外运行的定制浏览器扩展。

5.4 安全处理客户端数据

通过客户端传送数据

应完全避免通过客户端传送重要数据,可以将这类数据保存在服务器上,在必要时通过服务端逻辑直接引用。

对重要数据的传送进行签名或加密处理以防止篡改。

确认客户端生成数据

客户端提交的每一项数据都应被视为危险和潜在恶意的。

唯一安全办法:在服务端实施保护。

日志与警报

  1. 禁止异常数据输入
  2. 记录恶意请求并监控攻击企图
  3. 必要时采取行动,终止会话或冻结账户
posted @ 2022-10-29 21:26  0dot7  阅读(38)  评论(0编辑  收藏  举报