Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server数据库注入_Sql_Sql Server_Sql Injection_Penetration Testing - Fatal编程技术网

SQL Server数据库注入

SQL Server数据库注入,sql,sql-server,sql-injection,penetration-testing,Sql,Sql Server,Sql Injection,Penetration Testing,我有一个简单的asp web应用程序和SQL Server后端数据库。登录页面有一个注入点,我可以通过通常的方法绕过登录 `'或1=1'。现在我可以使用GROUPBY和HAVING语句枚举数据库中的列。我能够列举出向我抛出的错误中的信息 ` ' or '1' = '1' GROUP BY tblCustomers.cust_id, tblCustomers.cust_name, tblCustomers.cust_password, tblCustomers.cust_account HAV

我有一个简单的asp web应用程序和SQL Server后端数据库。登录页面有一个注入点,我可以通过通常的方法绕过登录 `'或1=1'。现在我可以使用GROUPBY和HAVING语句枚举数据库中的列。我能够列举出向我抛出的错误中的信息

` ' or '1' = '1' GROUP BY tblCustomers.cust_id, tblCustomers.cust_name, tblCustomers.cust_password, tblCustomers.cust_account  
HAVING 1=1 --  `
我正在学习阶段,我发现
cust\u id
cust\u name
cust\u password
cust\u account
是列,
tblCustomers
是表名

我还能够使用AND语句以及convert函数来枚举一些信息。我使用的命令是
”或“1”=“1”和1=convert(int,@@version)--
,我同样能够从错误中获得信息

现在,如何转储数据库中的条目以至少知道客户名称和密码?我尝试了以分号分隔的堆栈查询,但在执行第一个查询后,即“或1=1”,我只是登录,看不到任何输出,因为它们没有其他参数,我无法将其输出到页面上的任何其他位置(没有参数,登录后它们只是一个空白页面)。UNION SELECT无法工作,因为我无法猜测第一个SELECT语句及其出口。 有什么功能可以帮助我转储客户名称和密码吗


我真的很感谢你在这方面的帮助。谢谢

进行第一次查询,禁止登录。i、 e.代替“或1=1”写“和1<1”,然后是下一个语句。如果我正确理解了您可以在哪里注入,登录将失败,您将获得转储(希望如此,但这取决于您正在处理的门户)。编辑:顺便问一下,如果希望查询失败,为什么要输入正确的用户/pwd组合?+您可以大致了解登录查询,它应该非常简单(可能是用户名和密码?

使第一个查询不允许登录。i、 e.代替“或1=1”写“和1<1”,然后是下一个语句。如果我正确理解了您可以在哪里注入,登录将失败,您将获得转储(希望如此,但这取决于您正在处理的门户)。编辑:顺便问一下,如果希望查询失败,为什么要输入正确的用户/pwd组合?+您可以大致了解登录查询,它应该非常简单(可能是用户名和密码?)谢谢Mark。我试过你的建议然后我将此作为回答,如果您接受,谢谢;)请尝试
union select 1,1,1,1
(然后重试)以计算
select
中的字段数。无法保证成功,因为页面在第一行之后可能会停止读取。您好,Alex,您建议的查询在将varchar值“abraham”转换为数据类型为int的列时出现语法错误。我希望第一列
cust_id
为数据类型int。此外,我想提到的是,错误页面是一个传统的“未显示页面”,它包含一些信息以及POST请求的详细信息