본문 바로가기

전체보기

(171)
Project Plan 보호되어 있는 글입니다.
base64 encode, decode source 보호되어 있는 글입니다.
[White Hacker League 2017] Medic 1234567891011121314151617181920212223242526272829303132333435int __cdecl main(int argc, const char **argv, const char **envp){ __int64 v3; // rax@1 const char *v4; // rax@1 __int64 v5; // rdx@4 __int64 v6; // rax@5 __int64 v7; // rax@6 int result; // eax@7 __int64 v9; // rdx@7 int i; // [sp+Ch] [bp-84h]@1 char v11; // [sp+10h] [bp-80h]@1 __int64 v12; // [sp+78h] [bp-18h]@1 v12 = *MK_FP(__FS__, 4..
[Suninatas] system 27 위 내용이 문제내용이다. 서로 주고받은 비밀 문자열이라고 하는데 사실상 문제제목 자체가 hint다. 위 내용을 hxd에 옮기고 hex값만 추출하여 ollydbg에서 아무파일이나 열고 binary paste 하면 아래와 같이 디스어셈 된다. eax 레지스터를 이용해서 값을 넣고 스택에 입력하는데 중간중간에 아무 의미없는 어셈명령어가 많아서 처음엔 조금 해맸지만 쭉 트레이싱 해서 스택값을 확인해보니 key가 존재하였다. 맨 처음엔 이게 왜 system종류지 하고 생각했는데 되게 색달라서 좋았던거같다.
[White Hacker League 2017] Ghost Pwnable - Ghost (440)그냥 64bit rop 문제다.fork()를 사용하기 때문에 프로세스가 켜져있는 동안은 라이브러리 주소와 카나리가 바뀌지 않는다.그리고 Relro가 걸려있어 got를 못덮기 때문에 카나리 릭하고 base 릭한후 시스템주소 구해서 쉘따면 된다.1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980from pwn import * e = ELF('./ghost') p_rdi = 0x4015b3p_rsi_r15 = 0x4015b1p_rdx = 0x40153dof..
[pwnable.kr] passcode 12345678910111213141516171819202122232425262728293031323334353637383940414243#include #include void login(){ int passcode1; int passcode2; printf("enter passcode1 : "); scanf("%d", passcode1); fflush(stdin); // ha! mommy told me that 32bit is vulnerable to bruteforcing :) printf("enter passcode2 : "); scanf("%d", passcode2); printf("checking...\n"); if(passcode1==338150 && passcode2==13371337){ ..
[pwnable.tw] start 문제의 디스어셈 모습이다 system call을 하는거 같은데 read의 syscall 번호는 4 write는 3이다.1은 아마 exit였고 2는 fork? 였다.write의 인자를 보면 20만큼 출력하는데 스택을 ecx에 옮긴 후 인자로 사용한다. gdb로 스택을 분석한 모습(read에 a*8 넣은상태)인데 함수가 끝나기 직전으로 가 스택에 상황을 살펴보면 아래와 같다.push esp - 0xffffce10 push offset _exit - 0x804809d push 3A465443h - CTF: push 20656874h - the\x20 push 20747261h - art\x20 push 74732073h - s\x20st push 2774654Ch - Let'이렇게 스택에 할당이 되있는데 re..
Solving CTF captcha challenge by use ocr [using pytesser]1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071from PIL import Imagefrom pytesser import *import urllib2, urllib def conn(url, post, header): post_data = { 'answer': post } post = urllib.urlencode(post_data) request = urllib2.Request(url, post, header) res = urllib2.urlopen(request) return res.r..