-
DOM based XSS
개요 DOM based XSS는 서버가 정상 데이터를 반환하더라도, 브라우저 내 자바스크립트가 사용자 입력 값을 검증 없이 DOM에 반영하면서 발생하는 취약점이다. 이로 인해 페이지 구성 과정에서 악성 스크립트가 실행되어 클라이언트의 브라우에서 공격이 이루어진다. 취약점 발생 지점 웹 브라우저에서 자바스크립트가 사용자 입력 값을 검증 없이 동적으로 DOM을 구성할 때 발생한다. 공격 동작 순서 💡DOM을 사용하는 이유는? DOM을…
-
XSS(Cross-Site Scripting)
XSS란 무엇인가? 동적 처리가 이루어지는 웹 애플리케이션에 대해 악의적인 스크립트를 삽입하여 사용자에게 비정상적인 행위를 강제적으로 유도하는 공격이다. 공격 유형 왜 자바스크립트를 사용할까? 클라이언트를 대상으로 하는 공격이다. 웹 브라우저는 기본적으로 자바스크립트를 실행할 수 있는 환경을 제공하며, 자바스크립트는 웹 페이지와 사용자 상호작용을 제어한다. 그러므로 공격자가 악성 스크립트를 삽입하면 비정상행위를 발생시킬 수 있다. 공격 기법의 종류
-
LEVEL 4: Flask-Dev
https://dreamhack.io/wargame/challenges/74 환경 접근 풀이 플래그 획득 과정 /console 페이지에 접속하면 PIN 번호를 요구한다. 나의 목표는 알맞은 PIN 번호를 생성하고, 서버에서 Python 코드를 실행하는 것이다. 해당 서버의 /usr/local/lib/python3.8/site-packages/werkzeug/debug/__init__.py을 확인한다. 웹 브라우저에서 경로를 조작하더라도 경로 정규화 후에 서버에 요청을 전송하므로, Burp Suite를 통해 요청을 전송한다. [Response]의 username, modname, getattr 두 개, str(uuid.getnode()), get_machine_id()는 PIN 코드를 생성하기 위해…
-
LEVEL 2: Javascript_sourcemap
https://dreamhack.io/wargame/challenges/310 환경 접근 풀이 플래그 획득 과정 참고 자료 https://firefox-source-docs.mozilla.org/devtools-user/debugger/how_to/use_a_source_map/index.html
-
LEVEL 2: Dream Gallery
https://dreamhack.io/wargame/challenges/552 환경 접근 풀이 플래그 획득 과정 참고 자료 https://www.w3schools.com/tags/ref_urlencode.ASP
-
LEVEL 2: Addition calculator
https://dreamhack.io/wargame/challenges/1021 환경 접근 풀이 PoC 코드
-
LEVEL 2: easy-login
https://dreamhack.io/wargame/challenges/1213 환경 접근 풀이 PoC 코드 참고 자료 https://www.php.net/manual/en/types.comparisons.phphttps://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/php-tricks-esp/index.html?highlight=php%20strcmp#strcmpstrcasecmp
-
Lab: Exploiting NoSQL operator injection to extract unknown fields
https://portswigger.net/web-security/nosql-injection/lab-nosql-injection-extract-unknown-fields NoSQL Injection을 통해 필드를 추출해내는 문제다. 문제를 해결하려면 “carlos” 계정으로 로그인하면 된다. 그러므로 로그인 페이지를 확인한다. 우선 로그인 시도를 통해 패킷을 캡처한다. 패스워드 “asdf”는 틀린 비밀번호라 생각된다. 즉, 거짓에 대한 응답으로 “Invalid username or password”을 출력한다. 그렇다면 $ne 연산자를 사용해 참으로 만들어 로그인을 시도한다. 그러나 계정이 잠겨있다는 메시지와 함께 로그인을 할 수 없다. 참에…
-
Lab: Exploiting NoSQL injection to extract data
https://portswigger.net/web-security/nosql-injection/lab-nosql-injection-extract-data NoSQL Injection으로 관리자 계정의 비밀번호를 추출해내는 문제다. 우선 로그인 페이지에서 기본으로 주어진 계정인 wiener/peter로 로그인을 시도한다. 그리고 생성된 요청들을 Burp Suite에서 확인을 해보면, JSON 타입으로 계정을 조회하는 패킷을 볼 수 있다. 로그인 후의 화면에서 응답으로 받은 아이디, 이메일, 역할을 출력하기 위해 저런 정보들을 응답 해준 듯하다. 이제 해당 요청에서 취약점이 발생하는지 테스트부터 하겠다. 나의…
-
Dreamhack CTF Season 7 Round #15: Admin Feature
위 코드를 보고 /user/register에서 계정을 생성할 수 있다는 것을 알 수 있다. 그런데 POST 방식을 사용하므로 curl을 이용해 계정을 생성해보도록 하겠다. 위와 같이 dolephine/dolephine123 계정을 생성하기 위해 요청을 보내봤다. 그리고 성공적으로 계정이 생성됐다는 응답을 받았다. 이어서 로그인 기능까지 테스트를 해본다. 그리고 소스 코드를 보다가 의아했던 부분을 한 번 시도를 해봤다. 이미 API-Key를 sql 파일로 다…