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에 있는 프로그램에 여러 인자들을 긴 코드 필요없이
간단히 넘겨 줄 수 있다.