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

漏洞挖掘-利用

一、文章简介

        整合一些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漏洞&#xff0c;以及对漏洞的理解。 二、Web漏洞 1.SQL注入 &#xff08;1&#xff09;定义 开发者程序编写过程中&#xff0c;对传入用户数据过滤不严格&#xff0c;将可能存在的攻击载荷拼接到SQL查询语句当中&#xff0c;再将这些查询语句传递到…...

React钩子函数之useDeferredValue的基本使用

在React中&#xff0c;使用钩子函数可以方便地管理组件的状态和副作用。useDeferredValue是React 18中新引入的钩子函数之一&#xff0c;它可以帮助我们优化渲染性能&#xff0c;让组件更加流畅。 useDeferredValue的作用是将一个值延迟更新。这个值可以是状态、属性或其他变量…...

lodash常用方法

cloneDeep 克隆 import { cloneDeep&#xff0c;reduce } from lodash; const b {c:1} const a cloneDeep(b)debounce 防抖 import { debounce } from lodash; debounce(() > {}, 300, { trailing: true })()omit方法删除指定属性&#xff0c;返回一个新的对象 import …...

QByteArray与结构体之间相互转换

Qt项目会碰到自定义结构体和字符数组之间的转换问题&#xff0c;不妨假设结构体名字为custom_struct, 字符数组名字为array_data QByteArray转换为自定义结构体 custom_struct *struct_data reinterpret_cast<custom_struct *>(array_data.data());自定义结构体转换为…...

npm如何安装淘宝镜像

通过命令配置 这种方法是通过修改npm的全局配置文件&#xff0c;将默认的镜像源改为淘宝镜像。具体步骤如下&#xff1a; 打开终端&#xff0c;输入以下命令&#xff0c;设置淘宝镜像源&#xff1a;&#xff08;windowr&#xff09; npm config set registry https://registr…...

从项目中突显技能:在面试中讲述你的编程故事

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

python的观察者模式案例

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言二、具体代码写在结尾 前言 最近写安卓的代码比较多&#xff0c;了解了java代码的注册回调机制&#xff0c;也就是观察者模式&#xff0c;搜索了一下python也有…...

C语言——类型转换

数据有不同的类型&#xff0c;不同类型数据之间进行混合运算时涉及到类型的转换问题。 转换的方法有两种&#xff1a; 自动转换(隐式转换)&#xff1a;遵循一定的规则&#xff0c;由编译系统自动完成强制类型转换&#xff1a;把表达式的运算结果强制转换成所需的数据类型 语法格…...

jmeter性能测试入门完整版

1. Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言&#xff0c;JMeter小巧轻便且免费&#xff0c;逐渐成为了主流的性能测试工具&#xff0c;是每个测试人员都必须要掌握的工具之一。 本文为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 地址的原理和防范措施

在数字化时代&#xff0c;网络安全是至关重要的话题。其中&#xff0c;伪造 IP 地址是一种可能导致网络攻击和欺诈的技术手段。这里将深入探讨伪造 IP 地址的原理以及如何采取措施来防范这种风险。 一.伪造 IP 地址的原理 伪造 IP 地址是一种操纵网络通信的方式&#xff0c;它…...

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智能通信与网络国际学术会议&#xff08;ICN 2023&#xff09; 2023 International Conference on Intelligent Communication and Networking (ICN2023) 2023智能通信与网络国际学术会议&#xff08;ICN 2023&#xff09;将于2023年11月10-12日在中国常州召开。ICN 2023…...

Android投屏总结

#android手机投屏 ####导语 至于手机投屏的实现方法可谓五花八门&#xff0c;今天小袁就说下以开发人员的角度来说下当今手机的主流投屏方法。目前这种将终端信号经由WiFi传输到电视、电视盒的技术有三种&#xff1a;DLNA、AirPlay、Miracast、Google Cast。 ##手机投屏智能电…...

vue2 组件组成部分,组件通信,进阶语法

一、学习目标 1.组件的三大组成部分&#xff08;结构/样式/逻辑&#xff09; ​ scoped解决样式冲突/data是一个函数 2.组件通信 组件通信语法父传子子传父非父子通信&#xff08;扩展&#xff09; 4.进阶语法 v-model原理v-model应用于组件sync修饰符ref和$refs$nextTic…...

信看课堂笔记—LDO和DC-DC电路打PK

LDO&#xff08;low dropout voltage regulator&#xff0c;低压差线性稳压器&#xff09;和DC-DC(Direct current-Direct current converter&#xff0c;直流电压转直流电压转换器)电源是非常常见的电源电路&#xff0c;LDO 出来的比较早&#xff0c;像老戏骨一样&#xff0c;…...

C++ Day6

目录 一、菱形继承 1.1 概念 1.2 格式 二、虚继承 2.1 作用 2.2 格式 2.3注意 三、多态 3.1函数重写 3.2 虚函数 3.3 赋值兼容规则 3.4 多态中&#xff0c;函数重写的原理 3.5 虚析构函数 3.5.1 格式 3.6 纯虚函数 3.6.1格式 四、抽象类 五、模板 5.1模板的特…...

分布式系统与微服务的区别是什么?

分布式系统和微服务是两个相关但不同的概念&#xff0c;它们都是在构建复杂的软件应用时使用的架构思想。 分布式系统&#xff1a; 分布式系统是指由多个独立的计算机或服务器通过网络连接共同工作&#xff0c;协同完成一个任务或提供一个服务。在分布式系统中&#xff0c;各个…...

python:用python构建一个物联网平台

要使用Python构建物联网平台&#xff0c;您需要考虑以下步骤&#xff1a; 确定平台的基本要求和功能 首先&#xff0c;您需要明确您将要构建的平台的功能和特点。例如&#xff0c;您可能需要支持多种设备&#xff0c;并使用各种传感器来收集数据。您可能需要实现实时数据可视化…...

基于Qt5开发图形界面——WiringPi调用Linux单板电脑IO

Qt5——WiringPi Qt5WiringPi示例教程 Qt5 Qt是一种跨平台的应用程序开发框架。它被广泛应用于图形用户界面&#xff08;GUI&#xff09;开发&#xff0c;可以用于构建桌面应用程序、移动应用程序和嵌入式应用程序。Qt提供了丰富的功能和工具&#xff0c;使开发人员可以快速、高…...

不只是连线:用Cadence Virtuoso做PMOS/NMOS版图布局时,那些影响性能和良率的细节(以RF器件为例)

不只是连线&#xff1a;用Cadence Virtuoso做PMOS/NMOS版图布局时&#xff0c;那些影响性能和良率的细节&#xff08;以RF器件为例&#xff09; 在集成电路设计中&#xff0c;版图布局远不止是将晶体管简单连接起来的过程。特别是对于RF器件&#xff0c;版图的每一个细节都可能…...

Claude与OpenClaw整合指南:AI代码生成与自动化执行实战

1. 项目概述与核心价值最近在开发者社区里&#xff0c;一个名为“Claude-Code-x-OpenClaw-Guide-Zh”的项目引起了我的注意。乍一看这个标题&#xff0c;可能有些朋友会觉得它像是一个普通的工具集合或者文档翻译。但当我深入探究其背后的代码仓库和社区讨论后&#xff0c;我发…...

Ds18b20数字温度传感器

模拟温度传感器&#xff1a; 热敏电阻&#xff0c;&#xff0c; 输出的电压随着温度变化 将变化的电压值&#xff0c;&#xff0c;转化成数字信号&#xff0c;&#xff0c;&#xff0c; 这就是模拟传感器&#xff0c;&#xff0c;比较复杂&#xff0c;&#xff0c;这个数据只是…...

2026年青岛GEO优化服务商TOP5,哪家性价比最高?

行业痛点分析青岛地区GEO&#xff08;生成式引擎优化&#xff09;领域面临显著的技术挑战。据行业调研显示&#xff0c;超65%的本地企业存在“错配展现”问题&#xff0c;非目标区域消耗了20%以上的营销预算&#xff0c;导致获客成本平均上升30%。同时&#xff0c;AI大模型&…...

保姆级避坑指南:在Ubuntu 18.04上从零安装Carla 0.9.12/0.9.13(附版本选择与常见报错解决)

从零到精通&#xff1a;Ubuntu 18.04下Carla 0.9.12/0.9.13安装全攻略与深度排错手册 当自动驾驶开发者第一次打开Carla官方文档时&#xff0c;往往会被其丰富的功能所吸引——从多传感器融合到复杂交通场景模拟&#xff0c;这个开源的仿真平台几乎涵盖了自动驾驶研发的所有关…...

Carapace:动态生成Shell补全,统一管理命令行工具参数提示

1. 项目概述&#xff1a;一个能“读懂”你心思的Shell补全神器如果你在终端里敲命令时&#xff0c;经常记不住某个复杂工具的参数&#xff0c;或者厌倦了反复按Tab却得不到想要的提示&#xff0c;那么今天聊的这个项目&#xff0c;你一定会感兴趣。它叫Carapace&#xff0c;一个…...

铁路光纤熔接机推荐:鼎讯 TY-30H 性能参数与应用场景

在铁路与高速公路通信建设中&#xff0c;光纤熔接质量直接决定信号传输稳定性。鼎讯 TY-30H 光纤熔接机作为专为野外严苛工况设计的熔接设备&#xff0c;凭借高效、低耗、耐用的综合性能&#xff0c;成为铁路高速通信施工、日常维护及应急抢修的核心设备。一、鼎讯 TY-30H 光纤…...

【信息科学与工程学】【解决方案体系】第一篇 黑灯工厂解决方案06

大型电力变压器设计与制造全流程深度解析 第一部分:铁芯制造工艺体系 工艺模块 详细工艺步骤 核心工艺参数 其他参数 部件/原材料 控制指标/目标 加工设备类型 设备工艺/技巧/经验 1. 硅钢片原料检验​ 1.1 材料牌号确认(30ZH120, 27QG100等) 1.2 厚度测量(0.23mm, …...

别被OPC一人公司神话骗了 90%的人都踩错了这4个致命坑!

ONE PERSON COMPANY 别被OPC一人公司神话骗了 90%的人都踩错了这4个致命坑 ⚡ 三个50分远胜于一个100分 李笑来多维竞争力公式 一人公司实战复盘 &#x1f4a1;核心导读 一人公司不是"降低门槛"的捷径&#xff0c;而是"提高门槛"的生存方式。真正的门槛从…...

博客生成器架构设计:基于LLM与模块化流水线的自动化内容创作实践

1. 项目概述&#xff1a;一个博客生成器的诞生与价值在内容创作领域&#xff0c;效率和质量是永恒的矛盾。作为一名写了十几年博客的“老鸟”&#xff0c;我深知从灵光一闪到一篇结构清晰、排版美观的文章发布&#xff0c;中间有多少琐碎的步骤&#xff1a;构思大纲、撰写内容、…...