
CTF
文章平均质量分 56
顾殇の点
blog:https://blog.sec1yu.com
展开
-
DVCTF 2021 部分writeup
Start0x01 Crypto-Bootless RSA{"N": 148818474926605063920889194160313225216327492347368329952620222220173505969004341728021623813340175402441807560635794342531823708335067243413446678485411066531733814714571491348985375389581214154895499404668547123130986原创 2021-03-16 21:50:13 · 1011 阅读 · 2 评论 -
*CTF 2021 lottery again
Start给了部分源码,先理一遍这个站的逻辑,首先index.html中是一个登录框,该登录框可以任意注册:每个新用户有coin:300,可以通过买彩票进行赚钱,赚够9999,即可买到flag:然后查看源码,找到买彩票的关键代码:app.Http.Controllers.LotteryController.php 28 line:$lottery = Lottery::create(['coin' => 100 - floor(sqrt(random_int(1, 10000)))])原创 2021-01-19 18:23:57 · 1839 阅读 · 0 评论 -
[BJDCTF2020]easy
[BJDCTF2020]easyStart开局看到这个:int __cdecl main(int argc, const char **argv, const char **envp){ __time32_t Time; // [esp+10h] [ebp-3F0h] BYREF struct tm *v5; // [esp+3FCh] [ebp-4h] __main(); time(&Time); v5 = localtime(&Time); puts("原创 2021-01-15 16:06:09 · 816 阅读 · 0 评论 -
[FlareOn4]login
[FlareOn4]loginStart前端验证flag:提取:var flag = document.getElementById("flag").value;var rotFlag = flag.replace(/[a-zA-Z]/g, function(c){return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);});if ("PyvragFvq原创 2021-01-14 21:15:18 · 1363 阅读 · 1 评论 -
[GUET-CTF2019]re
[GUET-CTF2019]reStartUPX壳:白給題,直接上exp:flag = ''flag += chr(166163712 // 1629056)flag += chr(731332800 //6771600)flag += chr(357245568 //3682944)flag += chr(1074393000 // 10431000)flag += chr(489211344 // 3977328) flag += chr(518971936 // 5138336原创 2021-01-14 18:29:22 · 764 阅读 · 0 评论 -
[WUSTCTF2020]level4
[WUSTCTF2020]level4Startint __cdecl main(int argc, const char **argv, const char **envp){ puts("Practice my Data Structure code....."); puts("Typing....Struct.....char....*left....*right............emmmmm...OK!"); init("Typing....Struct.....char..原创 2021-01-10 18:13:30 · 1239 阅读 · 0 评论 -
[FlareOn3]Challenge1
[FlareOn3]Challenge1Start直接F5:int __cdecl main(int argc, const char **argv, const char **envp){ char Buffer; // [esp+0h] [ebp-94h] char *v5; // [esp+80h] [ebp-14h] char *v6; // [esp+84h] [ebp-10h] HANDLE v7; // [esp+88h] [ebp-Ch] HANDLE hFile原创 2021-01-09 14:27:27 · 551 阅读 · 0 评论 -
[MRCTF2020]Xor
[MRCTF2020]XorStart查字符串:反编译出问题,并且好像不是sp的问题:直接看汇编图:先看到第一个call sub_401050,这里压入了一个byte_4212C0和一个%s,说明输入的flag最终会存放到byte_4212C0,继续往下看到loc_4010B6这个段,关注edx,edx不断的在自增,最后出循环之后,与1Bh进行比较,大概就可以猜测edx存放的就是输入的flag的长度。不难猜测,如果最后edx的值大于0x1b,流程就会往右走,直接提示Wrong:往下看到原创 2021-01-09 13:39:18 · 1817 阅读 · 4 评论 -
[ACTF新生赛2020]easyre
[ACTF新生赛2020]easyreStartUPX壳,直接linux自带的UPX脱壳就行了查看字符串:定位到Please Input,交叉引用过去,来到关键位置:这里注意下类型:v13-v15和v21-v23都是int类型,所以flag的长度是12个字符先列出byte_402000的所有结果,然后用v1-v12进行碰撞,得到下标再+1得到的就是flagexp.py:key_hex_list = ['0x7e'] key_list1 = '}|{zyx原创 2021-01-07 00:09:14 · 535 阅读 · 0 评论 -
第四届强网杯 侧防 Rerverse
Start常规逆向题ELF64文件,拖进IDA,日常搜索字符串直接跟进去__int64 __fastcall main(__int64 a1, char **a2, char **a3){ __int128 v4; // [rsp+0h] [rbp-D8h] __int128 v5; // [rsp+10h] [rbp-C8h] __int64 v6; // [rsp+20h] [rbp-B8h] char v7; // [rsp+28h] [rbp-B0h] __int16原创 2020-08-24 21:02:10 · 1423 阅读 · 2 评论 -
ciscn 2020 Misc the_best_ctf_game
Start娱乐局Winhex打开发现flagexp.cpp:#include <iostream>#include <Windows.h>int main() { LPCTSTR lpFileName = TEXT("D://flag"); HANDLE hFile = CreateFile(lpFileName, FILE_GENERIC_READ, 0, NULL, OPEN_EXI原创 2020-08-21 22:16:20 · 1929 阅读 · 0 评论 -
ciscn 2020 Crypto bd
Start简单RSAfrom secret import flagfrom Crypto.Util.number import *m = bytes_to_long(flag)p = getPrime(512)q = getPrime(512)N = p * qphi = (p-1) * (q-1)while True: d = getRandomNBitInteger(200) if GCD(d, phi) == 1: e = inverse(d, p原创 2020-08-21 22:13:37 · 1129 阅读 · 0 评论 -
ciscn 2020 reverse hyperthreading
hyperthreadingStart搜索字符串找到关键函数:int sub_401270(){ signed int v0; // eax HANDLE Handles; // [esp+8h] [ebp-Ch] HANDLE v3; // [esp+Ch] [ebp-8h] printf("plz input your flag:"); scanf("%42s", byte_40336C); Handles = CreateThread(0, 0, StartAddre原创 2020-08-21 22:09:54 · 598 阅读 · 0 评论 -
ciscn 2020 reverse z3
z3startshift+F12找到查看引用往下拉看到关键比较:发现Dst来自:memcpy(Dst, &unk_404020, 0xA8ui64);找到加密后的字符串,这里注意是int类型的,并且是小端存储的,所以17 4F 0 0 应该读成0x00004F17整理后就可以得到完整的加密后的字符串随后看到那一大堆乱七八糟的加密发现规律,6个七元一次方程,解出42个字符即为flagexp.pyimport numpy as npfrom scipy.linalg i原创 2020-08-21 21:51:54 · 730 阅读 · 0 评论 -
BUUCTF RE Youngter-drive by YuSec
Youngter-driveStart打开发现加了个UPX壳想手脱,发现好吧,直接脱壳机脱吧,脱完重新载入IDA搜索字符串,将flag放在Source中,后面就没了看看谁用了Source发现四处引用的地方,除了当前的,还有三处看到sub_411880对Source和off_418004常量字符串进行比较,这里应该就是最终加密后进行比较的看到StartAddress_0发现调用了sub_41112C进行处理Source这里有个细节需要注意,dword_418008是临界资源原创 2020-08-12 11:04:40 · 368 阅读 · 0 评论 -
GWCTF 2019 pyre YuSec
pyrepyc文件,直接在线反编译得到print 'Welcome to Re World!'print 'Your input1 is your flag~'l = len(input1)for i in range(l): num = ((input1[i] + i) % 128 + 128) % 128 code += numfor i in range(l - 1): code[i] = code[i] ^ code[i + 1]print codecod原创 2020-08-08 14:40:49 · 542 阅读 · 0 评论 -
GXYCTF2019 luck_guy YuSec
luck_guy拿到文件,file一下拖进IDA64关键函数patch_me,看到将输入的flag放到patch_me中进行操作,跟进去继续跟unsigned __int64 get_flag(){ unsigned int v0; // eax char v1; // al signed int i; // [rsp+4h] [rbp-3Ch] signed int j; // [rsp+8h] [rbp-38h] __int64 s; // [rsp+10h] [r原创 2020-08-08 11:33:41 · 613 阅读 · 0 评论 -
BUUOJ [2019红帽杯]easyRE
StartIDA,Shift+F12跟进去,交叉引用F5来到该函数关键处sub_424BA0可以看出应该是strlen,先判断v53的长度是不是36位,之后作为for循环推出的条件。每一次都会对v53的单个字符与i进行异或之后判断是否等于下面这一串中的值写出脚本:得到第一条信息,the first four chars are 'flag'continue:对v56调用了10次sub_400E44进行处理,最后与off_6CC090进行sub_400360,根据经验,sub原创 2020-05-16 11:38:45 · 1045 阅读 · 0 评论 -
2020第二届网鼎杯 青龙组 boom
boomStartIDA, F5flag是v5、v27、v26、v25、v24拼接总共三个挑战:md5在线加解密:https://www.cmd5.com三元一次方程组计算器:http://www.99cankao.com/algebra/unknwn3.php一元二次方程计算器:http://www.99cankao.com/algebra/quadratic-equation.php# flag{en5oy_746831_89127561}End...原创 2020-05-14 22:43:40 · 374 阅读 · 0 评论 -
2020第二届网鼎杯青龙组Reverse signal
signalStart无壳,直接拖进IDA,F5qmemcpy()内存复制,将unk_403040的内容复制到v4的地址下跟进unk_403040看到一堆数据,整理后得到 [0Ah, 4,10h, 8, 3, 5, 1, 4,20h, 8, 5, 3, 1, 3, 2, 8,0Bh, 1,0Ch, 8, 4, 4, 1, 5, 3, 8, 3,21h , 1,0Bh, 8,0Bh, 1, 4, 9, 8, 3,20h, 1, 2,5原创 2020-05-10 22:53:19 · 1370 阅读 · 0 评论 -
nullconCTF/Crypto/RockPaperScissors
2020年2月9号的nullconCTF Online的一道题拿到题目,打开rps.py是源码, 然后又给了nc的地址, 直接nc进去看给出的是一段文字(这里由于结束后官方关闭了端口,后面无法进行nc), 直接看源码, 不难发现,这是一道代码审计题, 题目给出的RockPaperScissors是石头剪子布. 下面我们一个函数一个函数的来看.def gen_commitments(): ...原创 2020-02-16 20:47:02 · 670 阅读 · 0 评论 -
HackTM CTF Crypto RSA is easy #1
2020.2.1 HackTM CTF 的一道Crypto题这道题很简单给出源码:import randomfrom my_math import next_primefrom flag import flagdef egcd(a, b): x, y, u, v = 0, 1, 1, 0 while a != 0: q, r = b//a, b % a...原创 2020-02-16 21:18:10 · 708 阅读 · 0 评论