我有类似的 API
"/getXXXX?ABC=X7TRYUV&Ab_DEF=true&Ab_XYZ=true&Ab_ExZ=ZXTY"
如何检查请求参数的漏洞?
我可以传递什么类型的字符串?
我在 Wapiti 和 SQLMAP 工具中运行了 API,但没有发现任何问题。我通过将“Ab_ExZ=ZXTY”操作为“CHR(91%2d1)”XTY 手动对其进行了测试
并且它将结果作为正确的参数过滤掉,它不应该过滤掉。
谢谢, 比贝克
我有类似的 API
"/getXXXX?ABC=X7TRYUV&Ab_DEF=true&Ab_XYZ=true&Ab_ExZ=ZXTY"
如何检查请求参数的漏洞?
我可以传递什么类型的字符串?
我在 Wapiti 和 SQLMAP 工具中运行了 API,但没有发现任何问题。我通过将“Ab_ExZ=ZXTY”操作为“CHR(91%2d1)”XTY 手动对其进行了测试
并且它将结果作为正确的参数过滤掉,它不应该过滤掉。
谢谢, 比贝克
不幸的是,您的问题的答案取决于情况。OWASP提供了很多关于注入式攻击的有用信息。您应该使用的确切字符串取决于解决方案的底层技术和字符,例如在数据处理的每个阶段都很重要的终止字符。
测试注入的起点是尝试终止语句/命令。例如,在 Oracle PL/SQL 中,字符';
将通过引号关闭字符串条目和分号终止命令来起作用。如果查询容易受到注入攻击,这很可能会给您从数据库中获取错误查询的错误。
显然,其他数据库的语法会略有不同。同样值得考虑的是底层操作系统。如果 API 的输入最终在命令行中执行,它是基于 Windows 还是基于 Linux?这将更改您要尝试的语法。
最后,如果数据存储在哪里,然后呈现?如果它在 Web UI 中呈现,您可以尝试输入<b>
,如果您的 API 允许将其存储然后显示给用户而不被转义,您将看到粗体文本。这将表明二阶注入攻击。(实际风险是数据被检索而不是被发送)。
我强烈建议您查看 OWASP 网站上提供的注入信息。包括WebGoat示例,您可以在其中尝试针对故意易受攻击的网站进行注入样式测试。这些原则将很好地转化为 API 测试。