什么是仅数据开发?

逆向工程 二元分析 二进制 开发 核心 未知数据
2021-07-10 01:43:30

我想知道,在过去几个月尝试阅读之后,我完全迷失了,不理解这个概念。有人可以简单地解释一下仅数据攻击的概念,它们的目的是什么以及为什么选择这种方法而不是其他方法?

注意:我熟悉其他技术,例如各种 ret2、jop/rop、...

此外,如果有人知道“备忘单”/类似维基的站点/GitHub 显示有关利用的现代概念(而不是互联网上充满的旧东西),我将不胜感激。我很确定它也可以帮助这里的很多人。

我的目标是帮助使事情更安全,我真的想为帮助做出自己的贡献。

1个回答

仅数据开发是一种心态/理解:

  1. 近年来,人们在反开发技术上投入了大量精力,这使得现有的开发策略变得更加困难。
  2. 大多数努力都围绕着防止代码颠覆即,攻击者的最终目标是控制代码执行

与此相反,在某些情况下,代码执行可能只是达到目的的一种手段,例如从移动设备中提取个人信息、访问远程服务器、删除有价值的数据或在适当的时候关闭主要基础设施。

一种仅数据利用方法表明,攻击者除了直接(通过用 shellcode 覆盖代码,在堆栈上编写代码并覆盖堆栈地址)或间接(创建 ROP 链,绕过 CFI)操纵代码执行流程外,还可以修改数据以达到预期的结果。

示例可能会使这更容易理解:

  1. 在最基本的意义上,这意味着攻击者可以使用相对 dword-write 原语将新用户添加到管理员用户的链表中,然后使用它登录到系统。

  2. 类似地,某些类型的缓冲区溢出可用于覆盖 SQL 查询以将内存损坏转变为 SQL 注入。再次,插入某种所需的条目或从内部数据库中提取信息。