실행환경: burf suite, WebGoat
Buffer Overflows 정의
공격 | 공격 유형 | 대응방안 |
버퍼 오버플로우 |
스택(Stack)이나 힙(Heap)에 할당되는 메모리에 문자열 등이 저장될 때 최초 정의된 메모리의 크기를 초과하여 문자열을 저장하는 경우 예기치 않은 결과가 발생하는 보안약점 |
1) ASLR(주소 공간 배치 난수화) 메모리 공격 방어하기 위해 주소 공간 배치를 난수화 2) Stack Guard (스택 가드) RET, 복귀 주소 근처에 '카나리아'라는 특수 문자열 넣어 방어 3) Stack Shield (스택 쉴드) 함수 시작 시 복귀 주소를 Global RET에 저장하여 함수 종료 시 저장된 값과 스택의 RET 값을 비교 |
문제
VIP 손님이 쓰는 방은 어떤 방인지 찾는다.
Show Source를 클릭하면 JAVA 코드가 나오는 것을 확인할 수 있다.
그중에서 IF문에 param3.length()이 4096을 넘어가면 VIP 이름과 방 번호를 알려주는 코드가 존재한다.
param3는 Room Number이므로 4096이 넘어가는 길이의 값을 넣는다.
Python으로 4097 길이의 문자 만들기
사용했던 파이썬 실행 사이트
https://replit.com/languages/python3
붙여넣기
문자열 넣었을 때, VIP의 이름과 성을 넣어야 한다고 했기 때문에
코드에서 보았던 이름과 성을 넣고 방 번호를 a(4097개) 문자열로 넣었을 때, 완료되었다!
완료
정확하게 완료가 되려면 Room Number를 소스코드에 적혀있던 번호로 적어주면 된다.
'Security > WebHacking' 카테고리의 다른 글
[bWAPP] 칼리리눅스(Kali Linux)에 bWAPP 설치 / bee-box 설치 (282) | 2023.01.05 |
---|---|
[웹취약점] 포맷스트링(Format String) 기본지식 및 공격방법 (454) | 2023.01.04 |
[HackCTF Web] 가위바위보 (파일 업로드 취약점) (440) | 2021.02.03 |
[HackCTF Web] Input Check (X-Forwarded-For 헤더) (636) | 2021.02.03 |
[HackCTF Web] Input Check (295) | 2021.02.03 |