日期:2014-05-17  浏览次数:20406 次

关于sql注入的请教
刚才看了这个帖子
http://topic.csdn.net/u/20121011/08/ed0d9538-0ed1-49c4-95c3-0fc1ef686aa2.html

他的登录代码是这样的:
PHP code
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$sql="select * from users where username='$username' and password='$password'";

后来根据他的方法,在知道用户名的情况下确实可以绕过密码提交登录成功。

不过他的方法首要先满足get_magic_quotes_gpc过滤关闭的情况下,这是基础条件。

然后他的登录代码似乎太落后了,现在的密码一般都是用md5加密一下,比如我的登录验证一般是这样写的:
PHP code
$username = $_REQUEST['username'];
$password = md5($_REQUEST['password']);//改了这行
$sql="select * from users where username='$username' and password='$password'";

这样提交表单得到的$sql就成了:
Select * from users where username='sean' and password='7e2705cbd698f255b7fe11eff40de898'


像这种情况应该怎么注入呢?

------解决方案--------------------
不是还有 $username 吗?干嘛非要是 $password

只要 magic_quotes_gpc = on 这些小儿科的攻击立即失效