System Hacking/pwable.kr

07.pwnable input

oiehso0 2018. 2. 19. 16:39

c로 짜여진 프로그램에서 주어진 조건에 맞게 5단계에 걸쳐 올바르게 들어간다면 flag를 출력해주는 프로그램이다. 구성을 아래와 같다.

나는 pwntools를 이용한 python스크립트를 간단하게 짜서 문제를 풀었다. 


Stage 01. argv

argv['A']에 "\x00", argv['B']에 \x20\x0a\x0d"가 들어있는가?


Stage 02. stdio

파일 디스크립터 표준입출력을 이용해서 특정값(\x00\x0a\x00\xff, \x00\x0a\x02\xff)을 넣을 수 있는가?


Stage 03. env

환경변수 인풋을 넣을 수 있는가?


4.file

"\x0a"라는 파일을 열고 문자를 write할 수 있는가?


5.network

argv['C']의 값을 포트번호로 하는 

소켓통신을 통해 어떤 값을 send할 수 있는가?


아래를 참고하여 페이로드를 파악해보면 이해가 쉽다.












pwntool을 이용하면 소켓통신을 remote하나로 간편히 할 수 있고 local에 있는 프로그램에 여러 인자들을 긴 코드 필요없이 

간단히 넘겨 줄 수 있다.