ngSurvey 2.4.28 及以下版本在调查问卷包含“文本字段”、“评论字段”或“联系方式”时容易受到拒绝服务攻击。 该问题是因为这些字段没有设置字符限制。攻击者可以在这些字段中提交无限数量的字符。 在测试过程中,提交请求时 docker 应用崩溃了。 在其他情况下,调查问卷的答案仍然被提交。当 ngSurvey 管理员尝试查看受访者数据或执行导出时,Web 浏览器会消耗过多内存,或者服务器返回内部错误(500)。这使得调查数据至少从 Web 界面无法访问。 即使 ngSurvey 管理员在答案上设置了字符限制,攻击仍然可能发生,因为该检查仅在客户端浏览器上执行。
注意:“滑块”问题也可能存在漏洞,使用大整数代替字符串即可。在我的本地环境中无法确认这一点。
dospayload(任何其他内容都可以,但我将使用此字符串进行演示)。import requests 下方添加以下代码 dospayload= "A" * 123456789。burp0_json 中找到文本/评论答案。它看起来像这样 "value" : "dospayload"。"value" : dospayload。最终代码应如下所示:

我没有找到区分文本或评论字段与其他类型答案(单选、下拉列表等)的方法。我相信应用程序通过它们的 ID 来识别它们。 如果您找到一种方法,制作一个以 URL 为输入并执行利用步骤的工作脚本,我将很乐意引用它。