'll Hacker
Dreamhack wargame : File Vulnerability Advanced for linux write-up 본문
Hacking/WebHacking
Dreamhack wargame : File Vulnerability Advanced for linux write-up
씨이오가 되자 2024. 1. 4. 01:55
Contents
728x90
코드 분석
세 가지 엔드포인트로 나눠서 분석 -> /, /file, /admin
첫 번째 코드 부분 -> 그냥 홈화면 같다. 힌트없음
/file에서 HTTP GET 요청에 대한 쿼리 문자열에서 path값인 해당 경로의 파일을 열어서 내용을 화면에 출력하는 코드이다.
Path traversal 의도한 문제인 것 같음.
여기서
쿼리문자열(쿼리스트링)이란?
사용자가 입력 데이터를 전달하는 방법으로 url 주소에 어떤 데이터를 파라미터를 통해 서버측에 전달하는 것
- 정해진 엔드포인트 주소 이후에 ?(물음표)룰 쓰는 것으로 쿼리스트링이 시작
- parameter = value로 필요한 파라미터의 값
- 파라미터가 여러개일 경우 &를 붙힌다.
/admin에서 @key_required는 무엇인가? 물어보면 코드 맨 위에 나와있었다.
API 키가 나와있는 것으로 봤을 때 이 값을 얻어오는게 출제자 의도인 것 같다.
API_KEY에 대한 접근 경로는 문제 파일에 나와있었다,
/file?path = ../../var/log/nginx/nginx_access.log를 url에 입력하면
API_KEY값을 알 수 있다.
근데 현재 위치를 알고 싶어서 다음과 같이 실행하였다.
현재 위치는 /app이었다.
명령어를 실행하기 위해서는 API_KEY를 꼭 쿼리문에 작성해야만 실행되는 것 같다.
궁금한것은 못참지
그렇다면 API와 API key는 무엇인가?
API Def.
- 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘
- Application Programming Interface의 약자
API Key Def.
- API 개발자가 API에 대한 액세스를 제어하는데 사용하는 영문, 숫자 등 문자
- API 키 작동원리
- API 서버는 고유한 API 키로 요청자의 신뢰성을 검증
- API 키가 허용된 키와 일치하지 않는 경우 서버는 API 호출을 거부하고 거부 메시지를 보냄
- API 키가 일치하면 서버가 요청을 처리하고 예상 응답 반환
다시 돌아와서
/admin?API_KEY=d22cb18e86fc9e23996650150461c9f794ad3a4f&cmd=/flag을 하면
플래그를 얻을 수 있다.
728x90
'Hacking > WebHacking' 카테고리의 다른 글
웹해킹 유용도구 : 개발자 도구 사용법 (0) | 2024.01.19 |
---|---|
Dreamhack wargame : ex-req-ex write-up (4) | 2024.01.04 |
Dreamhack wargame : Flying Chars write-up (0) | 2024.01.03 |
Dreamhack wargame : phpreq write-up (3) | 2024.01.03 |
dreamhack : file vulnerability advanced - 윈도우 (0) | 2024.01.02 |