IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SQL注入之提交方式注入类型和查询方式注入类型 -> 正文阅读

[大数据]SQL注入之提交方式注入类型和查询方式注入类型

提交方式类型注入

GET方式注入

get注入方式比较常见,主要是通过url中传输数据到后台,带入到数据库中去执行,可利用联合注入方式直接注入

POST方式注入

post提交方式主要适用于表单的提交,用于登录框的注入
方法:利用BurpSuite抓包进行重放修改内容进行,和get差别是需要借助抓包工具进行测试,返回结果主要为代码,也可转化为网页显示

Request方式注入

概念:超全局变量 PHP中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可以用,这些超全局变量是: $REQUEST(获取GET/POST/COOKIE)COOKIE在新版本已经无法获取了 $POST(获取POST传参) $GET(获取GET传参) $COOKIE(获取COOKIE传参) $_SERVER(包含了诸如头部信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组)

HTTP头注入

什么是Header头?
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机响应消息。
这两种类型的消息有一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。
HTTP的头域包括通用头,请求头,响应头和实体头四个部分

什么是Header头部注入?
header注入,该注入是指利用后端验证客户端信息(比如常用的cookie验证)或者通过header中获取客户端的一些信息(比如User-Agent用户代理等其他header字段信息),因为这些信息在某些地方是会和其他信息一起存储到数据库中,然后再在前台显示出来,又因为后台没有经过相对应的信息处理所以构成了sql注入。

COOKIE方式注入

概念:HTTP协议本身是无状态的,什么是无状态呢,即服务器无法判断用户身份,cookie实际上是一小段的文本信息(key-value格式),用于记录用户状态。
前提是:有交互记录,有cookie记录
有报错信息可以利用报错注入

XFF方式注入

X-Forwarded-For:
简称XFF头,代表了HTTP的请求端真实IP。
是客户端通过HTTP代理或者负载均衡器连接到web服务端获取源IP地址的一个标准(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库或某文件,通过修改XXF头可以实现伪造IP)

User-Agent方式注入

UA的基本概念: User Agent中文名为用户代理,简称UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本,CPU类型,浏览器及版本,浏览器渲染引擎,浏览器语言,浏览器插件等。

Referer方式注入

REFERER的基本概念: HTTP Referer是heade的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面连接发过来的,服务器因此可以获得一些信息用于处理。

查询方式注入

select注入

select的SQL语句多半如下(最常见):
$sql="SELECT users.username,user.password FROM users WHERE users.username=$uname and users.password=$passwd ORDER BY uesr.id DESC LIMIT 0,1";

insert注入

insert的SQL语句多半如下:
$insert="INSERT INTO 'security'.'uagents' ('uagent','ip_address','username') VALUES ('$uagent','$IP','$uname')";
若useragent字段未做任何处理,可实现SQL注入

update注入

update的SQL语句多半如下:
$update="UPDATE ueses SET password ='$passwd' WHERE username = '$row1'";
若password字段未做任何处理,可实现SQL注入

order by注入

order by的SQL语句如下:
$sql = "SELECT * FROM users ORDER BY $id";
尝试 ?sort=1 desc 或者asc,显示结果不同,则代表可以注入。(升序or降序排列)
从上述的 sql 语句中我们可以看出,我们的注入点在 order by 后面的参数中,而 order by 不同于的我们在 where 后的注入点,不能使用 union 等进行注入。

order by注入原理和思路

order by注入原理:order by注入是因为源码里使用了order by 带入了数据库查询,构成了order by注入

order by注入思路:可利用order by后的一些参数进行注入。
order by 后的数字可以作为一个注入点,也就是构造order by 后的一个语句,让该语句执行结果为一个数,
我们尝试http://127.0.0.1/?sort=right(version(),1)
没有报错,当时right换成left都一样,说明数字没有起作用,我们考虑布尔类型,此时可以用报错注入和延时注入。
此时可以直接构造?sort= 后面的一个参数,此时,我们可以有三种形式
1、直接添加注入语句,?sort=(select ******************)
2、利用一些函数,例如rand()函数等。?sort=rand(sql 语句)
3、利用and,例如?sort=1 and(加sql 语句)。
同时,sql语句可以利用报错注入和延时注入的方式,语句我们可以很灵活的构造

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 10:14:40  更:2021-09-18 10:17:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:49:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码