LEVEL 1

csrf-1

web
  • 문제 정보
  • 풀이 219
  • 난이도 투표 39
  • 질문 14
  • 최근 풀이자 7026
  • 댓글 204

문제 설명

여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다.

CSRF 취약점을 이용해 플래그를 획득하세요.

문제 수정 내역

2023.07.18 css, html 제공 및 read_url() 코드 일부가 변경되었습니다.

Reference

Client-side Basic

출제자 정보

avatar
Dreamhack
대표 업적 없음

First Blood!

arang
Open Beta Tester
출제된 지 19시간 만에 풀이 완료!

난이도 투표 39

질문 14

문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
admin_notice_flag 쪽에서 이해가 잘 안되는게 있습니다.
@app.route("/admin/notice_flag") def admin_notice_flag(): global memo_text if request.remote_addr != "127.0.0.1": return "Access Denied" if request.args.get("userid", "") != "admin": return "Access Denied 2" memo_text += f"[Notice] flag is {FLAG}\n" return "Ok" if request.args.get("userid", "") != "admin": return "Access Denied 2" 두번째 조건문을 보고 /flag에서 <img src="/admin/notice_flag?userid=admin"> 넣어서 여차저차 풀었는데, 첫번째 조건문에서의 127.0.0.1이라는 주소가 무엇을 뜻할까요? 그리고 처음 문제를 받았을때 /admin/notice_flag 페이지에서 Access Denied가 뜨면 현재 주소가 127.0.0.1이 아니라는 뜻 아닌가요...? 그리고 왜 <img src="/admin/notice_flag?userid=admin">넣은것으로 바로 해결됬을까요? if request.remote_addr != "127.0.0.1":에서 뜻하는 주소의 의미를 알려주세요 if request.remote_addr != "127.0.0.1":의 조건문에서 주소가 127.0.0.1인 경우에만 두번째 조건문으로 들어가 userid를 확인하는 것이 아닌가요? <img src="/admin/notice_flag?userid=admin">를 넣으면 주소가 127.0.0.1로 되는 것일 까요? 아직 모르는것이 많아 어떤분이 보시기엔 너무나 당연한 것을 질문한 것일지 모르겠습니다. 답변해주시는 분들 감사드리며 드림핵내부에서 참고할만한 문서가 있을까요?
cycloid

최근 풀이자 7026

Deep_Eye
대표 업적 없음
avatar
칼키 고스트
대표 업적 없음
history7543
대표 업적 없음
NAZMO
대표 업적 없음
cosacuit
대표 업적 없음
wqdsdsf
대표 업적 없음
스페이스니들
대표 업적 없음
harinkang
대표 업적 없음
대표 업적 없음
오동통한 기린
대표 업적 없음

댓글 204

avatar
Rootsquare
해결사
CSRF 실습 문제 1
avatar
jjw1126
꿈나무
야 기분좋다
kkjjww
대표 업적 없음
ㄹㅇ 쉽네
똘비
대표 업적 없음
워게임 처음해보시는 분들... 풀이는 꼭 문제 파일이 아닌 vm서버로 들어가셔요..ㅠㅠ -아무 생각 없이 문제파일 html로 들어가서 며칠 헤맨 사람으로부터-
Samsubong
대표 업적 없음
달콤한 딸기
valmung
대표 업적 없음
딸기
avatar
장근성
공부벌레
딸기
hykid1189
대표 업적 없음
딸기
1121311
대표 업적 없음
xss를 이해하고 풀이했다면 이 문제는 쉽게 풀 수 있네요
O_F
대표 업적 없음
배운대로 하면 됩니다.