黑客攻防技术宝典 — Notes 6.1 注入攻击 — SQL注入

这章讲了很多SQL注入相关的攻击手段,但现在大部分网站都没有这个漏洞了。

只有一点可以稍提一下,就是 Second Order SQL Injection

比如说,你写的用户名是 foo’,由于系统使用了防注入,所以这种用户名没有引起问题,foo’ 被存进入了数据库

然后你要求修改 foo’ 的密码。这时系统从数据库里取出用户名,由于
系统只防止了用户输入中的非法字符,而对数据库中已有的数据没有去预防,因此就有可能造成这样的SQL:

   

select password from user where name = 'foo'' 

这就会产生数据库语法错误。如果 你设定的用户名是

  ‘ or 1 in (select password from users where userame=’admin’) —

那最终的SQL就是

   

 select password from user where name = ' ' or 1 in (select password from users where userame='admin') --

这样就会产生一条数据类型转换异常,并且可能会将admin的密码打印出来

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.