欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

攻击方式学习之SQL注入(SQL Injection)第3/3页

程序员文章站 2022-07-07 19:16:33
这就给不怀好意的同学可乘之机,利用输入一些奇特的查询字符串,拼接成特定的SQL语 句,即可达到注入的目的。不仅可以获取数据库重要信息,权限没有设置好的话甚至可以删除掉整个表...
这就给不怀好意的同学可乘之机,利用输入一些奇特的查询字符串,拼接成特定的sql语 句,即可达到注入的目的。不仅可以获取数据库重要信息,权限没有设置好的话甚至可以删除掉整个表。因此,sql注入漏洞还是相当的严重的。发现以前偶刚学 写的网站的时候也是靠拼接sql语句吃饭滴……
示例
为了更好了学习和了解sql注入的方法,做了一个示例网页,界面如下:
攻击方式学习之SQL注入(SQL Injection)第3/3页 
点击登陆这块的代码如下,注意第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;
}
}