注入类型(一)

一、整数类型

1 and 1=1 #

1 or 1=1 --+

二、字符串类型

1' and '1'='1 --+

1' and '1'='1 #

三、搜素类型

搜索型注入,需要额外的考虑后面的问题

总结: 

 前闭合    '    "    ')    ")    %'    %"    无
 后闭合    '    "    ('    ("    '%    "%    无        #    --[ ]

四、编码类型

        编码类型的注入是指攻击者在输入数据时,对特殊字符进行编码,以绕过web应用程序的安全防护机制。常见的编码类型包括URL编码、HTML实体编码和Base64编码等。

        例如,攻击者可以使用URL编码来绕过WAF的检测。URL编码将特殊符号转换为相应的百分号加字母的形式,如空格被转换为20%,如果web应用程序没有正确处理URL编码的数据,攻击者就可以通过在输入参数中插入恶意代码来执行SQL注入攻击。

五、json类型

什么是json

json:js JAascript o Object n Notation

就是一种数据格式,与任何编程语言无关,但是任何编程语言都会用

目的:网络之间的数据通信

json的语法格式

数据类型:字符串、数值、布尔值。json中没有注释

符号类型:逗号、引号、方括号、大括号、冒号

表现形式:key:value

关于括号:

  • 大括号:表示对象类型
  • 方括号;表示;集合
{"name": "张三","age": 30,"gender": "男","hobbies": ["篮球", "足球", "游泳"]
}

六、宽字节注入

什么是宽字节注入

        宽字节是相对于ASCII这样单字节而言的,像GB2312、GBK、GB18030、B1G5等这些数据都是常说的宽字节,实际上只有两字节。GBK是一种多字符的编码,通常来说,一个gbk编码汉字,占用两个字节。一个utf8编码的汉字,占用3个字节。

        转义函数:为了过滤用户输入的一些数据,对特殊的字符加上反斜杠"\"进行转义。

        宽字节注入是指MySQL数据库在使用宽字节(GBK)编码时,会认为两个字符是一个汉字(前一个ASCII码要要大于128(比如df%),才到汉字的范围),而且当我们输入单引号时,MySQL会调用转义函数,将单引号变为\'    其中\的十六进制是5c%,mysql的GBK编码会认为df%5c%是一个宽字节,也就是一个汉字運,从而使单引号闭合(逃逸),进行注入攻击。

注入语句: 1' and 1=1 --+        # 不可注入
注入语句: 1df%' and 1=1 --+     # 可注入
df%'  →  df%\'  →  df%5c%27%  →  汉字'  #可注入 

宽字节注入漏洞条件

MySQL的字符集必须是双字节【支持GBK、不支持gb2312 、utf8】

编码:

将人类字符和机器码进行转换

  • ASCII:用一个字节表示一个字符,一共有2^8=256个
  • ANSI:用两个字节表示一个字符,对ASCII进行扩展后的结果

中文编码

GB2312 中国最早的汉字编码标准之一,它包含了基本的汉字、符号、数字等共收录了7445个字符

GBK 是GB2312的扩展版本,共收录了2万多个字符。GBK编码采用双字节表示一个中文字符

各种编码的字节数

  • ASCII:1字节
  • ANSI:2字节
  • UTF8:字母1字节,希腊字符2字节,汉字3字节

字符大小为一个字节时为窄字节,字符大小为两个以上的字节时为宽字节。

七、提交数据方式

$_GET['k']        url值
$_POST['k']       请求体
$_COOKIE['k']     cookie中指
$_REQUEST['k']    以上三种
$_SERVER['k']     http头

多种提交数据的方式有何区别?

能传递数据大小不同,具体大小是由浏览器决定的

能传递的数据类型不同

能实现的功能不同

总结:

<?php
header("Content-type:text/html; charset=utf-8");
$get = $_GET["k1"];
$post = $_POST['k2'];
$cookie = $_COOKIE['k3'];
$request = $_REQUEST['k1'];$http_host = $_SERVER['HTTP_HOST'];
$ua = $_SERVER['HTTP_USER_AGENT'];
$ip = $_SERVER['HTTP_X_FORWARD_FOR'];echo "传递的get参数:$get <br>";
echo "传递的post参数:$post <br>";
echo "传递的cookie参数:$cookie <br>";
echo "传递的request参数:$request <br>";
echo "传递的http_host参数:$http_host <br>";
echo "传递的ua参数:$ua <br>";
echo "传递的ip参数:$ip <br>";

常见的注入点

  • url中
  • 登录、注册页面
  • 后台需要记录客户端的IP地址
  • 网站根据客户端的类型不同选择要显示的页面

网站记录客户端的IP地址

记录在日志文件中

记录在数据库中

如何判断是记录在数据库?

        要判断数据是记录在日志文件中,还是记录在数据库中,首先我们需要明确日志文件和数据库的基本功能。日志文件一般用来记录对数据库的操作信息或者测试时打印一些数据信息,例如,对数据库的操作等引起的问题,或者查看回调传过来的信息。而数据库通常用于长期存储和管理大量的数据。

        对于网站来说,如果它记录客户端带的IP地址,那么这些信息可能被存储在日志文件中,用于追踪访问者的活动,或是用来分析和优化网站的性能,另一方面,这些信息也可能被存储在数据库中,以便进行更复杂的数据分析或报错生成。

判断客户,选择要展示的页面

根据:pc、手机、平板

OS:安卓、IOS

浏览器:火狐、Google、IE

八:post注入

        所谓POST注入就是我们在前端提交数据的时候,前端使用的是POST方式提交的数据,说白了跟GET注入没有什么本质上的区别,无非就是提交数据的方式改变了,而注入的技巧思路都是一样的。

手工注入

抓包、修改值

sqlmap

-r xx.txt

-u url --data id=1

九、XFF注入

        XFF注入,全程为X-Forwarded-For注入,是SQL注入的一种特殊形式。这种攻击方式利用了HTTP请求头中的一个字段X-Forwarded-For,这个字段用于识别通过HTTP代理或负载均衡方式连接到web服务器的客户端最原始的IP地址。

        在XFF攻击中,攻击者尝试修改X-Forwarded-For头中的值,对带入系统中的dns进行SQL注入,进而达到欺骗服务器执行恶意的SQL命令的目的。如果成功,攻击者就可能获取到网站的数据库内容。

检测条件:

1、web业务运行正常

2、HTTP Header 中存在X-Forwarded-For参数的调用

XFF的危害

  1. 数据库信息泄露:数据库中存放的用户的隐私信息的泄露。
  2. 网页篡改:通过操作数据库对特定网页进行篡改
  3. 网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击
  4. 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员账户篡改
  5. 服务器被远程控制,被安装后门。经由数据库,服务器提供的操作系统支持,让黑客得以修改或控制操作系统。

十、Cookie注入

什么是Cookie

        cookie就是代表你身份的一段字符串,网站根据cookie来识别你是谁,如果你获取了管理员的cookie,你可以无需密码直接登录管理员账号。

Cookie注入的原理是:就是修改Cookie

Cookie注入形成有两个必须条件:

        条件1是:程序对get和post方式提交的数据进行了过滤,但未对Cookie提交的数据进行过滤

        条件2是:在条件1的基础上还需要程序对提交数据获取方式是REQUEST(''xxx")的方式,未指明使用REQUEST对象的具体方式进行获取,也就是说用request这个方法获取的参数可以是在URL后面的参数,也可以是Cookie里面的参数这里没有做筛选,之后的原理就像我们的sql注入一样了。

为什么要做Cookie注入

主要是看看程序员有没有在Cookie中做了一些过滤,我们有没有可乘之机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/800805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百度松果菁英班——机器学习实践五:明星图片爬取

飞桨AI Studio星河社区-人工智能学习与实训社区 &#x1f96a;图片爬取 import requests import os import urllib ​ class GetImage():def __init__(self,keyword大雁,paginator1):# self.url: 链接头self.url http://image.baidu.com/search/acjson?self.headers {User…

Linux安装并配置Miniconda

miniconda官方文档&#xff1a; Miniconda — Anaconda 文档 官方文档中有讲到怎么安装Miniconda&#xff0c;如下&#xff1a; 以下是我得出的经验&#xff1a; 1. 新建新目录并下载和安装miniconda&#xff08;安装过程中&#xff0c;当提示是否继续时&#xff0c;一直按回…

蓝桥杯22年javaB组省赛真题

22年java_b组题目解析 写该博客既是为了分享题目解法&#xff0c;也是对之前写的题复习&#xff0c;毕竟已经24年了&#xff0c;写22年的题解 233&#x1f92d; 文章目录 22年java_b组题目解析A.星期计算(填空题)B.山&#xff08;填空题&#xff09;C.字符统计&#xff08;编…

day75 js 正则表达式 window对象轮播图片调用定时器

一 正则表达式: RegExp 对象: 对字符串执行模式匹配的强大工具。 1 创建正则表达式对象 let reg /模式/修饰符 修饰符 attributes 是一个可选的字符串&#xff0c;包含属性 "g"、"i" 和 "m"&#xff0c; …

Azure的VFP和虚拟IP地址

Azure 的Virtual filtering platform (VFP) 是Azure 网络地址转换,端口转换和端口分配的基础。 下面我们来深入介绍一下VFP的工作方式。 VFP的出站动作。 对于客户端地址作为虚拟IP的出站目的地址的时候,VFP 驱动会负责做以下两个动作。 源地址转换。端口地址转换。VFP 和 S…

20240325-1-HMM

HMM 直观理解 马尔可夫链&#xff08;英语&#xff1a;Markov chain&#xff09;&#xff0c;又称离散时间马尔可夫链&#xff08;discrete-time Markov chain&#xff0c;缩写为DTMC&#xff09;&#xff0c;因俄国数学家安德烈马尔可夫&#xff08;俄语&#xff1a;Андре…

【C++进阶】用哈希实现unordered_set和unordered_map的模拟

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;c大冒险 总有光环在陨落&#xff0c;总有新星在闪烁 前言&#xff1a; 之前我…

H5移动端 Vue3 + vue-virtual-scroller 实现长列表性能优化

文章目录 安装 vue-virtual-scroller引入&#x1f4e2;注意事项使用基础使用上拉加载下拉刷新 移动端在渲染长列表时 大量dom节点的渲染和重绘重排会导致页面卡顿、滚动不流畅、设备耗电加快、影响移动设备电池寿命等性能问题 这里分享使用【虚拟滚动】方案进行长列表优化&…

【C++ STL算法】sort 排序

文章目录 【 1. 基本原理 】【 2. sort 的应用 】实例 - sort 函数实现 升序排序和降序排序 函数名用法sort (first, last)基于 快速排序&#xff0c;对容器或普通数组中 [ first, last ) 范围内的元素进行排序&#xff0c;默认进行升序排序&#xff08;从小到大&#xff09;。…

2024年面试AI编译器岗经验总结

面试经历: 面试中必备的知识: 1.用C++实现一个卷积 (图解)一步一步使用CPP实现深度学习中的卷积 - GiantPandaCVGiantPandaCVhttp://giantpandacv.com/academic/%E7%AE%97%E6%B3%95%E7%A7%91%E6%99%AE/%E5%B0%BD%E8%A7%88%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E…

Mac 下载 (FinallShell)

FinalShell 官网&#xff1a;FianlShell官网 FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求. 特色功能: 免费海外服务器远程桌面加速,ssh加速,本地化命令输入框,支持自动补全,命令历史,自定义命令参数 Win…

自然语言处理——计算编辑距离

编辑距离(Levenshtein距离)的概念和计算方法 编辑距离(Levenshtein距离)的概念和计算方法深入地探讨了字符串之间的差异和相似度。通过测量一个字符串变换成另一个字符串所需的最小单字符编辑操作次数,我们能够量化两个字符串之间的相似程度。编辑距离的核心在于识别和执…

git 常用命令和使用方法

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

2014最新AIGC创作系统ChatGPT网站源码+AI绘画网站源码+GPT4-All联网搜索模型

一、文章前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持…

[C++][算法基础]字符串哈希(哈希表)

给定一个长度为 n 的字符串&#xff0c;再给定 m 个询问&#xff0c;每个询问包含四个整数 l1,r1,l2,r2&#xff0c;请你判断 [l1,r1] 和 [l2,r2] 这两个区间所包含的字符串子串是否完全相同。 字符串中只包含大小写英文字母和数字。 输入格式 第一行包含整数 n 和 m&#x…

HarmonyOS 应用开发-边缓存边播放案例

介绍 OhosVideoCache是一个支持边播放边缓存的库&#xff0c;只需要将音视频的url传递给OhosVideoCache处理之后再设置给播放器&#xff0c; OhosVideoCache就可以一边下载音视频数据并保存在本地&#xff0c;一边读取本地缓存返回给播放器&#xff0c;使用者无需进行其他操作…

Android Telephony框架

目录 一、简介二、应用层(Application)三、框架层(Framework)四、本地 RIL 层(RIL)五、驱动层(Modem)六、整体框架 一、简介 无论手机发展到如何智能的程度&#xff0c;最关键和重要的功能仍然是通讯&#xff0c;具体来说就是打电话、发短信、上网功能的使用。而整个 Android …

Centos 7 安装通过yum安装google浏览器

在CentOS 7上使用yum安装Google Chrome浏览器稍微复杂一些&#xff0c;因为Chrome并不直接包含在默认的Yum仓库中。按照以下步骤来操作&#xff1a; 1、添加Google Chrome仓库 首先&#xff0c;您需要手动添加Google Chrome的Yum仓库。打开终端&#xff0c;并使用文本编辑器&a…

【HDFS】 写数据报 NOT_ENOUGH_STORAGE_SPACE

一、问题描述 对测试集群做压测,实验配置如下: 10个Client、每个Client使用550线程去写80000个文件,每个文件10KB。 在测试的过程中,客户端侧报了很多写入失败的异常日志,如下所示。 提示信息显示3台运行的datanode都被exclude了,因此选不出节点写入导致写入失败。 13…

MySQL高可用搭建方案MHA

MHA架构介绍 MHA是Master High Availability的缩写&#xff0c;它是目前MySQL高可用方面的一个相对成熟的解决方案&#xff0c;其核心是使用perl语言编写的一组脚本&#xff0c;是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中&am…