[클라우드 바우처] 80% 할인된 금액으로 드림핵 엔터프라이즈를 도입해 보세요. 자세히 알아보기
xss-1에서 127.0.0.1:8000의 역할

<script>location.href="http://127.0.0.1:8000/memo?memo="+document.cookie</script>

flag 얻기 위한 구문입니다. 궁금한건 2가지 입니다.

  1. memo 페이지는 http://host3.dreamhack.games:포트번호 라는 url에 존재하는데

그리고 127.0.0.1:8000는 접속도 안되는데 어떻게 127.0.0.1:8000/memo?memo= ....이런식으로 풀리는건지 모르겠습니다.

127.0.0.1:8000 대신에 host3.dreamhack.games:포트번호 로 하면 wrong이라는 알림창이 뜨더군요. wrong이 뜨는 이유도 이해가 안가긴 합니다.

  1. flag 페이지에서 입력값에 <script>alert(document.cookie)</script>를 입력하는 방식으론 FLAG를 구할 수 없는 이유는 read_url 함수 내에서 driver.get(url)로 창을 띄우자마자 driver.quit() 함수로 창을 닫아서 알림창을 못 보는게 맞을까요?

코드는 첨부하니까 엉망이네요. 생략하겠습니다.

작성자 정보
답변 1
avatar
p6rkdoye0n
대표 업적 없음

첫번째 127.0.0.1이라는 주소는 localhost, 즉 admin의 개인 컴퓨터를 의미 합니다. admin이 vuln 페이지에 xss 취약점이 담긴 페이지로 접속하게 되면 admin의 쿠키가 메모에 작성되는 방식이죠. wrong이 뜨는 이유는 셀레늄이 접속이 안되거나 통신이 원할하지 않을 때 발생합니다. wrong이 뜨는 정확한 이유는 모르겠지만 후자의 방식으로 페이로드를 보내게 된다면 admin의 쿠키가 없거나 관리자가 관리자의 권한이 없는 페이지를 접속한 것이기 때문에 flag가 안 나올 수 있습니다. 두번째는 음.. 문제가 어떻게 작동하시는지 이해가 안 되신거 같은데요.. admin의 컴퓨터로 페이로드를 보내면 admin이 vuln페이지로 보낸 페이로드와 함께 접속하는 겁니다. 그러면 만약 두번째 질문처럼 alert로 쿠키 출력하면 admin의 컴퓨터에서만 출력 될 뿐이지 저희가 보고 있는 페이지에서는 출력이 안됩니다!

2023.02.08. 14:40
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기