Web App Firewall 如何防止 SQL 注入?
How does Web App Firewall protect from SQL Injection?
我听说 Azure App Gateway 的 Web App Firewall 能够保护应用程序免受 SQL 注入攻击。它是如何实现的?
它是否检查所有传入的有效负载(正文和 URL 参数)?如果是这样,我假设必须在应用程序网关级别设置 TLS 终止,否则它将无法读取任何内容。它是否只是在有效载荷中寻找一些可疑的字符串(比如“;DROP TABLE...”)?它如何知道有效负载中的内容是否安全?我的意思是,我可能会向我的 Web 应用程序发送一些负载,看起来像 SQL 注入 - WAF 如何知道哪个请求是攻击,哪个不是?
这是 OWASP 用于创建 SQL 注入规则的参考列表 material。本质上,它正在查看查询以查看其中是否有任何可疑内容(试图混淆命令的注释、错误位置的反引号、试图获取 server/host 信息等)。这是一个很长的列表,太长了,无法在此处描述,但参考站点可能比原始规则更容易理解。
参考文献(来自规则代码):
- SQL 注入知识库(来自@LightOS)
- SQLi 过滤器规避作弊 Sheet -
- SQL 注入作弊 Sheet -
- SQL地图的篡改脚本(用于规避)
- https://svn.sqlmap.org/sqlmap/trunk/sqlmap/tamper/(Link 不再有效)https://medium.com/@drag0n/sqlmap-tamper-scripts-sql-injection-and-waf-bypass-c5a3f5764cb3 有流程的详细信息。
我听说 Azure App Gateway 的 Web App Firewall 能够保护应用程序免受 SQL 注入攻击。它是如何实现的?
它是否检查所有传入的有效负载(正文和 URL 参数)?如果是这样,我假设必须在应用程序网关级别设置 TLS 终止,否则它将无法读取任何内容。它是否只是在有效载荷中寻找一些可疑的字符串(比如“;DROP TABLE...”)?它如何知道有效负载中的内容是否安全?我的意思是,我可能会向我的 Web 应用程序发送一些负载,看起来像 SQL 注入 - WAF 如何知道哪个请求是攻击,哪个不是?
这是 OWASP 用于创建 SQL 注入规则的参考列表 material。本质上,它正在查看查询以查看其中是否有任何可疑内容(试图混淆命令的注释、错误位置的反引号、试图获取 server/host 信息等)。这是一个很长的列表,太长了,无法在此处描述,但参考站点可能比原始规则更容易理解。
参考文献(来自规则代码):
- SQL 注入知识库(来自@LightOS)
- SQLi 过滤器规避作弊 Sheet -
- SQL 注入作弊 Sheet -
- SQL地图的篡改脚本(用于规避)
- https://svn.sqlmap.org/sqlmap/trunk/sqlmap/tamper/(Link 不再有效)https://medium.com/@drag0n/sqlmap-tamper-scripts-sql-injection-and-waf-bypass-c5a3f5764cb3 有流程的详细信息。