slide-image

 

LOB

[Load Of Buffer overflow]

#07 :darkelf->orge

 

 

일단 LOB 정리한 건 이게 마지막이다. 그 이후 LOB 풀이는 저 뒤에 있을 거고, 그 마저도 다 안풀었으니 마지막 푼 데부터 다시 할 생각이다. 지금 이 LOB는 redhat이니까 아마 fedora를 풀거나 아니면 exploit-exercies를 풀 생각이다.

 

일단 코드는 저번 문제와 비슷했고, 다 똑같은데 바뀐 부분은 argv[0]이 77자리여야한다는 것이었다. argv[0]은 입력하는 값의 공백을 만나기 전의 처음 부분, 즉 처음에 쉘에 입력하는 ./orge부분으로 원래라면 strlen(argv[0])은 6이었다. orge의 권한이 없기 때문에 이름을 바꿔줄 수 없었고, cp를 해도 권한이 setUID가 유지되는 것이 아니기 때문에 다른 방법을 찾아보아야 했다.

...더보기

 

일단은 어차피 gdb를 해야하기 때문에 cp해주고, 심볼릭 링크를 이용하기로 했다. 심볼릭 링크는 MS 윈도우사의 바로가기와 비슷한 개념이었다. 파일 이름은 다르고 원본파일에 포인터를 가리키는 것이다. 하지만 하드 링크는 다른 이름의 똑같은 파일을 하나 만드는 것이고, i-node를 공유해서 원본파일 내용이 바뀌면 하드 링크 파일 내용도 바뀌는 개념이었다.  하드링크 파일은 원본이 삭제되어도 삭제되지 않는다.

 

따라서 심볼릭 링크 파일을 만들 것인데,

일단 \xbf\xbf\xbf\xbf로 리턴 어드레스를 넣어서 인자 2개로 페이로드를 만들었다.

덤프 파일을 살펴보았다.

 

대충 저 정도를 리턴어드레스로 주면, NOP 슬라이딩이 될 것 같았다.

 

temp였던 A 75개짜리(앞에 ./가 들어가므로 77-2) 파일을 삭제하고, 심볼릭 링크 파일을 만들었다.

아까 고른 \xbf\xff\xfa\x90을 리턴 어드레스로 페이로드 만들어서 공격했다.

성공.

 

'Wargame > LOB(Redhat)' 카테고리의 다른 글

[LOB] bugbear->giant  (0) 2019.03.29
[LOB] darkknight->bugbear  (0) 2019.03.28
[LOB] wolfman->darkelf  (0) 2019.03.28
[LOB] orc->wolfman  (0) 2019.03.28
[LOB] goblin->orc  (0) 2019.03.28