2、Web攻防-SQL注入-联合查询注入

news/2024/11/29 8:52:36/

用途:个人学习笔记,有所借鉴,欢迎指正!

声明:只用于学习交流,点到为止,请勿非法测试。

概念:

联合查询注入:联合注入是回显注入的一种,也就是说联合注入的前提条件就是需要页面上能够有回显位。回显位就是客户端将数据展示在页面中,这个展示数据的位置就叫回显位。

报错盲注:报错注入就是利用了数据库的某些机制,人为的制造错误的条件,使得查询的结果能够出现在报错页面错误的信息中。

数据库内置函数:

       user() 数据库用户名
  database() 当前数据库名
  version() 当前数据库版本信息
  @@hostname 服务器主机名
  @@basedir 数据库安装路径
  @@version_compile_os 操作系统

 一、联合查询注入

联合查询步骤

  判断注入点——》判断注入类型(数字型或字符型)——》判断字段数——》判断显示位——》确定数据库名——》确定数据库的表名——》确定数据库的列名——》确定数据库的字段名——》获取数据。

1、判断注入点(理想情况)

(1)URL地址中的注入点,网址类似 :main.php?id=1等id值可注入的页面

(2)登录页面的注入点,点击登录后提交的账号密码都会拼接到SQL语句中查询与数据库中进行比对,所有账号和密码就存在注入点

 还有很多,只要用户提交的参数被拼接到SQL语句中和数据库交互,就存在注入点,当然仅仅是说存在注入点不一定成功,因为现在大数都有过滤参数和防火墙黑白名单等等另说。

2、判断注入类型(数字型或字符型)

 ?id=1 and 1=1--+         页面 正常      --+:SQL语句的注释符,注释符号后面的语句不执行
 ?id=1 and 1=2--+         页面 正常     如果不正常就可以判断为数字型
都正常基本上可以判断不是数字型了,然后用干扰字符尝试发现:
 ?id=1’ and 1=2–+        页面不正常
所以判断为字符型注入。 

3、判断表中字段数

  order by 函数是对MySQL中查询结果按照指定字段名进行排序,除了指定字段名还可以指定字段数进行排序,第一个查询字段为1,第二个为2,依次 类推。若输入数值为n时报错,那么表示没有n个字段,总的字段数为n-1。

4、判断显示位 

 通过上面得到字段数,后面通过union select 1,2,3…n(n为字段数)对其进行判断回显位。

例如:

www.sztest.net.cn/about.php?ID=1+and+1=2+union+select+1,2,3,4,5,6,7,8,9,10--+

 测出显示位:2和4

5、确定数据库名

将显示位替换成database() 例如:

www.shsuna.com/en/company.php?id=35+and+1=2+union+select+database()www.sztest.net.cn/about.php?ID=1+and+1=2+union+select+1,version(),3,database(),5,6,7,8,9,10

 mysql 5.0以下为低版本,5.0以上为高版本(有information_schema数据库)这个数据库是存储所有数据库名,表名,列名,相当于可以通过查询这个数据库获取指定数据库下面的表名列名信息。
  数据库中"."代表下一级,如haha.user表示haha数据库下的user表名
  information_schema.tables 记录所有表名信息的表
  information_schema.columns 记录所有列名信息的表
  information_schema.schemata 记录所有数据库信息的表
  table_schema 数据库名
  table_name 表名
  column_name 列名
  group_concat() 显示所有查询到的数据

 参考:

1、WEB攻防-通用漏洞&SQL注入&MYSQL跨库&ACCESS偏移-CSDN博客

SQL注入基础原理与案例(详细总结)_sql注入案例-CSDN博客


http://www.ppmy.cn/news/1360252.html

相关文章

板块一 Servlet编程:第三节 HttpServletRequest对象全解与请求转发 来自【汤米尼克的JAVAEE全套教程专栏】

板块一 Servlet编程:第三节 HttpServletRequest对象全解与请求转发 一、什么是HttpServletRequest二、接收请求的常用方法三、请求乱码问题四、请求转发:forward五、Request作用域getParameter和getAttribute的区别 在上一节中我们已经学习了完整的Servl…

phaseDNN文章解读

文章DOI: https://doi.org/10.48550/arXiv.1905.01389 作者是 Southern Methodist University 的Wei Cai 教授 A Parallel Phase Shift Deep Neural Network for Adaptive Wideband Learning 一种并行移相深度神经网络来自适应学习宽带频率信号 20190514 核心思想:…

轻松制作商业画册的秘籍

对于许多商业人士来说,制作一本精美的商业画册是一个重要的任务,它不仅代表了公司的形象,也是与客户和潜在客户建立联系的重要工具。然而,制作一本商业画册并不像看起来那么简单。有许多因素需要考虑,包括设计、布局、…

Spring Boot 常用注解大全

以下是Spring Boot中常用的注解及其详细解释以及相应的代码示例: SpringBootApplication: 这个注解用于标识一个Spring Boot应用的主类。它整合了 Configuration,EnableAutoConfiguration 和 ComponentScan。 SpringBootApplication public class Demo…

深度优先搜索-DFS

介绍 英文全称:Deep First Search 枚举所有完整路径来遍历所有情况的搜索方法 return不同情况的介绍 问题描述 在n件物品中,输入其容量与价值。给定容量,求物品的价值之和最大值。 思路 用DFS思想来看,每件物品有选择与不选择…

Windows下面使用C# 获取记事本里面的文本内容并返回数据

C#中平常我们用到最多的读取文件的方法是通过System.IO里面提供的类来操作文件,这里就不再赘述,今天我们用另外一种特殊的方式来取指定文件能用记事本打开的的文件内容。原理大概是用windows底层提供的函数去读取记事本里面的内容。大概流程如下:程序启动记事本进程并打开指…

Excel快速下拉填充数据至9999行,再筛选出想要的数据

1 测试计算公式 2 选中单元格 3 批量赋值 4 数据筛选: 数据 -> 自动筛选 ,列头出现三角箭头,进行过滤就可以了

B树的介绍

R-B Tree 简介特性B树特性m阶B树的性质(这些性质是B树规定的) B树的搜索B树的添加B树的删除——非叶子结点 简介 R-B Tree又称为Red-Black Tree,红黑树。是一种特殊的二叉查找树,红黑树的每个节点上都有存储为表示结点的颜色&…