A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王国文 中级黑马   /  2012-6-5 14:44  /  1798 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. string dataDir = AppDomain.CurrentDomain.BaseDirectory;
  2. if (dataDir.EndsWith(@"\bin\Debug\")
  3. || dataDir.EndsWith(@"\bin\Release\"))
  4. {
  5. dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
  6. AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
  7. }
  8. string str = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\db5.mdf;Integrated Security=True;User Instance=True";
  9. using (SqlConnection conn = new SqlConnection(str))
  10. {
  11. conn.Open();

  12. using (SqlCommand cmd =conn.CreateCommand())
  13. {
  14. string name =txtName.Text;
  15. string password =txtPassword.Text;

  16. cmd.CommandText = "select count(*) from T_user where username =@name and password =@password";
  17. cmd.Parameters.Add(new SqlParameter("name",name));
  18. cmd.Parameters.Add(new SqlParameter("password",password));
  19. //int i =()cmd.ExecuteNonQuery();
  20. int i= (int)cmd.ExecuteScalar();
  21. if (i>=1)
  22. {
  23. MessageBox.Show("登录成功");
  24. }



  25. }
复制代码
在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句。这样就会导致应用程序的终端用户对数据库上的语句实施操纵。比方说,下面的这行代码就会演示这种漏洞:

statement := "SELECT * FROM users WHERE name = '" + userName + "'; "

这种代码的设计目的是将一个特定的用户从其用户表中取出,但是,如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句所执行的操作可能就不仅仅是代码的作者所期望的那样了。例如,将用户名变量(即username)设置为:

a' or '1'='1,此时原始语句发生了变化:

SELECT * FROM users WHERE name = 'a' OR '1'='1';

如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为赋值't'='t永远是正确的。


评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

3 个回复

倒序浏览
这个是一个很早以前的SQL 注入方式,无论你程序正常的SQL 语句是什么 Where条件后面跟一个 or '1'='1' 黑客让自己的代码改变整个代码的运行结果,永远都是正确的判断,所以这就是为什么会出现SQL 参数化参数的原因!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
SQL注入主要是SQL语句的拼接,不管这种还是别的只要拼接对了,就可以执行,利用这种方法 来提权
能掉到权,可以服务上随便大小便了,可以限定URL请求长度来防,

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
呵呵,我这边的编程思想是将文本框中的用户名密码整体获取成字符串后转成base64码,这样处理后就不存在引号了,然后再放入到sql语句中验证。呵呵,引号都转码了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马