我就是按照文中例子,亲自在我之前用final框架做的项目中,操作了一遍,的确是实现了用户登录。
在不知道用户名和密码的情况下实现了用户登录
重现sql注入过程如下:
1、在用户名输入' or 1=1 --,然后随便输入一个密码
[attach]123370[/attach]
2、点击登录,我竟然登录进去系统了。
为什么呢?
debug一下源代码,就不难知道原因。
[attach]123371[/attach]
点击登录,得到的sql语句是:
select * from AUTH_USER t where t.LOG_IN_NAME='' or 1=1 --' and t.PASSWORD='gdd'
放入oracle去执行:
[attach]123372[/attach]
返回了所有的用户信息,这样authUser就肯定不是null了,表示数据库有相关用户,当然就算是登录成功了。
果不其然成功进入了系统界面,这样用户就算是登录了,虽然是一个随机的一个用户,但是该用户的操作他都可以干,甚至如果知道框架的action地址,那么在浏览器中输入功能的action的地址,他想干什么就干什么了。
[attach]123373[/attach]
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |