在这四个选项中,C 选项(http://www.xxx.com/index.php?name=zhangwei&money=1000)属于 CSRF(Cross-Site Request Forgery,跨站请求伪造) 攻击。
CSRF 是一种攻击方式,攻击者通过伪造一个合法用户的请求,诱使该用户在不知情的情况下执行恶意操作。通常,攻击者会诱使受害者访问一个包含恶意请求的网页,利用受害者的身份信息(如已经登录的会话)执行未经授权的操作。
在 C 选项 中,URL 看似是一个合法的请求:http://www.xxx.com/index.php?name=zhangwei&money=1000
参数:name=zhangwei和money=1000看起来是修改用户zhangwei的账户余额为 1000 的请求。这个请求看起来是合法的。
缺陷:假设该请求是一个 GET 请求(尽管没有明确说明,但从 URL 中的参数格式推测),并且没有有效的 CSRF 防护机制(比如 CSRF Token),攻击者可以通过构造类似的请求,诱使已经登录的用户点击该链接,导致受害者在不知情的情况下将money值设置为 1000。
利用场景:攻击者可以通过一个看似无害的链接(例如,嵌入在一个图像、按钮或表单中),让用户在访问时无意中发送这个请求,从而修改受害者账户上的金额。
这种攻击方式并不需要受害者主动执行敏感操作(例如提交表单),只需他们访问一个特制的链接就能执行恶意操作。因此,这就是典型的 CSRF 攻击。
A 选项:http://www.xxx.com/index.php?name=admin and 1=1
这是一个 SQL 注入攻击示例,攻击者试图通过修改name参数来触发 SQL 注入,执行1=1这种总为真的条件。它是 SQL 注入 攻击,而不是 CSRF。
B 选项:http://www.xxx.com/index.php?name=admin'><img src=1 onerror=alert(1)>
这是一个 XSS(跨站脚本攻击) 示例,攻击者尝试在name参数中注入恶意的 JavaScript 代码(通过onerror=alert(1))。当网页加载时,JavaScript 代码会执行,弹出警告框。它是 XSS 攻击,而不是 CSRF。
D 选项:http://www.xxx.vom/index.php?name=/etc/passwd
这个 URL 看起来像是一个 目录遍历攻击,攻击者尝试通过修改name参数来读取系统文件(如/etc/passwd)。这不是 CSRF,而是一个文件路径篡改攻击。