감자 텃밭

[HackCTF] gift 본문

my_study/HackCTF

[HackCTF] gift

g2h 2021. 8. 16. 18:21

이번에 풀어볼 문제는 hackctf의 gift문제이다

해당 프로그램을 실행 후 적용된 메모리 보호 기법을 확인하였다.

특정 문자열과 주소값 2개를 출력 후 문자열을

입력할 수 있었고 입력하면 같은 문자열을 출력 후 

한번 더 입력을 받고 끝났다.

해당 메모리보호기법은 nx만 걸려있었다.

IDA를 통해 좀 더 상세한 분석을 해보았다.

main 함수에서 binbs의 주소와 system함수의 주소를 출력해주고 fgets함수를 통해 입력값 검증과 함께 입력받을 수 있으며 입력값 그대로 출력되고 gets로 한번 더 입력받을 수 있다 이 부분에서 bof를 일으키고 printf에서도 포맷 스트링 버그가 일어나지만 해당 문제는 rtl을 통해 풀어볼 것이다.

binsh를 확인해보면 해당 주소에는 아무것도 들어있지 않았다.

익스 코드는 rcve를 통해 출력되는 binsh와 system의 주소를 저장 후 첫 번째 입력에서 임의의 값을 입력 후 두 번째 입력값에서 ret까지 접근 후 gets함수를 호출하여 binsh에 /bin/sh문자열을 입력 후 가젯을 통해 system을 호출 후 인자 값으로 binsh를 호출하면 될 것이다.

 

해당 공격코드를 실행시키면 성공적으로 쉘을 획득할 수 있다.

'my_study > HackCTF' 카테고리의 다른 글

[HackCTF] - yes or no  (1) 2021.08.26
[HackCTF] ROP  (0) 2021.08.16
[HackCTF] Look at me  (0) 2021.08.16
[HackCTF] Beginner_Heap  (0) 2021.08.10
[HackCTF] random  (0) 2021.08.09