Pwnable.kr fd


lob를 풀고 Pwnable.kr 을 풀었다.

fd가 read의 파일 디스크립터이다. 

파일 디스크립터 : 윈도우에서의 handle 과 같이 시스템으로부터 할당받은 파일을 대표하는 정수의 값이다.

0이면 표준 입력, 1이면 표준 출력 , 2이면 표준 에러이다.


fd가 파일 디스크립터이니 0으로 만들고 buf를 입력받게 만든 후 LETMEWIN을 입력하면 flag를 읽어줄 것이다.


입력값에서 0x1234를 뺀 게 0이 되면 되니 0x1234를 10진수로 만들고 나온 4660을 입력하면 buf 를 입력할 수 있게 된다.


4660을 argv[1]으로 입력하고 buf입력에서 LETMEWIN을 입력하면 flag를 읽어준다!

'write up > pwnable' 카테고리의 다른 글

LOB gremlin  (0) 2018.12.27
LOB gate  (0) 2018.12.27

LOB gremlin


코드는 전 문제와 같다.

하지만 버퍼의 크기가 줄여져서 버퍼에 쉘코드를 넣어 실행시키지 못할 것 같다.

그렇기 때문에 buffer 의 뒷 부분에 쉘코드를 넣어 실행하였다.

NOP(20byte)+뒤에 nop값 주소(4byte)+NOP(100byte)+shellcode(25byte)


gdb 에서 r `python -c' print "\x90"*24+"A"*100'` 을 넣어보았다. A 즉 41이 나오는 부분을 ret 에 넘겨주면 nop sled로 shell 이 실행될것이다.


얻은주소들로 payload를 짜면 쉘이 실행되고 다음 level의 비밀번호를 볼 수 있다.


'write up > pwnable' 카테고리의 다른 글

Pwnable.kr fd  (0) 2018.12.27
LOB gate  (0) 2018.12.27

+ Recent posts