CTF(25)
-
[CTF write up] Ricerca CTF 2023 - Challenges : I want to study crypto~
Pwnable 빼고 쉬운 문제 몇개를 풀어보았다. 처음으로 풀어보는 Crypto인 Rotated Secret analysis는 꽤 재밌었고, Web에서는 딱히 적당히 재밌는 문제가 없었다. 리버싱은 warm-up 문제를 빼고는 최소 7솔브부터 시작이라 딱히 건드릴 수 있는게 없었다. welcome RicSec{do_U_know_wh4t_Ricerca_means_btw?} crackme 그냥 디컴파일하면 나온다. RicSec{U_R_h1y0k0_cr4ck3r!} Reveolving Latters 반대로 하면 나온다. LOWER_ALPHABET = "abcdefghijklmnopqrstuvwxyz" def decrypt(secret, key): assert len(secret) > l*3) - ((n >> ..
2023.04.26 -
[CTF write up] b01lers CTF 2023 - Transcendental : It is a misc not pwn :(
__int64 __fastcall main(int a1, char **a2, char **a3) { char op; // al char i; // dl int idx; // eax double reg[11]; // [rsp+0h] [rbp-78h] BYREF unsigned __int64 v8; // [rsp+58h] [rbp-20h] v8 = __readfsqword(0x28u); puts( "==============================================================\n" "== B01lers Calculator - Transcendental Figures edition 2023 ==\n" "=========================================..
2023.03.20 -
[CTF write up] WACon CTF 2022 Final - islands : Easy matrix multiplication rev
리버싱 공부하려고 처음으로 제대로 푼 리버싱 문제다. ida로 까보면 함수가 매우 여러게 있고 함수당 어셈블리가 들어있다. 별로 길지 않아서 하나씩 확인해서 로직을 분석하면 된다. array1 = [246, 0, 58, 0, 217, 0, 173, 0, 210, 0, 224, 0, 7, 0, 116, 0, 199, 0, 18, 0, 117, 0, 160, 0, 27, 0, 191, 0, 158, 0, 238, 0, 243, 0, 211, 0, 116, 0, 147, 0, 195, 0, 39, 0, 185, 0, 154, 0, 181, 0, 215, 0, 33, 0, 184, 0, 231, 0, 42, 0, 78, 0, 65, 0, 137, 0, 188, 0, 52, 0, 136, 0, 154, 0, 23..
2023.03.11 -
[CTF write up] Kalmar CTF 2023 - mjs : Baby Open-Source Exploiting
https://github.com/mde/ejs GitHub - mde/ejs: Embedded JavaScript templates -- http://ejs.co Embedded JavaScript templates -- http://ejs.co. Contribute to mde/ejs development by creating an account on GitHub. github.com 무려 함수를 raw pointer로 저장해서 정수랑 연산할 수 있는 엄청난 Vulneranilty(?) or Feature(?)가 존재한다. 패치도 안된 것으로 보인다(?) There is a huge Vulnerability(?) or Feature(?) that can store a function as a raw ..
2023.03.06 -
[CTF write up] WAcon CTF 2022 Qual - superunsafeJIT : Super ez Rust Pwn
fn compile(bytecode: &[u8], data_memory: &memory::Memory) -> Result { let mut function_table = HashMap::new(); function_table.insert("deoptimize".to_string(), 0xdeadbeef); let pl1 = bytecode::TranslationUnit::new(bytecode)?; println!("[main::compile] pl1 = `{}`", pl1 ); let pl2 = vasm::TranslationUnit::new(&pl1, &data_memory, &function_table)?; println!("[main::compile] pl2 = `{}`", pl2 ); let p..
2023.02.01 -
[CTF write up] idek CTF 2023 - Sprinter : Wierd Format String Bug
int vuln() { size_t len; // rax char buf[264]; // [rsp+0h] [rbp-110h] BYREF unsigned __int64 v3; // [rsp+108h] [rbp-8h] v3 = __readfsqword(0x28u); printf("Enter your string into my buffer, located at %p: ", buf); fgets(buf, 256, stdin); len = (size_t)strchr(buf, 'n'); if ( !len ) { len = strlen(buf); if ( len
2023.01.16