본문 바로가기

WARGAME/Lob

LOB LEVEL19 (nightmare ==> xavious)

안녕하세요


사진을 보면 알겠지만 안되는게 너무 많다

buffer+47에 \xbf, \x08을 못하게 함으로

스택 영역이나 코드 영역의 주소를 사용 못한다

LD_PRELOAD 안됨

leave-ret도 사용 불가 (\x40을 제한하진 않았음)

그러니 라이브러리도 사용 못한다

그냥 다 사용하지말라는거다


그럼 어떻게 풀수있냐면

fgets()사용하면

read라는 함수를 통해 일정 영역에 버퍼로 잠시 넣어둔다





$(python -c 'print "A"*48';cat) | strace ./파일 이름

이렇게 하면 중간에


old_mmap으로 0x40015000부터 0x40016000까지 

할당해 임시 버퍼로 사용하고있다

A 48개를 read로 읽은 뒤에 0x40015000 임시버퍼영역에 넣어준다

그럼 이제 쉘코드를 임시버퍼에 넣어주고 

ret을 임시버퍼로 정해준다



성공




'WARGAME > Lob' 카테고리의 다른 글

LOB FC3 gate  (0) 2016.01.11
LOB LEVEL20(xavious ==> death_knight)  (0) 2016.01.04
LOB LEVEL18 (succubus ==> nightmare)  (0) 2016.01.03
LOB LEVEL17 (zombie_assassin ==> succubus)  (0) 2015.12.31
LOB LEVEL16 (assassin ==> zombie_assassin)  (0) 2015.12.30