sqli-labs (2)
励志语录
青年是学习智慧的时期,中年是付诸实践的时期。——卢梭
1.知识点
sql注入常见参数
user():当前数据库用户
database():当前数据库名
concat():联合数据,用于联合两条数据结果。如 concat(username,0x3a,password)
group_concat():和 concat() 类似,如 group_concat(DISTINCT+user,0x3a,password),用于把多条数据一次注入出来
concat_ws():用法类似
MySQL基础知识
MySQL默认的数据库有: sys、mysql、performance_schema、information_schema
information_schema存放着所有的数据库信息(5.0版本以上才有这个库)
这个库有3个表:
SCHEMATA 该表存放用户创建的所有数据库库名
SCHEMA_NAME 字段记录数据库库名
TABLES 该表存放用户创建的所有数据库库名和表名
TABLE_SCHEMA 字段记录数据库名
TABLE_NAME 字段记录表名
COLUMNS 该表存放用户创建的所有数据库库名、表名和字段名
TABLE_SCHEMA 字段记录数据库名
TABLE_NAME 字段记录表名
COLUMN_NAME 字段记录字段名
2.题解
注:因题目简单所以下解题步骤大多以图片显示不再做过多解释
方法一:
经过判断字段数为3
数据库名为security
爆出的表名有四个:emails,referers,uagents,users
注:在sql注入语句结尾数据库名security要用单引号引起来否则会出错
在users表中得到了payload如下图
方法二:
判断sql注入和猜测字段的方法不变
接下来用另一种类似的方法解出数据库名
字段为3
爆数据库
接下来爆表名字段名等等和方法一类似,第二种方法只是将id=1换成了id=-1,因为数据库中没有id=-1的数据,所以会返回union select的结果,第二种方法感兴趣的朋友可以接着去尝试一下。
如果还有任何问题或者想更深入了解sql注入可查看
sql整数型/字符型注入:https://blog.csdn.net/qq_44985415/article/details/108291352
狼组web安全知识文库:https://wiki.wgpsec.org/knowledge/web/sql-injection.html#union%E6%B3%A8%E5%85%A5