먼저 문제 설명을 통해 본 문제는 데이터베이스에 저장된 admin 계정의 비밀번호에서 플래그를 획득할 수 있는 문제이다. 문제 사이트에 접속하면 위와 같은 화면을 볼 수 있다. 문제 접속하자마자 보이는 login 요청 파라미터를 URL 뒤에 붙여서 접속해보았다.접속하니 guest라는 문구가 출력되면서 guest로 로그인 됨을 알 수 있다. 혹시나 admin으로도 로그인이 가능한지 테스트해보기 위해 uid와 pw를 모두 admin으로 변경해보았더니 filter라는 문구가 나온다. 이를 통해 admin 계정은 필터링이 걸려있음을 알 수 있다. const express = require('express');const app = express();const mongoose = require('mongoose')..
Security/Web hacking
📌 CSS Injection공격자가 삽입한 값을 통해서 웹 페이지 내 로드된 CSS(스타일시트) 또는 Style 태그와 속성 등 페이지의 CSS를 통제하는 취약점이다. 대표적으로 피싱에 활용될 수 있으며 다른 XSS나 CSRF 취약점이 쉽게 트리거될 수 있도록 사용자를 속이는데 사용된다.| 참고자료 https://www.hahwul.com/cullinan/css-injection/ 먼저 문제 페이지를 접속하면 위와 같은 메인 화면을 볼 수 있다. 메인 페이지에서 언급되어 있는 것처럼 해당 페이지는 'Private Memo Service'라 그런지 Memo 카테고리를 눌렀을 때 로그인을 진행해야 함을 확인할 수 있다. 계정이 따로 없으니 등록을 먼저 해보자.우선 임의로 username과 password..
먼저 문제설명에 위와 같이 되어있는 것을 볼 수 있다.문제 설명에서도 볼 수 있듯이 '쿠폰을 검사하는 로직이 취약' 하다는 부분을 통해 쿠폰 검사 로직이 취약하니 그 부분을 공략하여 문제를 풀어볼 수 있을 것 같다 우선 문제 페이지에 접속하면 위와 같은 화면을 볼 수 있다. Acquire Session 버튼을 누르니 위 페이지로 전환이 되었고 해당 페이지에서 shop과 마이페이지를 볼 수 있었다먼저 Shop 버튼을 클릭하여 확인해보니 빼빼로와 플래그를 구매할 수 있는 화면이 나왔고 각각의 가격 또한 표시되어 있었다우선 어떻게 구매가 이루어지는지 확인해보기 위해 플래그 구매 버튼을 눌렀는데 위 창과 같이 돈이 없어 구매가 안되는 것을 확인할 수 있다. 다음으로 마이페이지로 돌아가니 쿠폰을 발급받고 발급받은..
📌 문제 해결 참고 사이트- https://keyme2003.tistory.com/entry/CSP-Bypass-Advanced- https://yun-2.tistory.com/entry/CSP-Bypass-Advanced 우선 문제 페이지에 접속하면 위와 같은 페이지를 확인할 수 있고 각 카테고리에 접속해보아도 별도로 확인할 수 있는 부분이 없으므로 문제에서 제공된 소스코드를 확인해보자. def check_xss(param, cookie={"name": "name", "value": "value"}): url = f"http://127.0.0.1:8000/vuln?param={urllib.parse.quote(param)}" return read_url(url, cookie)@app.aft..
문제 페이지에 접속하면 위와 같은 페이지를 확인할 수 있다. 메인 페이지의 각각의 카테고리를 하나씩 들어가면 각 페이지를 확인할 수 있고 3번째 카테고리인 'flag' 에는 param= 뒤에 스크립트를 입력할 수 있는 공간이 있다 아마 xss 필터링을 우회하는 구문을 작성할 수 있을 것으로 보인다. 해당 페이지 내에서는 더 해결할 수 있는 부분이 없는 것으로 보여 문제 해결을 위해 소스코드를 확인해보자소스코드를 확인해보면 위와 같이 필터링 되는 부분이 많고 또한, 해당 문자를 공백으로 바꾸는 것이 아닌 다른 문자로 바꿔주므로 중간에 삽입할 수도 없음을 알 수 있다. 소스코드에서 필터링 되어있는 부분과 같이 on 이벤트와 script 태그를 쓰지 않는 방법으로 우회하여 코드를 작성해야 한다. 우선 sc..
보호되어 있는 글입니다.