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 |
Tags
- load of sqlinjection
- 내부침투
- 암호해독
- 해킹도구
- 모의해킹
- 권한상승
- 포트스캔
- web hacking
- Metasploit
- 해킹
- 취약점 스캔
- CTF
- 해킹툴
- smb
- Kioptrix
- Samba
- 시스템 해킹
- root권한
- 메타스플로잇
- sql
- 침투테스트
- Hacking
- SQL Injection
- 취약점분석
- SQLINJECTION
- 스캐닝
- Los
- 취약점
- 스캔
- 칼리리눅스
Archives
- Today
- Total
감자 텃밭
내 버퍼가 흘러넘친다!! 본문
HackCTF 내 버퍼가 흘러넘친다!!
이번 문제의 프로그램을 동작을 확인하기 위해 실행시켜보면 name과 input에서 입력을 받는 프로그램이다.
흠.. 일단 gdb로 까 보자
해당 프로그램을 대충 분석해보면 0x14(20byte)의 공간을 스택에 할당하고 read함수와 gets함수로 입력을 받는다
read함수로 입력받는 값은 name변수로 전역 변수임을 알 수 있다 그렇다는 건 스택이아닌 bss영역에 존재한다.
또한 gets에서 버퍼오버플로우를 일으킬 수 있다.
그렇다는건 name변수에 쉘 코드를 삽입하고 input입력값 0x14(20)+sfp(4)를 dummy값으로 채운 후 ret에 name변수의 주소를 삽입하면 될 거 같다.
그럼 이제 payload를 작성하자
이번에는 쉘 코드 대신 pwntools에서 지원하는 라이브러리를 사용하였다(신기신기)
저번째 입력에서 name(전역 변수)에 쉘 코드를 입력하고 두 번째 입력값에 더미 값으로 20+4(sfp)까지 버퍼오버플로우를 일으킨 후 전역 변수의 주소를 삽입하였다.
전역변수의 주소는 위의 read의 파라미터로 확인했듯 0x804a060이다 이것을 리틀애 디안 방식으로 만들어 넣었다.
그리고 확인해보면!
성공적으로 성공하여 쉘을 획득하고 플래그 또한 획득할 수 있다!!!
'my_study > HackCTF' 카테고리의 다른 글
Simple_overflow_bof_ver_2 (0) | 2021.05.21 |
---|---|
Simple_size_bof (0) | 2021.05.21 |
64bof_basic (0) | 2021.05.21 |
Basic_BOF#2 (1) | 2021.05.17 |
Basic_BOF#1 (2) | 2021.05.17 |