MS Access SQL注入

时间:2011-01-13 12:21:19

标签: sql ms-access sql-injection

情况:

我正在为我的一位朋友做一些渗透测试,并且在演示环境中有完全的邮寄许可。原因是因为我在他的在线ASP应用程序中看到了一个XSS漏洞(错误页面错误为param允许html)。

他有一个Access DB,由于缺乏输入验证,我遇到了另一个漏洞:他允许在where子句中使用sql注入。

我尝试了一些东西: http://www.krazl.com/blog/?p=3

但这导致了有限的结果: MSysRelationships已打开,但他的Objects表被屏蔽了。 'UNION SELECT 1,1,1,1,1,1,1,1,1来自MSysRelationships WHERE'1'='1< - 工作所以我知道父表至少有9列。我不知道如何利用关系表来获取表名(我找不到任何结构解释,所以我不知道选择什么。

试图蛮力一些桌面名字,但无济于事。

我不想丢弃他的数据库,但我确实希望通过一些支持指出严重的缺陷。

有人有想法吗?

1 个答案:

答案 0 :(得分:1)

通常有两种方法可以从这里开始。您可以尝试根据存储在其中的数据类型来猜测表名,这些数据通常有效(“用户”通常存储用户数据......)。另一种方法是在应用程序中生成语音错误消息,以查看是否可以从那里获取表名或列名。