Hospital靶机渗透
你将扮演一名渗透测试工程师,被派遣去测试某家医院的网络安全性。你的目标是成功获取所有服务器的权限,以评估公司的网络安全状况。该靶场共有 4 个flag,分布于不同的靶机
flag01
发现22端口和8080端口
22端口的SSH密钥强度较高,暂时不看;8080端口运行着Apache Tomcat的Web服务,标题为医疗管理后台
UDP扫描结果价值不大,漏洞扫描
Spring Boot Actuator端点暴露发现CVE-2010-0738 JBoss漏洞,但估计是版本匹配不上,POC无法利用;还有一个是Spring Boot Actuator端点暴露,检测到/actuator/路径
这篇文章可以看到原生端点的一些作用Springboot之actuator配置不当的漏洞利用
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172{ "_links ...
一些题目合集
NewYearCTF 2025Web新年快乐,红包拿来
Python特性
先抓包看看规则
只接受浮点型数字,一阵捣鼓后发现了路由提示
得到源码
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354from fastapi import FastAPI, Requestfrom fastapi.responses import HTMLResponsefrom jinja2 import Environment, BaseLoaderimport uvicornimport osapp = FastAPI()FLAG = os.getenv('FLAG', 'flag{test}')class SafeEnvironment(Environment): def __init__(self): super().__init__(loader=BaseLoad ...
Mysql数据库的利用
在这之前只知道数据库一般的写入webshell利用,但受限制条件在于需要知道绝对路径,网站路径有写入权限以及受secure-file-priv参数限制,因此这篇文章将从其它角度来扩大对数据库的攻击面
获取一般的webshell权限我们依旧从getshell开始
直接写入webshell查询路径与查看 secure_file_priv 信息例如现在有如下sql查询语句
1SELECT * FROM testtable WHERE `name` = '参数值';
查找绝对路径SELECT @@basedir;
1SELECT * FROM testtable WHERE `name` = 'Bob' AND ascii(substr((@@basedir),1,1))>60 #';
1SELECT * FROM testtable WHERE `name` = 'Bob' UNION SELECT 1,2,3,@@basedir #';
查看 secure_file_priv 配置SHOW GLOBAL ...
Pickle反序列化
什么是Pickle?
模块pickle实现了对一个 Python 对象结构的二进制序列化和反序列化。 “pickling” 是将 Python 对象及其所拥有的层次结构转化为一个字节流的过程,而 “unpickling” 是相反的操作,会将(来自一个 binary file 或者 bytes-like object 的)字节流转化回一个对象层次结构。 pickling(和 unpickling)也被称为“序列化”, “编组” 或者 “平面化”。而为了避免混乱,此处采用术语 “封存 (pickling)” 和 “解封 (unpickling)”。
提到pickle,那就离不开opcode,在Pickle的上下文中,opcode(操作码)是Pickle字节码的基本指令。Pickle的序列化数据实际上是由一系列opcode组成的程序,这些opcode告诉Pickle解释器如何重建原始对象。每个opcode是一个字节(或更长),对应一个特定的操作
1234BININT1:将一个1字节的整数压入栈GLOBAL:导入一个全局对象(如函数或类)REDUCE:调用可调用对象并组合参数STOP:结束 ...
2023巅峰极客BabyURL
2023巅峰极客 BabyURL
附件下载
1docker run -it -d -p 12345:8080 -e FLAG=flag{8382843b-d3e8-72fc-6625-ba5269953b23}" lxxxin/dfjk2023_babyurl
这道题有两种解法,一个是SignedObject二次反序列化,一个是绕过黑名单打TemplatesImpl,最近在学习后者因此这里只提及后者做法
拿到反编译后的代码可以看到整体结构比较简单
123456789101112131415161718@GetMapping({"/hack"}) @ResponseBody public String hack(@RequestParam String payload) { byte[] bytes = Base64.getDecoder().decode(payload.getBytes(StandardCharsets.UTF_8)); ByteArrayInpu ...
一些关于计网的知识
其实自接触Web安全以来,对计算机网络知识一点不了解那到不至于,只是说这学期开始系统性学习计算机网络,因此有了此文章,同时也供自己时常复习
IP协议基础在OSI模型中,IP协议属于网络层。网络层的主要作用是负责数据包从源设备到目的设备的传递(P2P通信)。它通过路由选择和逻辑寻址来实现数据包的传输。
数据链路层与网络层网络层主要负责选择数据包从源设备到目的设备的最佳路径,实现不同子网之间的通信;
数据链路层在物理层提供的服务基础上,负责将数据可靠地传输到相邻节点的目标机网络层;
因此,网络层依赖数据链路层来实现相邻设备之间的数据传输
IP寻址在IP寻址中,设备通过IP地址来确定数据包的发送和接收。IP地址由网络部分和主机部分组成,网络部分用于路由控制,而主机部分则用于在同一网络内区分不同的设备。因此TCP/IP通信中所有主机或路由器必须设定自己的IP地址
路由控制路由控制是指在网络中根据IP地址决定数据包的传输路径的过程
路由控制主要通过以下步骤实现:
路由表查找:当设备需要发送数据包时,它会根据目的IP地址在路由表中查找匹配的记录。路由表记录了网络地址与下一跳路由器的映射关系 ...
计算机网络课程设计
基于PactTracer仿真平台,根据拓扑结构设计一个简单的企业网络
实验一:静态路由的部署与实施Router0为某公司总部,Router1、Router3是两个分部,主机PC0、PC1所在的网段分别模拟两个分部中的办公网络。现需要总部与各个分部、分部与分部都能够通信,且分部之间在进行通信时,之间的直连链路为主用链路,通过总部的链路为备用链路。
静态路由:需要网络管理员手动在路由器上配置路由信息;定义的路径是固定的,除非管理员手动修改,否则不会改变,即使网络拓扑结构发生变化;仅指定数据包从源到目的地的路径,需要额外配置回程路由以实现双向通信
浮动静态路由及负载均衡静态路由拓扑图
12345678910111213141516171819202122【Router0】进入特权模式并开始配置Router>enableRouter#configure terminal配置Serial0/0/0接口Router(config)#interface Serial0/0/0分配IP地址和子网掩码Router(config-if)#ip address 172.16.0.1 255.2 ...
2024重庆市大学生信息安全竞赛
Webweb1打开后网站显示nothing,自此其他师傅说还是dirsearch好用,御剑扫描量太大了
dirsearch目录扫描
其中
12345678910<?phpclass Flag{ public $cmd='whoami'; public function __destruct() { system($this->cmd); }}unserialize($_GET['flag']);?>
一个简单的反序列化
Web2弱密码爆出密码为password,提示非本地用户,xff绕过无果,有提示快照,在输入用户处构造ssrf的本地用户
http://127.0.0.1/fllllag.php
12345678910111213141516171819202122232425262728293031<?phpif ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { header("Content-Type:text/html;charset=utf-8"); error_r ...
2024红岩杯CTF
WebTheBoss
考察知识点:PHP反序列化
1CQ9jnUNAPzAfLKAmVRkiqzIIQDc7QDbtVPNtpUIvoTywVPEmLKx7QDbtVPNtMaIhL3Eco24tK193LJgyqKNbXD0XVPNtVUfAPvNtVPNtVPNtWUEbnKZgCaAurF0+LJExK3AuoUDbXGfAPvNtVPO9QDbAPa0APzAfLKAmVR1urj0XVPNtVUO1LzkcLlNxnJL7QDbtVPNtMaIhL3Eco24tK19aMKDbWT5uoJHcrj0XVPNtVPNtVPNbWUEbnKZgCzyzXFtcBj0XVPNtVU0APt0XsD0XL2kup3ZtH2IyrJRAPafAPvNtVPOjqJWfnJZtWTgho3p7QDbtVPNtpUIvoTywVPE1Bj0XVPNtVTM1ozA0nJ9hVS9sL2SfoPtxp2IfMvjxozSgMFy7QDbtVPNtVPNtVTIwnT8tWUEbnKZgCaHgCz5iqmfAPvNtVPO9QDbtVPNtMaIhL3Eco24tK19woT9hMFtcQ ...
2024NewstarCTF公开赛道合集
前言主要合集了自己认为把握度还不够的,比较重要的题型,这些题目大多数不会单独作为知识点呈现,但也需要加深印象
Week4Webezpollute
考察知识点:Nodejs的原型链污染
参考文章:Prototype Pollution to RCE | HackTricks
污染点在merge.js,index.js的/config路由下,初步思路是要找到可污染的变量参数,构造RCE反弹shell之类的,其中导入了模块child_process;至于merge.js虽然ban了__proto__ ,但是可以用”constructor”: {“prototype”的方式去绕过
通过sh文件我们发现环境变量中写了flag,同时又将flag写入了根目录下
由于污染了 constructor.prototype,这会影响到所有通过这个构造函数创建的对象的原型链,众所周知,要想执行代码,你得需要环境变量,而这里我们利用环境变量去污染env对象,NODE_OPTIONS 是一个特殊的环境变量,可以用来为 Node.js 设置启动时的参数。设置 --require /proc/self/enviro ...