curl缓冲区溢出
背景cURL在2023年10月11日下午紧急发布最新版本。curl/libcurl 缓冲区溢出漏洞(CVE-2023-38545)
curl指的是curl命令行工具,作为组件广泛用于应用的HTTP请求,libcurl是它的一个开发库。
根据curl 8.4.0的代码修改情况推测https://github.com/curl/curl/commit/fb4415d8aee6c1
原代码:当hostname_len>255时,执行socks5_resolve_local = TRUE,进行本地解析
修改后:当hostname_len>255时,抛出报错。
条件:
使用socket5代理
主机名大于255字节
影响版本7.69.0 <= libcurl <= 8.3.0
漏洞复现环境:ubuntu20.04,python3.8,curl 8.3.0
启用socket5代理
12运行如下指令开一个socks5服务,端口8889ssh -D 8889 127.0.0.1
构造恶意站点:这里使用flask起一个服务端301.py,模仿攻击者 ...
pwn入门简单ROP
前言pwn一直都是一件难以搞懂的事情,今天跟着前辈的脚步一起来学习一下
正文定义PWN也可译为二进制漏洞挖掘,在CTF比赛中,PWN题的目标是拿到flag,一般是在linux平台下通过二进制/系统调用等方式编写漏洞利用脚本exp来获取对方服务器的shell,然后get到flag。总体的pwn要学很多,是个庞大的系统
基础知识不标识默认为x86架构
寄存器:12345678910x86:通用寄存器eax,ebx,ecx,edx索引寄存器esi,edl堆栈指针寄存器esp(栈顶),ebp(栈底不移动,通常用它做偏移计算)函数参数传递通过栈传递,数据一般从右往左被依次压入栈中例如:int function (int a,int b,int c ){ } 参数cba依次入栈,a在栈上层
12345x86-64:rdi,rsi,rdx,rcx,r8,r9函数参数传递通过寄存器传递参数先找这6个寄存器传递,当参数多于6个时,第7个开始也使用栈传递,和x86一样
例如:同一个函数my_fun(0,1,2,3,4,5,6)
1234567891032位程序处理:push ...
springboot-jolokia-RCE
前言前段时间在测试时侥幸挖到这个漏洞,原先只打算提交未授权访问,不过后面发现了jolokia logback,属于比较老的,但是危害极大,选择记录一下
正文jolokia logback XXE 引发的rceCVE-2018-1000130
从springboot actuator未授权访问漏洞引入
springboot官方文档对每个端点的功能进行了描述。
1、Spring Boot Actuator 1.x 版本默认内置路由的起始路径为 / ,2.x 版本则统一以 /actuator 为起始路径
当端点中使用了jolokia时,可能会存在XXE漏洞,远程加载XML但是没有过滤得当,导致加载了恶意代码造成RCE
关于jolokia,GPT是这么说的
JMX API,被称之为被管理的bean,或者MBean,漏洞存在于某些接口中,reloadByURL方法, 这个方法是造成RCE的关键。因为logback组件提供的reloadByURL操作使我们可以从外部URL重新加载日志配置
环境springboot1.x,jolokia1.6,java1.8(远程加载类还能用的JDK版 ...
2023陇剑杯预选赛
前言该比赛属于数据安全的范畴,大部分是流量分析、数据分析、内存分析。
正文EW(web流量)ez_web_1
文件是ez_web.pcap
文件是常用的数据报存储格式,可以理解为就是一种文件格式,只不过里面的数据是按照特定格式存储的,所以我们想要解析里面的数据,也必须按照一定的格式。普通的记事本打开pcap文件显示的是乱码,用安装了HEX-Editor插件的Notepad++打开,能够以16进制数据的格式显示,用wireshark这种抓包工具就可以正常打开这种文件,愉快地查看里面的网络数据报了,同时wireshark也可以生成这种格式的文件。当然这些工具只是我经常使用的,还有很多其它能够查看pcap文件的工具。
pcap文件的总体结构就是 文件头-数据包头1-数据包1-数据包头2-数据包2 等形式
使用wireshark打开文件,可以看到开始是ICMP协议的ping操作
既然显示后门,也不知道是什么文件类型,先从最简单的.php开始吧,搜索字符串有.php关键字的组,然后按长度的大小排列,我们优先看长的。成功找到疑似后门文件d00r.php
右键追踪TCP流,可以看到它在执行命 ...
JDK安装失败
前言今天在配置实验环境的时候一不小心卸载了所有的JDK,心想应该没什么,想要挨个重新安装就好了。但是就在安装JDK8的时候,.exe文件死活不运行,在尝试了多种方法无果后,看到了一个相似的案例,随后对应着自己所出现的问题一步一步重新将JDK8装了回来。
正文到官网下载自己所需的JDK安装文件 oracle官网
使用7z提取出文件
进入提取出来的文件,找到jdk-8u361-windows-x64.rsrc\1033\JAVA_CAB10下的这个文件,并提取文件
随后就会提取出tools压缩包,我们解压一下
解压后是这样的,和jdk基本一样了
然后再将这些文件移动到想要的位置并在地址栏打开cmd
在cmd中运行以下命令,成功运行结束后就算安装成功
1for /r %x in (*.pack) do .\bin\unpack200 -r "%x" "%~dx%~px%~nx.jar"
JDK修改版本链接文章
Linux随记
前言此为 Linux 的小笔记
正文Linux 系统文件结构Linux 系统不像 Windows 系统那样拥有注册表对系统进行统一的管理,而是由一个庞大树状结构的文件目录所组成,分散管理,以”/“开始,称为根目录。可以说 在 Linux 中都是文件。那么,该系统文件结构具体是什么样的呢?
注意:Linux 中的目录结构并不像 Windows 中的那样具有包含关系,Linux 中的目录只是一个引索点而已,不存在包含关系。
1级目录
存放的数据
/bin/
存放普通用户和 root 都可以执行的系统命令
/boot/
系统启动引导目录,存放跟系统启动相关的文件
/dev/
设备文件保存目录
/etc/
配置文件保存目录
/home/
普通用户家目录
/lib/
库文件保存目录,一些应用的零件
/media/
挂载目录。可以用来挂载媒体设备,如软盘和光盘
/mnt/
挂载目录。如 U 盘、移动硬盘和其他操作系统的分区
/misc/
挂载目录。可以用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/m ...
kali部署nessus
前言最近有需要在机器用到漏扫,发现nessus还不错,索性在虚拟机上安装了。安装过程有些要注意的地方,诶我又索性做个笔记。话不多说开干 🛠
部署下载安装包因为是国外服务器所以建议科学上网。到官网寻找适合自己系统版本的nessus发行版,地址在这 https://www.tenable.com/downloads/nessus。这是我选择的版本
安装过程将下载好的安装包放到自己想放的地方,我选择 opt 目录。在此目录下启动终端,执行命令安装该软件
1dpkg -i Nessus-10.4.1-debian9_amd64.deb
安装好后启动nessus试试,使用命令
1start nessusd.service 或 service nessusd start
随后访问,nessus走 SSL 协议所以 https ,默认端口8834,浏览器会提示有安全风险,点击“高级”,再点击“接受风险并继续” 直接无视。
1https://localhost:8834/
选择所示版本
这里选择 .sc
创 ...
Fastjson漏洞学习
前言Fastjson是一个Java语言编写的高性能功能完善的开源JSON解析库,属于阿里巴巴。用于对JSON格式的数据进行解析和打包,能够支持将java bean序列化成JSON字符串, 也能够将JSON字符串反序列化成Java bean。简单说就是可用于将Java对象转换为其JSON表示形式,也可以用于将JSON字符串转换为等效的Java对象,而且十分简洁。
12345678String text = JSON.toJSONString(obj); //序列化VO vo = JSON.parse(); // 反序列化VO vo = JSON.parseObject("{...}"); //反序列化,解析为JSONObject类型或者JSONArray类型,JSONArray类型可以想象成多个JSONObject类型VO vo = JSON.parseObject("{...}", VO.class); //反序列化,JSON文本解析成VO.class类-------toJSONString()会调用get ...
JNDI注入
前言在关于java的一些漏洞中或多或少都看到了JNDI注入的踪迹,比如在java的一些反序列化漏洞中较为常见。浅浅看下JNDI是什么以及都可能会有哪些问题产生。
正文在分析之前我们需要稍稍过一下这些玩意的概念RMI、JNDI、JRMP、LDAP。
RMI:RMI(Remote Method Invocation)基于序列化的java远程方法调用机制,作为一个常见的反序列化入口,它和反序列化漏洞的关系很大。它能够直接传输序列化后的java对象和分布式垃圾收集。 他的实现依赖于JAVA虚拟机(JVM)。因此它仅支持从一个JVM到另一个JVM的调用。
JNDI:JNDI (Java Naming and Directory Interface) 是一组应用程序接口,它为开发人员查找和访问各种资源提供了统一的通用接口,可以用来定位用户、网络、机器、对象和服务等各种资源。JDNI支持通过url直接下载远程class文件的方式去加载执行服务。比如可以利用JNDI在局域网上定位一台打印机,也可以用JNDI来定位数据库服务或一个远程Java对象。JNDI底层支持RMI远程对象,RMI注册的服务 ...
shiro漏洞学习
前言shiro框架是Apache提供的一个安全框架(Java常用),该框架可以被很多的语言使用,广泛运用在各种应用系统中(大多为单体项目认证授权,微服务架构项目使用分布式部署可能不太适合)。shiro具有认证、授权、加密和会话管理等功能。
正文shiro的四个主要功能简介
Anthentication认证,验证用户是否有相应的身份-登录认证;
Authorization授权,即权限验证;对已经通过认证的用户检查是否具有某个权限或者角色,从而控制是否能够进行某种操作;
SessionManagment会话管理,用户在认证成功之后创建会话,在没有退出之前,当前用户的所有信息都会保存在这个会话中;可以是普通的JavaSE应用,也可以是web应用;
Cryptography加密,对敏感信息进行加密处理,shiro就提供这种加密机制;
支持的特性:
oiebSupport-Shiro提供了过滤器,可以通过过滤器拦截web请求来处理web应用的访问控制
Caching缓存支持,shiro可以缓存用户信息以及用户的角色权限信息,可以提高执行效率
Concurrencyshiro支持多线 ...