일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- rev-basic-3
- L15
- Pwnable
- Basic
- sd카드 리더기
- rev-basic-5
- L17
- off_by_one_001
- pwnable.kr
- Dreamhack
- RCE
- 코드엔진 베이직
- rev-basic-2
- out_of_bound
- basic_exploitation_000
- basic_exploitation_001
- L16
- rev-basic-6
- rev-basic-1
- sint
- 포너블
- rev-basic-4
- 코드엔진 베이직 13
- CodeEngn
- rev-basic-0
- coin1
- rev-basic-7
- L18
- off_by_one_000
- 드림핵
- Today
- Total
목록Pwnable (11)
서브웨이

뭔가 쉬어가는 문제랍니다. 평소와는 다르게 리드미 파일이 있네요. 읽어봅시다. 일단 여기있는 소스코드는 보기용 파일이고 진짜 실행을 위한 소스코드는 9022 포트로 접속하면 있답니다. 일단 소스코드를 봅시다. // compiled with : gcc -o memcpy memcpy.c -m32 -lm #include #include #include #include #include #include #include unsigned long long rdtsc(){ asm("rdtsc"); } char* slow_memcpy(char* dest, const char* src, size_t len){ int i; for (i=0; i= 64){ i = len / 64; len &= (64-1); while(i--..

UAF(Use After Free) 취약점에 관한 문제 입니다. 일단 uaf가 무엇인지 먼저 알아봅시다. https://woosunbi.tistory.com/95 Use-After-Free 취약점 UAF(Use-After_free) 취약점이란 무엇인가? : UAF 취약점이란, 프로그래머가 Heap 영역을 잘못 다룰 때 발생하는 취약점으로, 가령 우리가 Heap 영역을 사용한 후 Free 하고 재사용(reallocation) 할 경우 일어 woosunbi.tistory.com 간단히 말해 A변수에 동적할당 후 해당 값을 사용한 뒤 해제를 하고 B라는 값에 동적할당을 해주면 A에서 사용한 값이 그대로 남아있는 취약점을 말합니다. 일단 접속해봅시다. 언제나처럼 소스코드를 먼저 봅시다. 이번 파일은 특이하게 C..

이 문제또한 cmd1과 같이 우회를 연습하는 문제인 듯 합니다. 일단 봅시다. 일단 소스코드 먼저 봅시다. #include #include int filter(char* cmd){ int r=0; r += strstr(cmd, "=")!=0; r += strstr(cmd, "PATH")!=0; r += strstr(cmd, "export")!=0; r += strstr(cmd, "/")!=0; r += strstr(cmd, "`")!=0; r += strstr(cmd, "flag")!=0; return r; } extern char** environ; void delete_env(){ char** p; for(p=environ; *p; p++)memset(*p, 0, strlen(*p)); } int m..

리눅스 터미널에서 환경변수를 조작하는 문제인가봅니다. 한번 봅시다. 평범하네요. 그럼 일단 소스코드를 봅시다. #include #include int filter(char* cmd){ int r=0; r += strstr(cmd, "flag")!=0; r += strstr(cmd, "sh")!=0; r += strstr(cmd, "tmp")!=0; return r; } int main(int argc, char* argv[], char** envp){ putenv("PATH=/thankyouverymuch"); if(filter(argv[1])) return 0; system( argv[1] ); return 0; } 매우매우 짧습니다. 빠르게 읽어봅시다. 대충 읽어보니 PATH 환경변수를 /thanky..

프로그래밍을 공부해본 사람이라면 누구나 한번쯤은 만들어 봤을법한 로또 프로그램에 관한 문제인가보네요. 접속해봅시다. 이러한 파일들이 있습니다. 일단 소스코드 먼저 봅시다. #include #include #include #include unsigned char submit[6]; void play(){ int i; printf("Submit your 6 lotto bytes : "); fflush(stdout); int r; r = read(0, submit, 6); printf("Lotto Start!\n"); //sleep(1); // generate lotto numbers int fd = open("/dev/urandom", O_RDONLY); if(fd==-1){ printf("error. te..

뭔가 이번에도 스크립트를 짜서 게임을 해야하는 것 같네요.... 일단 접속해봅시다. 일단 게임을 몇판 플레이 해보니 별거 없습니다. 워낙 좋아하는 게임이라 일단 처음에는 게임을 한번 즐겨보자 싶어서 해봤는데 50000달러까지 불렸었네요ㅎㅎ 그럼 한번 소스코드를 봅시다. 문제에 나온 주소로 들어가니 800줄에 가까운 코드가 나옵니다... 일단 읽어봅시다. 코드를 첨부하기엔 너무 길어서 핵심만 보여드리겠습니다. 쭈우욱 읽다보니 이상한 부분이 하나 있습니다. int betting() //Asks user amount to bet { printf("\n\nEnter Bet: $"); scanf("%d", &bet); if (bet > cash) //If player tries to bet more money t..