DC-4靶机通关记录
靶场环境
局域网网段:192.168.47.0/24
攻击机 kali:192.168.47.138/24
目标器 DC-3:192.168.47.139/24
打靶目标
找到藏在DC-4靶机中的flag,只有最终的flag。
信息收集已知目标机器和攻击机器在同一个局域网内,网段为192.168.47.0/24。
寻找靶机真实IP同样使用nmap扫描网段内的ip,使用命令:
nmap -sP 192.168.47.0/24-sP参数常用于发现主机,而不进行端口扫描,使用ping,也就是发送icmp数据包,探测ip段内的主机是否在线
目标机器IP:192.168.47.139
探测服务以及端口nmap使用命令
nmap -A -p- -v 192.168.47.139/24-A表示全面扫描,包括端口,服务,操作系统等等。-p-是扫描主机开放的全部端口,而不只是常见的端口。-v就是显示更详细的扫描结果和信息。
靶机开放了web服务和ssh服务,web服务没有扫描到特定的框架。先游览器访问,
打开就是登录框了,看来是要登录进去了,获 ...
DC-3靶机通关记录
靶场环境
局域网网段:192.168.47.0/24
攻击机 kali:192.168.47.138/24
目标器 DC-3:192.168.47.137/24
打靶目标
找到藏在DC-3靶机中的flag,只有最终的flag。
信息收集已知目标机器和攻击机器在同一个局域网内,网段为192.168.47.0/24。
寻找靶机真实IP同样使用nmap扫描网段内的ip,使用命令:
nmap -sP 192.168.47.0/24-sP参数常用于发现主机,而不进行端口扫描,使用ping,也就是发送icmp数据包,探测ip段内的主机是否在线
目标机器IP:192.168.47.137
探测服务以及端口nmap使用命令
nmap -A -p- -v 192.168.47.137/24-A表示全面扫描,包括端口,服务,操作系统等等。-p-是扫描主机开放的全部端口,而不只是常见的端口。-v就是显示更详细的扫描结果和信息。
只开放了80端口,web使用的框架是Joomla。那么主要就是从CMS漏洞这块入手了,游览器访问,
本靶场只有最终的fla ...
fastjson反序列化-1.2.24漏洞利用与分析
0x01 利用条件通过上一篇文章对fastjson基础知识的学习和反序列化流程的分析,发现它与我们之前学的常规的反序列化又不太一样。fastjson自己定义了一套反序列化规则,它不需要反序列化的类去继承Serializable接口,也不需要找readObject函数作为入口。相反,它是将类中的setter和满足特定条件的getter方法作为出发点,@type所指向的全类名必须能够找到就可以反序列化成功。总的来说,从原生反序列化中的属性可控到寻找setter或者getter方法可控。(ps:这点很重要)
本篇文章主要学习两种利用方法,出网和不出网。
0x02 出网+JNDI注入利用类:JdbcRowSetImpl该类有一块JNDI注入的代码逻辑:
代码是反编译出来的,但是不影响。conn属性默认为空,不用管自然会走到else if。getDataSourceName是getter方法,
它的返回值我们可控,就可以实现JNDI注入。那么接下来就是寻找哪个getter或者setter方法调用了connect方法,查找用法全局搜索,在本类中是有两处。
我们用setAutoCommi ...
DC-2靶机通关记录
靶场环境
局域网网段:192.168.47.0/24
攻击机 kali:192.168.47.128/24
目标器 DC-2:192.168.47.136/24
打靶目标
找到藏在DC-2靶机中的五个flag。
信息收集已知目标机器和攻击机器在同一个局域网内,网段为192.168.47.0/24。
寻找靶机真实IP同样使用nmap扫描网段内的ip,使用命令:
nmap -sP 192.168.47.0/24-sP参数常用于发现主机,而不进行端口扫描,使用ping,也就是发送icmp数据包,探测ip段内的主机是否在线
第一个为网关地址,192.168.47.128为本kali机地址,那么192.168.47.136就是目标机器地址了。
探测服务以及端口nmap使用命令
nmap -A -p- -v 192.168.47.136/24-A表示全面扫描,包括端口,服务,操作系统等等。-p-是扫描主机开放的全部端口,而不只是常见的端口。-v就是显示更详细的扫描结果和信息。
目标靶机开放了80端口的web服务和7744端口的ssh,7744 ...
fastjson反序列化原理分析
0x01 前言最近这段时间打算入门fastjson反序列化漏洞篇,fastjson反序列化漏洞近些年也比较火,漏洞多,危害大。无论是实际运用场景还是面试问题都是比较热门的,另外在CTF的java题中也常见。因此,这篇文章就针对于fastjson反序列化漏洞的基础以及原理分析。(ps:不得不说,json库的源码真的好复杂好难看,基本都是边调试边问AI,最后终于模模糊糊走了一遍流程)
0x02 fastjson基础FastJson是阿里巴巴集团开发的一个高性能的开源的Java JSON 库。它提供了一套强大的功能,包括将 Java 对象与 JSON 数据之间的互相转换、高效的序列化和反序列化、灵活的 JSON 解析和生成等。
Maven项目中导入相关依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.24</version></dependency ...
bestphp's revenge题目详解
前言今天刷题遇到一个比较有意思的题目。每个知识点我都知道,把他们放在一块我就不知道怎么去搞了。所谓知识点考的是非常灵活了,涉及到的知识有session反序列化,变量覆盖,利用原生类触发ssrf等等。考的内容也比较多。个人感觉还是有必要记录下来的,也正好复习一下php的知识。
题目分析一段很短的源代码:
<?phphighlight_file(__FILE__);$b = 'implode';call_user_func($_GET['f'], $_POST);session_start();if (isset($_GET['name'])) { $_SESSION['name'] = $_GET['name'];}var_dump($_SESSION);$a = array(reset($_SESSION), 'welcome_to_the_lctf2018');call_user_func($b, $a);?>
flag.p ...
由浅入深学习RMI(未完)
RMI简介RMI是Java中的一种远程方法调用技术,全称为Remote Method Invocation(远程方法调用)。它使得在不同的Java虚拟机(JVM)之间通过网络进行通信变得容易,使得一个Java应用程序能够调用另一个Java应用程序中的方法,就好像它们都在同一个虚拟机中一样。总的来说,它是一种远程方法调用的具体实现。那么在网络中调用方法,我们传递的信息可能是以序列化的形式传输,可能会存在反序列化漏洞,这也是这篇文章分析RMI的最终目的。
RMI案例讲解远程接口首先我们需要定义一个远程接口。
import java.rmi.Remote;import java.rmi.RemoteException;// 定义一个远程接口,继承java.rmi.Remote接口public interface HelloInterface extends Remote { String Hello(String name) throws RemoteException;}
Remote接口是一个标记接口,本身不提供任何方法,继承它的接口对象定义的方法都能够被RM ...
DC-1靶机通关记录
靶场环境
局域网网段:192.168.47.0/24
攻击机 kali:192.168.47.128/24
目标器 DC-1:192.168.47.135/24
打靶目标
找到藏在DC-1靶机中的五个flag。
信息收集已知目标机器与我们的攻击机在同一个网段,为192.168.47.0/24。
寻找靶机真实IP利用nmap探测局域网内存活的主机
nmap -sP 192.168.47.0/24
已知kali机IP为192.168.47.128,所以目标机器IP为192.168.47.135
探测端口以及服务nmap命令
nmap -A -p- -v 192.168.47.135
目标机器开放了22端口,开启远程连接服务。80端口,开启web服务,使用的框架为Drupal 7。111端口,开放了rpcbind服务。访问web站点
MSF渗透百度Drupal 7版本存在很多漏洞,比如远程代码执行。正好Metersploit工具中有Drupal漏洞攻击模块。可以用此工具来进行攻击,拿到目标机器的shell。
拿到shellmsfco ...
shiro反序列化-CB链利用
commons-beanutils简介它也是Apache Commons项目的一个Java类库,提供了一组简单易用的API来操作Java对象和Bean属性。它的主要功能是将Java Bean的属性值与一组键值对(例如,从HTTP请求或表单参数中)相互转换。主要对javaBean功能的增强。它是shiro自带的依赖,此依赖也存在反序列化漏洞。
什么是javaBeanJavaBean是一种特定的Java类,它遵循一定的规范和格式,以便于被其他程序使用和操作。写一个javaBean格式的类吧,举个例子一看就懂,平常我们也经常写。
package com.payload;public class Persion { private String name; private int age; public Persion(String name, int age){ this.name = name; this.age = age; } public String getName(){ ...
shiro反序列化-打CC依赖
简介上文主要分析了shiro框架存在反序列化漏洞的原理,并且用URLDNS链成功探测出此漏洞。那么如果此框架中添加了CC依赖,我们就可以拿CC链来打了。事实上在ysoserial里,只有CC2能打,因为shiro框架大多都添加Commons Collections4这个大版本。本文就主要分析针对于Commons Collections3和4两个版本shiro反序列化中CC链的利用。
打Commons Collections4.0简单说下CC2链,执行类和CC3是一样的,利用TemplatesImpl类动态加载字节码,而CC2的反序列化入口类为PriorityQueue,看一下它的readObject函数:
队列元素也被序列化了,最后调用heapify函数,
继续跟进
comparator属性在构造器中被赋值,可控。继续跟进
最终调用可控任意类的compare方法,将comparator赋值为transformingComparator类,跟进。
调用了任意类的transform方法,这个方法很熟悉了,让transformer赋值为invokerTransformer ...