CTF刷题笔记|攻防世界 disabled_button:如何绕过前端禁用按钮

2 阅读1分钟

新手写作,文中若有疏漏,恳请各位老师批评指正。

一、题目

二、题目考点

前端校验绕过、HTML 属性控制、表单提交逻辑、前端限制可被随意篡改,服务端未做校验。

三、解题思路

题目通过 HTML 的 disabled 属性限制按钮点击,属于纯前端防护,可直接篡改页面元素或构造请求绕过。

四、解题步骤

解法一:修改元素(直接操作页面)

  1. 检查,发现存在disabled=""字段
  2. 删除该字段
  3. 将disabled=""删除后,按钮可按,按下后得到flag

解法二:通过表单提交(绕过页面交互)

第一步:检查元素(F12)

  1. 右键那个 “不能按的按钮” → 选择 “检查”。
  2. 看 HTML 代码:
  • 如果有 disabled,直接删掉这个属性,按钮就能点了。
  • 如果有 onclick,把 return false; 删掉,或者直接在控制台执行提交函数。

如果没有

第二步:直接构造HTTP请求:

  • method="POST":说明数据是通过POST方式发送的;
  • name="auth":说明需要传递的参数名为auth。
  • 当点击这个按钮时,浏览器会发送一个 POST 请求,参数就是 auth=flag。服务器只认参数,不认操作方式
  1. 打开HackBar,点Load URL;
  2. 选择POST方式,填写参数auth=flag(题目提示的目标参数值);
  3. 发送请求后,拿到flag。

本质上,这个方法是跳过“点击按钮”的前端操作,直接向服务器发送符合要求的请求——因为服务器最终只验证接收到的参数,不关心请求是通过页面按钮触发,还是手动构造的。