오늘 풀 문제는 session-basic이다.
문제에서 제공한 참고문헌이다. (강의 코스)
먼저 코드를 열어보니 flask를 처음 접할 수 있었고, 회색 글씨와 함께 경고문구가 있었다.
상관없겠거니 넘어갔으나 코드를 분석하는 과정에서 이상함을 느낄 수 있었다.
코드로 웹을 불러오고 싶어도 계속되는 404와 500의 조우에 초심으로 돌아가고자 첫번째 문단의 코드를 봤는데 flask가 문제였다... 설치를 위해 파이썬 버전과 pip 버전을 확인하며 준비물은 잘 있나 체크한 후 설치해 주었다.
이후 임의로 만든 웹에 들어가 개발자 도구로 살펴보았지만 삽질이었다. (index.html과 login, admin 확인)
문제 사이트에 들어가니 제공해주는 웹이 있었고 반가웠다.
로그인 화면을 발견하였고
guest와 user을 해보았다.
하지만 amdin을 구해야 하고
session_storage라는 코드를 보고
강의 내용 중 소개해주었던 개발자 도구에서 session storage를 떠올릴 수 있었다.
다시 문제로 돌아가 admin을 로그인 하고자 했으나 패스워드를 몰랐고,
랜덤한 16진수로 나온다고 유추했다.
그리고 코드를 블록식으로 감싸던 @app.route('이름') 은 구글링을 통해 라우터 역할을 하고 '이름' 으로 접근한다는 것을 알게 되었다.
또한, 주석 내용을 보면 해당 페이지에서 세션을 알려준다고 되어있고
/admin을 주소창에 추가하여 다른 html 페이지로 이동하여 admin 값을 확인했다.
근데 두 값이 다르게 나왔다(랜덤값이 고정이 아니라 실행마다 바뀌는 것인...가?
초반에 소개했던 session storage를 확인하면 sessionid(코드에 있던)와 value 값이 나와 있었다.
위에 있는 값을 가져와 붙여넣기 후 새로고침을 하여 flag를 얻을 수 있었다.
삽질 많이 했다...
<참고문헌>
flask https://hansuho113.tistory.com/13
@app.route() 메소드 https://scribblinganything.tistory.com/119
'웹해킹 > DreamHack' 카테고리의 다른 글
[휴학] DreamHack xss-2 (0) | 2022.09.14 |
---|---|
[휴학] DreamHack xss-1 (0) | 2022.09.14 |
[휴학] DreamHack devtools-sources (0) | 2022.09.08 |