攻击方式学习之SQL注入(SQL Injection)第3/3页
程序员文章站
2022-03-29 23:09:41
这就给不怀好意的同学可乘之机,利用输入一些奇特的查询字符串,拼接成特定的SQL语 句,即可达到注入的目的。不仅可以获取数据库重要信息,权限没有设置好的话甚至可以删除掉整个表...
这就给不怀好意的同学可乘之机,利用输入一些奇特的查询字符串,拼接成特定的sql语 句,即可达到注入的目的。不仅可以获取数据库重要信息,权限没有设置好的话甚至可以删除掉整个表。因此,sql注入漏洞还是相当的严重的。发现以前偶刚学 写的网站的时候也是靠拼接sql语句吃饭滴……
示例
为了更好了学习和了解sql注入的方法,做了一个示例网页,界面如下:
点击登陆这块的代码如下,注意第5行,我们使用了拼接sql语句:
private void login()
{
string uname = tbname.text;
string pwd = tbpassword.text;
string sqlcmd = "select * from [users] where username = '" + uname + "'";
string sqlcmdrep = sqlcmd.replace("users", "xxx").replace("username", "xxx");
lbsql.text = sqlcmdrep;
try
{
datatable dt = datasqlserver.getdatatable(sqlcmd);
gvresult.datasource = dt;
gvresult.databind();
if (dt.rows.count == 1 && pwd == dt.rows[0]["password"].tostring())
{
lbres.text = dt.rows[0]["username"] + " login success!";
}
else if(dt.rows.count == 0)
{
lbres.text = uname + " not exist!";
}
else
{
lbres.text = "login fail!";
}
}
catch (exception ex)
{
lbres.text = "error: " + ex.message;
}
}
示例
为了更好了学习和了解sql注入的方法,做了一个示例网页,界面如下:
点击登陆这块的代码如下,注意第5行,我们使用了拼接sql语句:
复制代码 代码如下:
private void login()
{
string uname = tbname.text;
string pwd = tbpassword.text;
string sqlcmd = "select * from [users] where username = '" + uname + "'";
string sqlcmdrep = sqlcmd.replace("users", "xxx").replace("username", "xxx");
lbsql.text = sqlcmdrep;
try
{
datatable dt = datasqlserver.getdatatable(sqlcmd);
gvresult.datasource = dt;
gvresult.databind();
if (dt.rows.count == 1 && pwd == dt.rows[0]["password"].tostring())
{
lbres.text = dt.rows[0]["username"] + " login success!";
}
else if(dt.rows.count == 0)
{
lbres.text = uname + " not exist!";
}
else
{
lbres.text = "login fail!";
}
}
catch (exception ex)
{
lbres.text = "error: " + ex.message;
}
}
下一篇: 汤圆煮多长时间煮熟