情况:
我正在为我的一位朋友做一些渗透测试,并且在演示环境中有完全的邮寄许可。原因是因为我在他的在线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列。我不知道如何利用关系表来获取表名(我找不到任何结构解释,所以我不知道选择什么。
试图蛮力一些桌面名字,但无济于事。
我不想丢弃他的数据库,但我确实希望通过一些支持指出严重的缺陷。
有人有想法吗?
答案 0 :(得分:1)
通常有两种方法可以从这里开始。您可以尝试根据存储在其中的数据类型来猜测表名,这些数据通常有效(“用户”通常存储用户数据......)。另一种方法是在应用程序中生成语音错误消息,以查看是否可以从那里获取表名或列名。