0

目前我正在做一个关于 SQL 注入的项目。我这样做的方式是它会发现独立于服务器端脚本的 SQL 注入。无论它可能是 jsp、asp 还是 php。现在的主要问题是我必须从网页中提取 SQL 查询。例如,当我按下提交按钮时,从 Web 服务器到数据库的请求将以 sql 语句的形式发送。所以我的问题是捕获那个 sql 语句

关于如何做的任何建议?

提前致谢

4

3 回答 3

1

您无法捕获基于服务器的 SQL 脚本,并且任何在 Javascript 中生成 SQL 的网站都只是要求您破坏他们的网站。

于 2009-09-15T12:25:07.707 回答
1

您可以在 Web 应用程序和 rdbms 之间放置一个代理。一些系统(例如 MySql)带有这样的代理。

于 2009-09-15T12:28:26.697 回答
0

一些 RDBMS 具有记录执行的 SQL 查询的功能(例如 SQL Server 具有 SQL Server Profiler)。如果您的 RDBMS 没有此功能,您可以使用网络中的某个代理(Web 应用程序---->您的代理---->RDBMS)捕获 SQL 查询。

您应该将输入值和记录的查询配对。

在代码中搜索 SQL 查询的问题非常复杂,我认为不可能。SQL 查询不能是纯文本形式,也不能是动态创建的。

例如:

// this will produce SQL query
from p in db.Products where p.Size > 1000 && p.Count < 5 order by p.Name select p;

// this will not produce any SQL query
from c in ColumnsOf( db.Products ) where c.Contains( "Name" ) select c.Type;

// this will produce SQL query
var tmp = "SELECT ";
for(int i = 0; i < columns.Length; i++ ) {
    if ( i > 0 ) { tmp += ", "; }
    tmp += columns[i].Name;
}
tmp += "FROM " + someTextVariable;
于 2009-09-15T12:42:12.057 回答