문제 풀이 Mission Description Complex web applications sometimes have the capability to dynamically load JavaScript libraries based on the value of their URL parameters or part of location.hash. 복잡한 웹 애플리케이션에는 URL 매개변수 또는 location.hash의 일부 값을 기반으로 JavaScript 라이브러리를 동적으로 로드하는 기능이 있는 경우가 있습니다. This is very tricky to get right -- allowing user input to influence the URL when loading scripts or other po..
문제 풀이 Mission Description Cross-site scripting isn't just about correctly escaping data. Sometimes, attackers can do bad things even without injecting new elements into the DOM. 사이트 간 스크립팅은 데이터를 올바르게 이스케이프하는 것이 그냥은 아닙니다. 때때로 공격자는 DOM에 새로운 요소를 삽입하지 않고도 나쁜 일을 할 수 있습니다. Mission Objective Inject a script to pop up an alert() in the context of the application. 스크립트를 삽입하여 애플리케이션 컨텍스트에서 alert()를 출력합니다...
문제 풀이 Mission Description Every bit of user-supplied data must be correctly escaped for the context of the page in which it will appear. This level shows why. 사용자 제공 데이터의 모든 비트는 표시될 페이지의 컨텍스트에 맞게 올바르게 이스케이프되어야 합니다. 이 수준은 이유를 보여줍니다. Mission Objective Inject a script to pop up a JavaScript alert() in the application. 스크립트를 삽입하여 애플리케이션에서 JavaScript의 alert를 출력하시오. Write Up 문제를 확인하니, Input에 3이 입력되어있다..
문제 풀이 Mission Description As you've seen in the previous level, some common JS functions are execution sinks which means that they will cause the browser to execute any scripts that appear in their input. Sometimes this fact is hidden by higher-level APIs which use one of these functions under the hood. The application on this level is using one such hidden sink. 이전 수준에서 보았듯이 일부 일반적인 JS 함수는 실행 싱..
문제풀이 Mission Description Web applications often keep user data in server-side and, increasingly, client-side databases and later display it to users. No matter where such user-controlled data comes from, it should be handled carefully. This level shows how easily XSS bugs can be introduced in complex apps. 웹 응용 프로그램은 사용자 데이터를 서버 단과 클라이언트 단 데이터베이스에 보관하고 나중에 사용자에게 출력합니다. 이러한 사용자 데이터의 위치가 어디있든 상관없이..
XSS game 소개 크로스사이트 스크립팅 공격에 대한 문제를 집중적으로 출제한 워게임 사이트이다. 아무래도 XSS은 공격 방법이 무긍무진한 대신 대처 방법도 무긍무진하다는 점이다. 문제 풀이 Mission Description This level demonstrates a common cause of cross-site scripting where user input is directly included in the page without proper escaping. Interact with the vulnerable application window below and find a way to make it execute JavaScript of your choosing. You can take ac..
문제 정보 드림이는 빼빼로데이를 맞아 티오리제과에서 빼빼로 구매를 위한 쿠폰을 받았습니다. 하지만 우리의 목적은 FLAG! 그런데 이런, FLAG는 너무 비싸 살 수가 없네요… 쿠폰을 여러 번 발급받고 싶었는데 이것도 불가능해요. 내부자 말에 의하면 사용된 쿠폰을 검사하는 로직이 취약하다는데, 드림이를 도와 FLAG를 구매하세요! 풀이 힌트 1. Coupon Expired Time 문제 풀이 더보기 더보기 문제를 들어가니, 세션을 발급 받는 페이지가 첫 페이지로 나왔다. 세션을 발급 받을 때 전달된 값을 확인해보니, JSON 형식으로 위와 같은 값을 전달하고 있었다. 값 중 특이하는 것을 보니, coupon_claimed 값이 있는데 이는 쿠폰 사용 여부를 나타는 값으로 보인다. 세션을 발급 받은 후의 ..
문제 정보 주어진 코드와 로그를 분석해 주어진 질문에 해당하는 답을 찾아보세요. 풀이 힌트 1. 추론 능력 문제 풀이 더보기 더보기 문제 페이지를 보니 5개의 질문이 있는 것으로 보인다. 첫번째 질문은 로그에서 admin의 pw를 탈취하려는 시도를 찾아야한다. 많은 로그들이 보인다. 대부분의 로그는 숨겨진 페이지를 찾으려는 시도가 일어난 것으로 보인다. 나는 404 상태코드가 너무 많아서 일단 200 상태코드만 살펴봤다. 조금 내려보면서 살펴보니, SQLi이 일어난 부분을 찾을 수 있었다. 여기서 빨간색 상자에 들어간 부분을 주의 깊게 봐야한다. if(1=1, (select 1 union select 2), 0)이라는 페이로드은 1=1이라서 True가 나오고 (select 1 union select 2)..
문제 정보 취약점을 찾아 플래그를 획득해보세요. 플래그는 /flag를 실행하면 얻을 수 있습니다. 해당 문제는 숙련된 웹해커를 위한 문제입니다. 풀이 힌트 1. Flask Debugger Exploit 2. Python Programming 문제 풀이 더보기 더보기 문제 페이지를 들어가니, 아무것도 없고 "Hello !"만 덜렁덜렁있었다. 아무런 정보가 없어서 혹시나 하는 맘에 robots.txt를 요청하니, flask가 debugger 모드로 실행되고 있었다. 내가 flask를 공부했을 때 flask의 debugger 모드에서 취약점이 있으니, 배포할 때 꼭 debugger 모드로 되어있는지 체크하라고 했던 것으로 기억난다. 구글에 "Flask Debugger PIN exploit"이라고 검색하니 무수..
Comment