MSSQL注入从另一个数据库中提取列数据

Posted

技术标签:

【中文标题】MSSQL注入从另一个数据库中提取列数据【英文标题】:MSSQL Injection extracting column data from another database 【发布时间】:2014-03-31 04:21:06 【问题描述】:

我设置了一个易受 mssql 注入攻击的测试台应用程序,我想知道如何从另一个数据库中提取列数据?要从当前数据库中提取列数据,我们这样做:

convert(int,(select columnnamegoeshere from tablenamegoeshere))--

然后枚举我们所做的其他列数据:

convert(int,(select columnnamegoeshere from tablenamegoeshere where columnnamegoeshere not in ('firstentryfromcolumn')))--

但是如果它不在默认数据库中,并且我们想从另一个数据库中提取列数据,我们该怎么做呢?谢谢。

【问题讨论】:

【参考方案1】:

我会做一个连接...但是,为简单起见,这是您使用不同数据库列的代码:

convert(int,(select columnnamegoeshere from tablenamegoeshere where columnnamegoeshere not in (select top 1 firstentryfromcolumn from otherdb.dbo.otherdbtable)))

如果可能的话,最好将 2 个表连接在一起并排除记录...子查询通常较慢,而且不是最好的方法。

【讨论】:

以上是关于MSSQL注入从另一个数据库中提取列数据的主要内容,如果未能解决你的问题,请参考以下文章

SSIS 加载列数(精度、比例)

我需要使用索引和匹配从另一列条件匹配的列中提取数据

cut切割,简单的取列

使用 MSSQL 中的 DYNAMIC SQL 从另一个表更新一个表中的值

union 注入过程

SQL注入——知表名不知列明情景下查询数据