FTZ level19

Wargame/FTZ 2018. 1. 7. 23:07

코드를 보면 다음과 같다. 특별할게 없는 코든데 setreuid가 없어서 권한상승이 안된다.

 

두가지 방법으로 풀 수 있는데 setreuid가 포함된 쉘코드를 올리는 방법과 RTL Chaining으로 푸는 방법이 있다.

 

개념정리 및 연습도 할겸 RTL Chaining 기법으로 풀었다.

 

 

익스할 구조는 SFP + "setreuid 주소" + " gadget(pop pop ret)" + "setreuid 인자1" + "setreuid 인자2" + "system 함수주소" + "dummy 4byte" + "/bin/sh"

요렇게 해주면 된다.

 

그럼 이제 필요한 재료만 구해주면 된다.

 

먼저 호출할 함수들의 주소를 얻기 위해 간단히 소스짠 후 gdb로 주소를 구했다.

setreuid = 0x420d7920

system = 0x4203f2c0

 

 

 

다음으로 objdump로 gadget을 구했다. setreuid의 인자값이 2개이기 때문에 pop pop ret 구조인 gadget을 찾았다.

덤프된 내용을 보면 80489d 주소에 pop pop ret가 연속으로 이루어지고 있어 해당 주소를 사용했다.

 

 

마지막으로 /bin/sh 문자열이 담긴 주소를 구하면 되는데 system 함수내에 있는 /bin/sh를 구하는 방법과 환경변수에 /bin/sh를 등록하고 환경변수 구하는 두가지 방법 중 환경변수를 통해 구하는 방식을 썼다.

 

 

이제 필요한건 다 구했으니 그대로 익스해주면 된다.

 

 

 

잘나온당.

 

 

 

 

 

 

 

 

'Wargame > FTZ' 카테고리의 다른 글

FTZ level20  (0) 2018.01.07
FTZ level18  (0) 2018.01.07
FTZ level17  (0) 2018.01.07
FTZ level16  (0) 2018.01.06
FTZ level15  (0) 2018.01.06
블로그 이미지

JeonYoungSin

메모 기록용 공간

,