<나의 풀이 기록>
문제 링크
https://dreamhack.io/wargame/challenges/409/
1. 문제 파일 다운로드, 문제 내용 확인
문제 파일을 다운로드 하면 app.py파일이 있다.
app.py의 코드를 간단히 살펴보니 '아이디 : 비밀번호'로 보이는 내용이 있다. 이것을 이따 적용해 보기로 했다.
접속 정보 보기를 클릭하면 나오는 링크에 접속하고 login버튼을 누르면 아래와 같은 페이지로 이동한다.
이 페이지에서 위에서 봤던 코드에 있던 쌍으로 로그인을 시도해봤다.
이렇게 user와 guest로 로그인에 성공했지만 admin이 아니다.
2. admin sessionid 획득
지난 번 쿠키 문제에서 했던 것 처럼 value값을 직접 바꿔주는 것을 시도 → 해결방법 아님
주소창 끝부분에 /admin을 추가해 주었더니 guest, user, admin의 세션 아이디 값이 모두 나왔다. admin의 session 아이디를 value값에 집어넣어 admin이 로그인 한 것 같은 상태를 만들기로 했다.
3. admin sessionid로 플래그 획득
guest나 user로 로그인한 상태에서 sessionid 항목의 value값에 admin의 세션id를 넣어주고 새로고침하면 플래그를 획득할 수 있다.
flag : DH{8f3d86d1134c26fedf7c4c3ecd563aae3da98d5c}
사실 이 문제는 주어진 app.py 코드 아래쪽에 있는 힌트만 포착하면 아주 쉽게 풀리는 문제였다. 코드 내용을 꼼꼼히 살펴보는게 문제풀이에 큰 도움이 되는 경우도 있다는 사실을 알게 되었다.
코드에서 직접적으로 /admin을 입력하면 session_storage가 리턴된다는 것을 명시해주고 있다.
<풀이 요약>
1. 문제 파일 다운로드, 문제 내용 확인
2. 주소창 뒤에 /admin입력해 admin sessionid 획득
3. guest나 user로 로그인한 상태에서 admin sessionid로 플래그 획득
'해킹 공부 > 웹 해킹' 카테고리의 다른 글
dreamhack xss-2(XSS 방화벽 우회) (0) | 2022.01.30 |
---|---|
dreamhack xss-1(XSS 취약점) (0) | 2022.01.30 |
Dreamhack_cookie(쿠키) (0) | 2022.01.23 |
Dreamhack_devtools-sources(개발자 도구) (0) | 2022.01.16 |
Dreamhack_Carve Party(개발자 도구) (0) | 2022.01.16 |