728x90

풀이


checksec으로 확인해보면 NX가 꺼져있어서 쉘코드를 사용할 수 있다!! 처음에 이름을 입력받을 때 쉘코드를 넣어주면 된다! 여기서 나중에 알게 되겠지만 이중포인터 구조라서 쉘코드 뒤에 쉘코드의 주소를 하나 박아줘서 이중 포인터 구조를 만들어 줘야한다.

아이다로 열어보면 C++코드가 보일 것이다!!! 눈이 아프기 때문에 아이다로 짧게 훑고 동적 디버깅을 했다!! 동물 이름을 설정할때 overflow가 나고 heap의 사이즈는 고정이라서 두개 할당하고 첫번째꺼 해제한 후 다시 할당할 때 포인터를 덮어버리면 끝! 근데 여기서 주의할점은 이중포인터 구조라서 앞서 쉘코드뒤에 박아놨던 쉘코드를 가리키고 있는 포인터의 주소로 덮어야한다. 

 

^^

'PWN > HITCON_Training' 카테고리의 다른 글

[HITCON_Training] LAB 14  (0) 2019.07.15
[HITCON_Training] LAB 13  (0) 2019.07.13
[HITCON_Training] LAB 12  (0) 2019.07.11
[HITCON_Training] LAB 11  (0) 2019.07.11
[HITCON_Training] LAB 10  (0) 2019.07.10