Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Hacking
- 취약점 스캔
- 침투테스트
- 모의해킹
- 스캐닝
- SQL Injection
- SQLINJECTION
- load of sqlinjection
- Metasploit
- 포트스캔
- 해킹도구
- 내부침투
- 취약점
- Kioptrix
- 시스템 해킹
- CTF
- 암호해독
- 권한상승
- 메타스플로잇
- 칼리리눅스
- 해킹
- 취약점분석
- Samba
- root권한
- 스캔
- sql
- 해킹툴
- smb
- Los
- web hacking
Archives
- Today
- Total
감자 텃밭
[HackCTF] gift 본문
이번에 풀어볼 문제는 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 |