Jhu*_*er1 1 security sql-server sql-injection
是否有一种既定的方法或工具可用于仅通过测试它发送到数据库的查询来对应用程序执行渗透测试?
例如,如果我有一堆 SQL Server 托管各种网站,并且通过一个未参数化的查询,有没有办法检测到这些?
可能不安全的示例查询:
SELECT x,y,z FROM logins WHERE username = 'xx' and password = 'yyy'
Run Code Online (Sandbox Code Playgroud)
...相反,我希望一个安全的应用程序可能正在使用sp_executesql.
参数作为 RPC(远程过程调用)通过 TDS 协议传递到 SQL Server。因此,参数化查询将在跟踪(SQL 跟踪或扩展事件)中显示为 RPC 开始/完成事件。根据所使用的 API 和应用程序方法,参数化查询可能会调用 API 系统过程(例如sp_prepare),而不是sp_executesql直接调用用户存储过程。
即席查询作为一个或多个 SQL 语句的批处理传递。这些将在跟踪中显示为批处理开始/完成事件。在以下情况下,即席查询可能存在 SQL 注入风险:
静态查询也可能包含文字,因此需要猜测上下文并检查应用程序代码以确定查询是否存在漏洞。
请注意,如果使用参数和文字的混合动态构建,或者通过来自不受信任的来源的连接,即使是参数化查询也可能带来注入风险。如果不检查应用程序代码或在 Penn 测试中发现漏洞,我想不出一种方法来识别此类实践。
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |