Search

XSS-Game Level 1: Hello, world of XSS

목표 : 기본 XSS 코드

임무 설명

이 수준은 사용자 입력이 적절한 이스케이프 없이 페이지에 직접 포함되는 교차 사이트 스크립팅의 일반적인 원인을 보여줍니다.
아래의 취약한 응용 프로그램 창과 상호 작용하고 선택한 JavaScript를 실행하는 방법을 찾으십시오. 취약한 창 내에서 조치를 취하거나 해당 URL 표시줄을 직접 편집할 수 있습니다.

(원문) Mission Description

임무 목표

alert()
Plain Text
복사
아래 프레임에 JavaScript를 팝업하는 스크립트를 삽입하십시오 .
경고를 표시하면 다음 단계로 넘어갈 수 있습니다.

(원문) Mission Objective

Your Target

Target Code

#level.py page_header = """ <!doctype html> <html> <head> <!-- Internal game scripts/styles, mostly boring stuff --> <script src="/static/game-frame.js"></script> <link rel="stylesheet" href="/static/game-frame-styles.css" /> </head> <body id="level1"> <img src="/static/logos/level1.png"> <div> """ page_footer = """ </div> </body> </html> """ main_page_markup = """ <form action="" method="GET"> <input id="query" name="query" value="Enter query here..." onfocus="this.value=''"> <input id="button" type="submit" value="Search"> </form> """ class MainPage(webapp.RequestHandler): def render_string(self, s): self.response.out.write(s) def get(self): # Disable the reflected XSS filter for demonstration purposes self.response.headers.add_header("X-XSS-Protection", "0") if not self.request.get('query'): # Show main search page self.render_string(page_header + main_page_markup + page_footer) else: query = self.request.get('query', '[empty]') # Our search engine broke, we found no results :-( message = "Sorry, no results were found for <b>" + query + "</b>." message += " <a href='?'>Try again</a>." # Display the results page self.render_string(page_header + message + page_footer) return application = webapp.WSGIApplication([ ('.*', MainPage), ], debug=False)
Python
복사

문제 풀이

cake를 입력하면 GET 인자로 cake를 넘기고 검색 결과가 없다고 돌아가라는 페이지를 보여준다.
# Our search engine broke, we found no results :-( message = "Sorry, no results were found for <b>" + query + "</b>." message += " <a href='?'>Try again</a>."
Python
복사
코드를 봐도 아무런 결과도 얻을 수 없다.
self.response.headers.add_header("X-XSS-Protection", "0")
JavaScript
복사
헤더에서 디폴트 값이 1인 X-XSS-Protection 값을 0으로 만들었으므로 XSS 공격이 아무런 필터 없이 가능하다.
<script> alert('hi'); </script>
JavaScript
복사
목표는 alert를 실행시키는 것으로 일반적인 alert를 실행시키는 JavaScript 코드다.
검색창에 넣고 실행시키면 바로 문제가 해결된다.

✓ XSS Game

✓ 다른 [워게임] 포스트

WebHacking.kr Challenge Write-Up (70/80)
In progress
WebHacking.kr Challenge Write-Up (70/80)
In progress
Load more
︎ 더 많은 게시물을 보려면
︎ 작성자가 궁금하면?
 2023. absolroot all rights reserved.