提问人:Tim 提问时间:6/5/2016 最后编辑:marc_sTim 更新时间:6/6/2016 访问量:218
SQL Server 数据库注入
SQL Server database injection
问:
我在asp中有一个简单的web应用程序,带有SQL Server后端数据库。登录页面有一个注入点,我可以通过通常的登录方式绕过登录 ' ' 或 1=1 '。现在,我能够使用 GROUP BY 和 HAVING 语句枚举数据库中的列。我能够枚举抛给我的错误中的信息。
` ' or '1' = '1' GROUP BY tblCustomers.cust_id, tblCustomers.cust_name, tblCustomers.cust_password, tblCustomers.cust_account
HAVING 1=1 -- `
我正处于学习阶段,我发现 , , , 是列,是表名。cust_id
cust_name
cust_password
cust_account
tblCustomers
我还能够使用 AND 语句和 convert 函数来枚举一些信息。我使用的命令是,我再次能够获取错误中的信息。' or '1' = '1' and 1 =convert(int,@@version)--
现在,我怎样才能将条目转储到数据库中,至少知道客户名称和密码?我尝试了用分号分隔的堆栈查询,但在执行第一个查询后,即 ' OR 1=1 我只是登录,看不到任何输出,因为他们没有其他参数,我无法在页面上的其他任何地方输出它(没有参数,他们的只是一个空白页登录后)。UNION SELECT不起作用,因为我无法猜测第一个SELECT语句及其退出。 有什么功能可以帮助我转储客户名称和密码吗?
我将不胜感激任何帮助。谢谢。
答:
0赞
user2299169
6/6/2016
#1
使第一个查询禁止登录。即,将“或 1 = 1”改为“和 1 < 1”,然后是下一个语句。如果我理解正确,你可以在哪里注入,登录将失败,你会得到你的转储(希望如此,但取决于你正在摆弄的门户)。编辑:顺便说一句,如果您希望查询失败,为什么要输入正确的用户/pwd 组合?+你可以弄清楚登录查询,它应该非常简单(用户名和密码,也许?
评论
union select 1,1,1,1
select
Syntax error converting the varchar value 'abraham' to a column of data type int
cust_id