如何修改anchor tag内容实施CSRF攻击?bug bounty新手求助
永久修改Anchor Tag内容并使其生效的方法
- 先看内容来源场景:如果是存储型展示内容(比如用户评论、个人资料模块),检查是否有未做过滤的输入入口——把构造好的
<a>标签(比如<a href="new-target-url">新显示文本</a>)提交到后端,要是后端没做HTML转义或内容过滤,页面加载时就会渲染出修改后的锚点,这本质是存储型XSS漏洞,也是这类场景最常见的永久修改方式。 - 若锚点内容来自动态API接口,尝试直接调用对应修改接口(比如PUT/POST请求),修改返回锚点内容的字段。如果接口没做严格的权限校验或参数校验,就能直接篡改后端存储的数据,页面加载时自然会显示修改后的内容。
- 极端场景:如果网站的静态文件(HTML、JS等)存在可写权限漏洞,直接修改源码里的锚点标签,部署后就能永久生效,但这种情况在正规站点里很少见。
利用Anchor Tag实施CSRF攻击的思路
- 针对GET型敏感操作:如果目标站点的敏感操作(比如修改个人邮箱、删除资源)是通过GET请求实现且无CSRF防护,构造恶意锚点,将
href设为该操作的完整URL并带上恶意参数,比如<a href="https://target-site.com/account/change-email?email=attacker@evil.com">点击验证账号</a>,诱导受害者点击即可触发CSRF。 - 篡改合法锚点配合CSRF:通过存储型XSS修改页面中原本正常的锚点,把
href替换为敏感操作的URL。比如原本指向用户资料的<a href="/profile">我的资料</a>,改成<a href="/account/delete">我的资料</a>,用户点击这个看似正常的链接时,就会执行删除账号的操作(前提是该操作无CSRF防护)。 - 结合JS触发POST型CSRF:如果站点允许通过XSS插入脚本,可在锚点的
onclick事件中写入代码,自动发送POST请求执行敏感操作,比如<a href="#" onclick="fetch('/transfer-funds', {method: 'POST', credentials: 'include', body: 'to=attacker&amount=1000'})">查看转账记录</a>,用户点击后就会触发转账操作。
内容的提问来源于stack exchange,提问作者Muema
相关产品推荐
相关产品推荐

