본문 바로가기

3. Pwnable (포너블)/1) Write UP

(4)
[6주차] pwnable.kr 문제 풀이_pwnabless pwnable.kr/play.php https://pwnable.kr/play.php pwnable.kr1. random 문제 풀이(1)문제에서 제시한 ssh random@pwnable.kr -p2222 로 접속 / pw 입력 (2)ls 명령어와 ls -l 명령어를 통해 파일 목록 및 권한 확인 (3)cat random.c 명령어를 입력해 C코드 확인#include int main(){ unsigned int random; random = rand(); // random value! unsigned int key=0; scanf("%d", &key); if( (key ^ random) == 0xcafebabe ){ printf("Good!\n"); setregid(getegid(), getegid()..
[5주차] pwnable.kr 문제 풀이_pwnabless pwnable.kr/play.php https://pwnable.kr/play.php pwnable.kr 1. collision 해당 문제는 해시 충돌에 관한 문제임 MD5 해시?128bit의 길이를 보유하고 있음(현재 사용되고 있는 SHA256 해시는 256bit의 길이 보유) 해시 충돌(Hash collision)?서로 상이한 입력값에 같은 해시값이 출력되는 상태 ∴ SHA256 해시보다 MD5의 해시 충돌 발생 가능성이 더 높음 → 따라서 현재는 MD5 해시를 잘 사용하지 않음 문제 풀이(1)문제에서 제시한 ssh col@pwnable.kr -p2222 로 접속 / pw 입력 (2)ls 명령어와 ls -l 명령어를 통해 파일 목록 및 권한 확인 (3)cat col.c 명령어를 입력해 C코드 확..
[2020.04.14] pw.Sly - pwnable.kr의 bof(2) 출석 : 모두들 정시출석 perfect, 과제 제출 perfect 학습내용 : pwnable.kr 3번 bof문제 코드 심층분석 [pwnable.kr 3번문제] Q1. 스택은 높은주소에서 낮은 주소로 쌓이는 거 아닌가? overflowme 시작 주소가 ebp-0x2c일 때 왜 위로 자라나지 않고 아래로 자라난다고 많은 write up에서 풀이되어 있는지 모르겠음. (여기서 왜 1번이 아니고2번인가?) ​ A. 수많은 글을 찾아봤으나 정확한 결론이 나지 않음. 높은 주소부터 낮은 주소로 스택이 확장되는것은 맞는것 같음. 자세한 문의는 교수님께 드려봐야 할 듯. Q2. func함수에서 mov eax, gs:0x14부터 3번째 줄까지는 무슨 일을 하는 것인가? 카나리라는 이야기를 듣긴했는데 정확히 모르겠다. ..
[2020.04.07] pw.Sly - pwnable.kr의 bof(1) 0407 pw.Sly - 달고나 문서와 이어짐. [pwnable.kr 3번문제] Q1. 박슬리 ppt를 보면 9슬라이드에서 왜 func함수가 시작되는 곳이 ebp-0x2c인가? 그 위에가 printf함수인데 그러면 이미 func이 시작된것이 아닌가? ebp-0x2c가 gets 입력받는 곳이라고 생각하면 (ebp+0x8)-(ebp-0x2c)가 이해되는데 왜 func의 시작지점인지 모르겠다. A. ppt 오타이다. 함수가 아니라 배열의 시작지점이다. 배열 overflowme의 시작부분이 ebp-0x2c 이다. func 함수의 시작은 0x0000062c이다. Q1. gdb로 뜯은 코드에서 char 배열의 시작점은 어디이며, 왜 overflowme의 시작주소가 0x2c인가? printf 이전에 선언하였는데 왜 ..