提问人:Ido Shemi 提问时间:4/14/2023 最后编辑:Bill KarwinIdo Shemi 更新时间:4/14/2023 访问量:208
使用 oledb 连接时出现 SQL 注入语法错误 (.NET)
SQL injection syntax error when using oledb connection (.NET)
问:
我正在尝试对oledb连接进行SQL注入,但是当我输入时出现语法错误。value #
我不明白为什么会发生这种情况,因为做:正在工作。value' or '1'='1
OleDbConnection Con = new OleDbConnection();
Con.ConnectionString = @"provider=microsoft.ACE.oledb.12.0;data source=" + Server.MapPath("") + "\\database.accdb";
Con.Open();
string sqlstring = "select * from users WHERE myusername = '"+InputUserName.Text+"' AND mypassword ='"+InputPassWord.Text+"'";
OleDbCommand Cmd = new OleDbCommand(sqlstring, Con);
OleDbDataReader dr1 = Cmd.ExecuteReader();
if (dr1.HasRows)
{
dr1.Read();
Response.Redirect("connectionSuccesful.aspx");
}
else
Label1.Text = "not valid username or password";
我也试过了:但它再次给我带来了语法错误。我正在使用microsoft access数据库并使用oledb reader。 string sqlstring = $"select * from sellers WHERE Myusername = '{InputUserName.Text}' -- AND Mypassword ='{InputPassWord.Text}'";
答:
0赞
Özgür Güzeldereli
4/14/2023
#1
根据这个SQL#符号是什么意思,它是如何使用的?,该符号是用来为临时表添加前缀的。它不用于注释 SQL 表达式的其余部分,您应该在注释该行的其余部分时尝试。#
--
编辑:仅用作MySQL中的注释(再次根据上面的StackOverflow问题)#
编辑2:根据以下问题如何在Microsoft Access中注释SQL代码? 您不能在 Microsoft Access 数据库中有注释,这就是您收到语法错误的原因。
评论
0赞
Ido Shemi
4/14/2023
我尝试使用,但它仍然给我语法错误。value' --
0赞
Özgür Güzeldereli
4/14/2023
@IdoShemi 使用 Access 数据库检查我关于您的编辑
0赞
Ido Shemi
4/14/2023
那么有没有另一种方法可以在不注释的情况下进行SQL注入
0赞
Özgür Güzeldereli
4/14/2023
@IdoShemi是的,我想这是正确的。但我并不完全是SQL注入方面的专家,所以你可能需要咨询谷歌
评论
#
#
InputUserName.Text`` or
SELECT
DELETE