在上一节我们说完了带有注入 漏洞 的程序的编写,但是大家能发现那里出现漏洞了么?
其实漏洞就出现在 数据库 查询语句中,由于数据库查询的规范为拼接查询。在编写上面的 asp 程序大家也注意到 sql 查询其实是以字符串形式被赋值给 sql 的。这就导致拼接的一部分内容是客户端填写的,当一个熟悉 sql 查询的用户对其提交恶意构造的内容使 sql 变量按照用户的需要去获取信息,这样就会产生注入了。
比如说我们在上面的测试代码后的 id 提交值加入 1 and username= admin 这样的字符串,如图所示
这样 sql 语句就变成了 select * from admin where id=1 and username=admin 。返回的也是 admin ,因为我们的提交并没有破坏查询语句,而 admin 的 id 也为 1 所以就会返回 admin 的信息。
那么当我们提交一个不存在的用户名呢?肯定不会返回信息了,因为 sql 查询中不会查询到内容导致 BOF 记录为 true ( -1 )就会返回暂无记录。
查看更多关于2.2.2.1 注入的产生 - 网站安全 - 自学php的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did11103