2024第十五届极客大挑战 Pwn部分题解 Pwn ez_shellcode 64位有NX 设了一段内存空间,但是权限是3,可读可写但是不能执行,后门的memset将这段空间的500个字节设为144,也就是NOP空指令,shellcode是bss段的,而后又向shellcode读入400字节。 试了好久都不能ret2shellcode,最后ret2libc写掉了: from pwn impor
凯撒加密 YEI{CKRIUSK_ZU_2024_MKKQ_INGRRKTMK} 简单的凯撒,不多说,位移6 flag: SYC{WELCOME_TO_2024_GEEK_CHALLENGE} RSA from Crypto.Util.number import bytes_to_long, getPrime from secret import flag p = getPrime(128)
web 奶龙牌WAF 下载源码: <?php if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['upload_file'])) { $file = $_FILES['upload_file']; if ($file['error'] === UPLOAD_ERR_OK) {
0x01 前言 在我做过的题目当中,遇到了这种利用方法,在一些场景中用这个方法会很方便,当然要根据题目来,有一些题目会给出libc链接文件,而不给的话就只够自己去泄露查询了。这个方法主要是利用到了__libc_start_main 中的一个 magic gadget ,在有一些题目中,直接返回main函数的条件不满足的时候,就可以直接重启,从而再次调用程序了。 这里来看一下,在什么时候会用到这种方
前几天单身杯上的一个SSTi题目,让我学习到了突破SSTI长度的技术 前置知识 Flask 框架中存在 config 全局对象,用来保存配置信息。config 对象实质上是一个字典的子类,可以像字典一样操作。因此要更新字典,我们可以使用 Python 中字典的 update() 方法。用 update() 方法 + 关键字参数更新字典: d = {'a': 1, 'b': 2, 'c': 3}
Ezre 加密部分 加密逻辑很简单,没什么好说的 a = list('QKEMK{7JB5_i5_W3SllD_3z_W3}') b = 'ISCTF' for i in range(len(a)): v7 = ord(a[i]) if 'A' <= chr(v7) <= 'Z': v7 = (v7 - ord(b[i%5])) % 26 + ord(
我和小蓝鲨的秘密 task: from PIL import Image from Crypto.Util.number import bytes_to_long, long_to_bytes import numpy as np n = 29869349657224745144762606999 e = 65537 original_image_path = "flag.jpg" img =
这道题在比赛期间没解出来想去逃逸了.....盯了一天这里,赛后感觉来了复现一下, 源码分析 #!/usr/local/bin/python from io import BytesIO from os import _exit from pathlib import Path from pickle import Pickler, Unpickler from sys impo
签到·一把梭 小鼎,24岁。网安专业old star.最近入坑ctf,想体验一把梭的感觉。于是他的朋友给他找来了cahtylin先生。cahtylin先生听闻,欣然写下此题。 提示: 什么年代了还在做低加密指数的传统RSA?我就猜出题人在100以内找个d然后模拟出e加密的。 from Crypto.Util.number import * #小鼎,24岁。网安专业old star.最近入坑c
25时晓山瑞希生日会 要Project Sekai的客户端请求 一看就是UA了 本地就是X-Forwarded-For 正确的时间就是25时也就是第二天一点 题目又说5点 得到flag ezSSTI 经过fuzz发现过滤了_和[] 直接用现成的payload打 {% set po=dict(po=a,p=a)|join%} {% set a=(()|select|string|lis
iscc-week2-re1 查壳 64位无壳,丢进ida里面看看 发现有混淆,使用d810插件去除 去除后的主函数 进入第一个函数,会把重复的字符改为2 进入第二个 有三个函数 第一个函数将一个字符拆成两个数字 第二个函数对为11的后一位进行-61的操作,或者是减48 第三个就是按表变换 EXP: #include <stdio.h> int main() {
好玩的PHP 题目源码 <?php error_reporting(0); highlight_file(__FILE__); class ctfshow { private $d = ''; private $s = ''; private $b = ''; private $ctf = '';
线性同余生成器 / 线性同余方法(LCG) 概念 线性同余方法(LCG)是个产生伪随机数的方法 LCG的性能和随机性取决于选取的参数。如果选择恰当的参数,LCG可以生成长周期和均匀分布的伪随机数序列。然而,不恰当的参数选择可能导致序列的周期较短或者存在可预测的模式,从而影响其随机性和安全性 LCG的周期最大为 M,但大部分情况都会少于 M。要令LCG达到最大周期,应符合以下条件: 1.B,M 互
小蓝鲨的冒险 <?php error_reporting(0); highlight_file(__FILE__); $a = "isctf2024"; $b = $_GET["b"]; @parse_str($b); echo "小蓝鲨开始闯关,你能帮助他拿到flag吗?<br>"; if ($a[0] != 'QNKCDZO' && md5($a[0]) ==
单身杯DSBCTF MISC 取证题解 单身杯取证使用的内存镜像windows版本较新 vol2无法处理 这里我们使用AXIOM和lovelymem分析 easy_mem_1 第一题需要 计算机名 ip地址 build版本号 计算机名很简单 AXIOM分析完成后 标识符-设备 中列举了所有计算机名 windows事件日志中也可以按照创建时间排序 可以看到最新的事件是由ZhuYun_s_PC执行