limit函数的使用
limit有两种方式
1)limit a,b 后缀两个参数的时候(/*参数必须是一个整数常量*/),其中a是指记录开始的偏移量,b是指从第a+1条开始,取b条记录。(这里计数就是从id=1开始的没有从0开始)
2)limit b 后缀一个参数的时候,是直接取值到第多少位,类似于:limit 0,b 。
这里以dvwa数据库为例,这里面有两个表,
我们查询users表的数据,
limit 0,2从0开始读取2条
limit 2,默认和0 2一样
limit 3,2
limit是可以用于限制任何数据字段的输出用的,因为对应的字段名有很多列,比如这里user_id有5列
而不能用于查询表的字段是什么来使用,因为就只有一个表叫users,也就是说只有1个数据,见sqli-labs(5)
这里查的是表的字段名,而表只有1个,所以不能用limit来设置输出,而且updatxml报错输出是有长度限制的
这里改成了1,1,就没有输出了 是为什么呢?难道limit不起作用了?
并不是没起作用,是因为输出本来就变成一行了,所以1,1 输出的第二行是空的
这里用了group_concat() 会把输出变成一行,去掉这个函数,就可以用limit来搜索了
http://localhost/sqli-labs/Less-5/?id=1' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 1,1 ),0x7e),1)--+
在实际环境中可能会遇到有多个数据存在多张user表,那么这样从information表中查出来的就是所有user表的字段,所以加上
and table_schema ='security'
这样是最准确的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)