전체 글
-
WITHCON mallocPwnable/CTF 2017. 3. 3. 13:11
문제 메인은 이렇다. malloc 부분을보면 32를 할당하게된다. 이떄 32보다 크면 It's too big! 을 출력 시키고 malloc(32) 를 한다. 이 부분에 flag를 여는 곳이 있다. 이 뜻은 이쪽으로 리턴? 을 시켜서 풀라는 것 같다. 그래서 이 문제는 How2Heap 중 fastbin dup into stack을 이해한다면 풀 수 있다. 물론 .. 이해해도 어려웟다 .. (일단 익스 코드를 보여주고 거기에 따라서 힙 상황 적음) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455from pwn import *p=remote("192.168.1.104",9001..
-
-
-
pwnable.kr mistakePwnable/Pwnable.kr 2017. 2. 27. 01:46
문제를 보면 hint : operator priority(우선순위) 가 있다. 우선순위를 찾아보면 알겠지만 fd 변수를 다르는 부분에서 오류가 생긴다. 바로 우선순위가 1.< 2. = 라는 뜻이다. 원래 저 소스를 짤떄 바라던 것은 open 함수로 파일을 열고 그 것의 파일디스크립터(반환값) 을 fd에 넣고 그 값이 0 보다 작은지 확인 하기위한것이었을것이다. 그래서 open 함수는 오류가 나지 않고 OPEN이 성공하면 음수가아닌 1234~~.. 처럼 양수로 되는데 그 양수는 0보다 작지 않기 떄문에 FALSE(0) 이 된다. 그럼 그 FALSE 값인 0이 FD변수에 들어가게 된다. 그래서 FD(파일디스크립터) 는 0이된다. 파일 디스크립터는 0입력 1출력 2오류 3.. 4소켓 이런식으로 된다. 그럼 l..
-
ELF - Ptrace카테고리 없음 2017. 2. 26. 19:32
처음 Ptrace 이 것에 정체를 알아차리지못해서 .. 많은 삽질을 하였다.. ptrace 부분이 저 부분이다. test 어셈블리로 디버거를 구분하는데 저쪽에 브레이크를 걸고 실행해보면 eax레지스터 값이 아마 -1 같이 0이 아닌값일것이다. 그 상태로 쭉 실행되면 Debugger ~ 하면서 프로그램이 종료되는데 그 의미는 eax를 0으로 만들면 우회가 된다는 뜻이기떄문에 eax레지스터 값을 0으로 만들면된다. 그럼 입력을 받고 아래쪽에 딱 4개의 CMP 어셈블리가 있는데 그 의미는 패스워드가 4글자라는 뜻 이며 그 CMP 부분을 보게되면 cmp %al,%dl 이런식으로 되어있다. 그렇게 되면 $dl 에는 내가 입력한 값 %al 에는 비밀번호 한자리 씩 들어가 있을것이다 ! 처음 입력할떄 1234를 입력..