FORENSIC
참고자료
보호되어 있는 글입니다.
FORENSIC
참고자료
보호되어 있는 글입니다.
War Games/HackCTF
[HackCTF] :pwn: RTL_World
int __cdecl main(int argc, const char **argv, const char **envp) { int result; // eax int v4; // [esp+10h] [ebp-90h] char buf; // [esp+14h] [ebp-8Ch] void *v6; // [esp+94h] [ebp-Ch] void *handle; // [esp+98h] [ebp-8h] void *s1; // [esp+9Ch] [ebp-4h] setvbuf(stdout, 0, 2, 0); handle = dlopen("/lib/i386-linux-gnu/libc.so.6", 1); v6 = dlsym(handle, "system"); dlclose(handle); for ( s1 = v6; memcmp(..
War Games/HackCTF
[HackCTF] :web: 보물
고고 저런 페이지가 나오고, 각 버튼을 누르면 해시값으로 추정되는 값들이 나옵니다. 근데 돌려도 어떤 값인지는 안알려주네용.. 그래서 뭔가 싶어서 page파라미터 가지고 장난치다가 이렇게 값이 엄청나게 많은걸 찾았네요 그래서 쓰레기값이 많이 들어있고, 저기 어딘가에 플래그 값이 숨겨져 있지 않을까? 라고 생각했고 그래서 그냥 bruteforcing으로 돌렸습니다 우왕 굳굳
War Games/HackCTF
[HackCTF] :web: /, Hidden, Button (All 50 pts)
50포인트짜리 한번에 다 씁니당 1. / 첫 문제입니다. 들어가보면 로봇 사진이 떠있고, Hidden Flag라고 되어있는데 이건 너무 클리셰적인 문제죠? robots.txt에 로봇에게 문서 접근을 할 수 있는 권한을 주는 문서가 있습니다. 일단 확인해봅시다. 참고 : ko.wikipedia.org/wiki/%EB%A1%9C%EB%B4%87_%EB%B0%B0%EC%A0%9C_%ED%91%9C%EC%A4%80 로봇 배제 표준 위키백과, 우리 모두의 백과사전. 로봇 배제 표준(robots exclusion standard), 로봇 배제 프로토콜(robots exclusion protocol)은 웹 사이트에 로봇이 접근하는 것을 방지하기 위한 규약으로, 일반적으로 접근 ko.wikipedia.org 보면 /r..
War Games/HackCTF
[HackCTF] :rev: Handray
ㄲ 엥 바로 aFlag를 출력해주네? 하고 보니깐 이렇게 뜨고, 파일도 실행해보면 이렇게 뜨는걸로 봐서 밑에 있는 바이트들은 한글인거 같네요 근데 변수 영역을 보면 위에 format하고 the flag is %s라고 되어있는 부분을 볼 수 있습니다. 따라서 뭔가 뛰어넘은것으로 판단하였고, 어셈블리어 코드를 봤습니다. 빨간색 cmp 부분에서 rbp-0x4가 0이면 파란색 main+96부분의 printf가 수행되고, 만약 두 값이 다르면 main+113의 printf가 수행됩니다. 저희가 실행시킬때는 두번째 printf가 실행되니깐 첫 번째 printf를 봅시다. 각 인자인 0x6010e0과 0x400638을 확인해봤습니다. 네, 저희가 예상한대로 되는 것 같네요! 여기서는 두가지 방법으로 할 수 있을 것 ..
War Games/HackCTF
[HackCTF] :rev: Reversing Me
착하게도 코드를 다 줬네요 #include #include int main() { int i; char *serial = "H`cjCUFzhdy^stcbers^D1_x0t_jn1w^r2vdrre^3o9hndes1o9>}"; char enter[54]; printf("키를 입력하시게 : "); scanf("%s", enter); if (strlen(enter) == strlen(serial)) { for (i = 0; i < strlen(serial) && (enter[i] ^ (i % 2)) == serial[i]; i++); if (i - 1 == strlen(enter)) printf("정답일세!\n"); } else printf("그건 아닐세...\n"); exit(0); } for문안에 있는 일련..
War Games/HackCTF
[HackCTF] :rev: Welcome_REV
50점짜리 문제네요 미안 귀찮아서 아이다 열었다^^7 check_password에 들어가봅시다 엄청난 일련의 계산과정이 있고, 그리고 맨 마지막에 strncmp를 진행하는데, 그 대상의 끝이 =로 끝나네요. 뭔가 수상해서 base64 디코더로 돌려봤더니 답이였습니다. 그 긴 계산과정은 base64 인코딩 과정을 써놓은 것 같네요. 굳굳!
War Games/HackCTF
[HackCTF] :pwn: Yes or no
ㄱㄱ int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax int v4; // eax int v5; // ecx int v6; // eax int v7; // eax char s; // [rsp+Eh] [rbp-12h] int v10; // [rsp+18h] [rbp-8h] int v11; // [rsp+1Ch] [rbp-4h] setvbuf(stdout, 0LL, 2, 0LL); v11 = 5; puts("Show me your number~!"); fgets(&s, 10, stdin); v10 = atoi(&s); if ( (v11 - 10) >> 3 < 0 ) { v4 = 0; } else { v3 = v1..
War Games/HackCTF
[HackCTF] :pwn: x64 Buffer Overflow
문제 봅시다 scanf로 입력을 받고있기때문에 입력제한이 없죠? 따라서 bof를 일으키면 될 것 같습니다. 마침 쓰라고 이런것도 줬네요. callMeMaybe: 0x00400606 이걸로 ret를 bof시켜봅시다 64bit여서 sfp가 8비트인점 까먹지 마시구요. 나머지 bof는 풀이 올리지 않겠습니다 다 똑같은 패턴이기 때문!
War Games/dreamhack
[rev] rev-basic-9
보호되어 있는 글입니다.
SYSTEM HACKING/PWNABLE&REVERSING
그래서 우리가 포너블을 하는 이유
물론 저도 부족한 지식이지만 동아리 활동을 통해 포너블에 대해 후배들을 가르치면서, 가장 많이 설명한 부분이 "포너블이 무엇이고, 왜 하는가"에 대한 부분입니다. 저는 처음 공부할 당시에 정말 맨땅에 헤딩 식으로 공부를 했기 때문에, 정확하게 내가 왜 이걸 하고 있으며 결론적으로 이루고 싶은 바가 무엇인지도 모르고 그냥 풀었습니다. 저는 어떤 일이든 내가 어떤 일을 하고있으며, 이 일의 목적은 무엇인지 파악하는 것이 매우 중요하다고 생각하는 반면에 구글을 찾아보면 무작정 워게임들을 추천하는 글밖에 없는 것 같아서 이 글을 작성합니다. (혹시나 잘못 작성된 부분이 있다면 댓글 부탁드립니다. 감사합니다!) 0. 포너블이란 사실 이내용은 조금만 찾아봐도 널려있는 내용이라 간단하게 하고 넘어가겠습니다. 우선 왜..
나의 고혈압걸리는 에러일기
[Linux] bits/libc-header-start.h: No such file or directory
32bit 파일로 컴파일 하려는 경우 bits/libc-header-start.h: No such file or directory 오류가 발생하는 경우가 있다. 이 경우에는 sudo apt-get install gcc-multilib g++-multilib 를 다운받으면 잘 해결됩니다. 리눅스가 기본적으로 64비트 운영체제여서 발생하는 오류인 것 같네요. 굳!