猪猪 2007-11-16 14:02
什么是网站注入
最简单的形式 是通过
1 浏览器的地址条
假设 在你写程序的时候有这样的语句
A.ASP?ID=35
程序里sql : Select * from 表 Where id="&id
这里的结果本来是
执行结果sql : Select * from 表 Where id=35
这里 如果 id里的值 并不是35 而是 (35 or 另有用途的SQL语句)那么就会在去执行相应的SQL语句 达到知道数据库里的帐户密码的信息
如:地址栏上在后面 A.ASP?ID=35 or 1=1
则 执行的结果就成了 sql : Select * from 表 Where id=35 or 1=1
如果 黑客用的不仅仅是 or 1=1 还有其他 破坏的语句 把整个表删除都可以
这个是第一种情况
2 通过 登陆筐注入
如 有一个 用户筐和一个密码
判断 数据库中的 SQL语句大多数人是这样写的
Select * from 用户表 Where 用户名=用户名表单提交过来的值 and 密码=用户密码表单提交过来的值
如果黑客 在 用户名中输入 任意字符 如 2323
在 用户密码中输入 任意字符 如 232 再后面还带上 OR 1=1 那么 执行的SQL语句又是如何呢
Select * from 用户表 Where 用户名=2323 and 密码=232 OR 1=1
这样 用户就无条件接受这个数据成立 结果变是最前一条数据 而且经常是最高用户
这个也是程序员经常放的错误