이 사이트에 있는 스택 버퍼 오버플로우 공격을 발표용으로 해 보고 있습니다.(일본어인데 크롬 번역이 잘 되네요.)
그런데 블로그에 있는 소스를 그대로 가져와서 실행하고 있는데
뭔 짓을 해도 쉘 취득이 안 되네요.
ASLR, SSP, DEP 전부 해제하고 실행시켜 봤습니다만 똑같네요...
어떻게 해야 쉘을 얻을 수 있을까요?
참고로 파일 소스는
익스플로잇 코드는
여기 분들이야 전문가시니 코드만 봐도 다들 아시겠지만 간단히 설명하자면
첫번째 인수에 버퍼길이, 두번째 인수에 버퍼의 선두주소를 찾아서 계산된 데이터를 a.out의 첫번째 인수로 세팅해서 파일을 실행시키는 겁니다. a.out은 저 위의 단순한 파일이구요.
그런데 저 홈페이지에서 좀 의문이 드는 점이
DEP를 무효화 시킨 후에 실행하면
$ gcc -fno-stack-protector -z execstack bof.c
$ python exploit.py 100 0xbffff68c buf = 0xbffff68c
(snip)
$ id
uid=1000(user) gid=1000(user) groups=1000(user) $
여기서 쉘을 취득했다고 나오는데 쉘을 취득했다고 하면 여기 부분에서 root유저로 나와야 하는 거 아닌가요?
블로그의 다음 내용부터는 제대로 #요걸로 써놨는데 요 부분에서는 이게 잘못 쓴 거 아닌가...해서요.
뭔가 쓸데없어 보이는 내용이 많았습니다만, 요지는 저게 왜 실행이 안 되는 걸까...하는 겁니다.
아시는 분은 힌트라도 주시면 감사하겠습니다.