System Hacking (pwnable)/CTF Write-up 27

[ASIS CTF] FCascasde ( write-up )

ASIS CTF FCascasde ( write - up )ContentLog Error ( arbitrary address off by one )_IO_buf_base Exploit Analysisvoid __fastcall __noreturn interaction(void *buf) { while ( 1 ) { write(1, "> ", 2uLL); read(0, buf, 0x128uLL); if ( strncmp(buf, "11010110", 8uLL) || chk ) { if ( !strncmp(buf, "10110101", 8uLL) ) ccloud(); } else { chk = 1; leak(buf); } } }아래와 같이 몇가지 기능을 하는 프로그램이다.11010110을 입력하면 leak(..

[Layer7 CTF] Angel-in-us ( write-up )

Layer7 CTF - Angel in usSummaryTop chunk freestdout leakscanf trick이문제는 SED팀 소속 Howdays라는 빡고수형이 낸 문제이다.대회중에도 솔버가 한명도 없었던 재밌는 문제이다. Analysismain()void __fastcall __noreturn main(__int64 a1, char **a2, char **a3) { __int16 buf; // [rsp+6h] [rbp-Ah] unsigned __int64 canary; // [rsp+8h] [rbp-8h] ​ canary = __readfsqword(0x28u); setup(); buf = 0; while ( 1 ) { menu(); read(0, &buf, 2uLL); if ( buf ==..

[Layer7 CTF] How old are you? ( write-up )

Layer7 CTF - How old are you?Summarysimple trickseccomp syscallopenat()다른 출제자분들이 문제를 너무 빡시게내셔서 나도 빡시게 내야하나 싶었다.근데 그냥 쉬운문제 하나 있어야겠다 싶어서 쉬운거 하나 냈다.원래 getdents함수를 이용해서 플래그 패스를 찾게 하려고 했으나 그냥 쉽게 냈다. Analysismain()int __cdecl main(int argc, const char **argv, const char **envp) { char buf; // [rsp+0h] [rbp-110h] int v5; // [rsp+100h] [rbp-10h] int v6; // [rsp+104h] [rbp-Ch] int v7; // [rsp+108h] [rbp-..

[Timisoara CTF] Timisoara CTF Quals ( write-up )

Crypto - solved by team comflexBaby Crypto ( 50 pts )In the name of the problem, I thought it was a Caesar cipher.So I use Caesar decoder site. ( https://cryptii.com/ )Shift by 8 to get the flag.Otil bw amm gwc uilm qb! Emtkwum bw bpm ewvlmznct ewztl wn kzgxbwozixpg! Pmzm qa gwcz zmeizl: BQUKBN{Rctqca_Kimaiz_e0ctl_j3_xzwcl} ​ => Glad to see you made it! Welcome to the wonderful world of cryptogr..

[YISF] 순천향대학교 CTF ( write-up )

misc 50문제 설명대로 룰을 확인하면 된다. misc 100해당 nc 서버로 접속하면, 3개의 직선의 방정식을 준다.이 방정식으로 만들어진 삼각형의 넓이를 구하는 파이썬 코드를 작성하면 플래그를 얻을 수 있다.from pwn import * from sympy import Symbol, solve import re ​ x = Symbol('x') y = Symbol('y') ​ r = remote("218.158.141.199",24763) r.recvuntil("") ​ def recv_step(step): r.recvuntil("Step : " + str(step)) r.recvuntil("\n\n") log.info("step : " + str(step)) ​ def recv_num(): num..