利用SQL漏洞强行登录及防范方法
2004-11-02 17:57
483 查看
在用户名为空不输入或随便输入用户名,在密码输入框里用 'or''=' 回车就可以进入人家的系统。
典型错误程序如下:
private void login_ok_Click(object sender, System.EventArgs e)
{
string sqlstr="select * from company_admin where username='"+username.Text+"' and password='"+password.Text+"'"; // 这一句:典型的SQL漏洞
SqlConnection myconn=new SqlConnection(ConfigurationSettings.AppSettings["connstr"]);
SqlCommand mycomm=new SqlCommand(sqlstr,myconn);
try
{
myconn.Open();
SqlDataReader dr;
dr=mycomm.ExecuteReader();
if(dr.Read())
{
Session["username"]=username.Text;
Session["password"]=password.Text;
Session["rights"] = dr["rights"].ToString();
Response.Redirect("index.aspx");
}
else
{
go_wrong.Text="对不起,您的用户名或密码不能为空且需准确输入 !";
}
}
catch(Exception er)
{go_wrong.Text=er.ToString();}
finally{myconn.Close();}
}
///////////////////////////////////////////////////////////////////////////////////////
string sqlstr="select * from company_admin where username='"+username.Text+"' and password='"+password.Text+"'";
这一句:典型的SQL漏洞
可以改写为:
string sqlstr="select * from company_admin where username=@username and password=@password";
或者
用存储过程
另外一般的WEB数据提交到数据时都要经过Replace("'","''")转换
也可以采用参数
sqlcommand cmd=new sqlcommand ("select * from usertable where 用户名=@user and 密码=@pwd",conn);
cmd.param***.add("@user","用户名");
cmd.param***.add("@pwd","密码");
当然
也可以用MD5加密
典型错误程序如下:
private void login_ok_Click(object sender, System.EventArgs e)
{
string sqlstr="select * from company_admin where username='"+username.Text+"' and password='"+password.Text+"'"; // 这一句:典型的SQL漏洞
SqlConnection myconn=new SqlConnection(ConfigurationSettings.AppSettings["connstr"]);
SqlCommand mycomm=new SqlCommand(sqlstr,myconn);
try
{
myconn.Open();
SqlDataReader dr;
dr=mycomm.ExecuteReader();
if(dr.Read())
{
Session["username"]=username.Text;
Session["password"]=password.Text;
Session["rights"] = dr["rights"].ToString();
Response.Redirect("index.aspx");
}
else
{
go_wrong.Text="对不起,您的用户名或密码不能为空且需准确输入 !";
}
}
catch(Exception er)
{go_wrong.Text=er.ToString();}
finally{myconn.Close();}
}
///////////////////////////////////////////////////////////////////////////////////////
string sqlstr="select * from company_admin where username='"+username.Text+"' and password='"+password.Text+"'";
这一句:典型的SQL漏洞
可以改写为:
string sqlstr="select * from company_admin where username=@username and password=@password";
或者
用存储过程
另外一般的WEB数据提交到数据时都要经过Replace("'","''")转换
也可以采用参数
sqlcommand cmd=new sqlcommand ("select * from usertable where 用户名=@user and 密码=@pwd",conn);
cmd.param***.add("@user","用户名");
cmd.param***.add("@pwd","密码");
当然
也可以用MD5加密
相关文章推荐
- 利用SQL漏洞强行登录及防范方法
- 利用SQL注入漏洞登录后台的实现方法
- 利用SQL注入漏洞登录后台的实现方法
- 利用SQL注入漏洞登录后台的实现方法
- 利用SQL注入漏洞登录后台的实现方法
- 利用SQL注入漏洞登录后台的实现方法
- Dvbbs7.1 sp1 SQL版savepost.asp注入漏洞分析、利用及防范
- IIS短文件名泄露漏洞危害及防范方法(转)
- 网站漏洞解析及黑客入侵防范方法
- ASP MVC利用控制器的OnActionExecuting方法,实现过滤,实现Session登录校验
- 记录一次攻击事件(redis 未授权漏洞利用直接登录服务器) 推荐
- java web项目中利用log4j将mybatis执行的sql打印至控制台的方法
- C#批量保存方法-利用Net SqlBulkCopy 批量导入数据库,速度超快-通用方法源码提供
- 防止利用系统漏洞轻轻松松绕过你的验证码的方法
- 利用SQL注入漏洞拖库的方法
- PHP程序漏洞产生的原因和防范方法
- SqlServer sa 用户登录失败的解决方法
- ASP网站漏洞解析及黑客入侵防范方法
- sqlplus登录方法