Hacking
[CTF] 2021 Layer7 CTF͏͏ WriteUp
2021.11.20(토) 09:00:00 ~ 2021.11.20(토) 23:59:59 User: 9ucc1 (Point: 3333) Place: 5th (고등부: 4th) 다른 분야 공부가 시급하네요. [WEB] handmade - 100 📌 Summary 파일 읽어오는 서비스를 이용해서 flag 파일을 읽으면 되는 간단한 문제입니다. 📌 Analysis 페이지 디자인은 아래와 같습니다. 소스코드 구조는 아래와 같습니다. 제공된 소스코드 중, app.py에 아래와 같은 함수가 존재합니다. def make_response(req_data): try: method = req_data['method'] req_uri = req_data['uri'].path qstring = req_data['uri'].que..
[WEB] DOM Clobbering XSS (DOM Based XSS)
이 글에선 DOM Clobbering이 무엇인지에 대해 소개하고, DOM 취약점을 Clobbering 기술을 이용하여 어떻게 exploit 해야하는지, 방어는 어떠한 방식으로 이루어지는지에 대해 설명할 것이다. 0. Basic 1) DOM Clobbering XSS vs DOM Based XSS 처음 DOM Clobbering XSS를 접했을 때, DOM Based XSS랑 다른건가? 라는 생각이 들었다. XSS의 종류에 대해 간단하게 짚고 넘어가보자. 위 그림을 보면 알 수 있듯이, XSS에는 2가지 종류 Stored(Persistent) XSS, Reflected XSS로 구분이 가능하다. DOM Based XSS는 Stored 형태로 나타날 수도 있고, Reflected 형태로 나타날 수도 있다. ..
[WEB] JWT(JSON Web Token) Attack
0. Basic 1) JWT란? JWT란, JSON Web Token의 약자로 JSON 문서를 Base64로 인코딩 후 서명하는 방식을 말한다. 대부분 웹사이트 사용자 인증에 사용되고, 쿠키에 주로 포함되어 쓰인다. JWT는 사용자의 정보나 세션 만료 시간 등을 JSON 문서 형식(Dictionary)으로 나타낸다. 2) JWT 구성 JWT의 형태는 다음과 같다. 세 부분으로 나뉘어져 있고, 각각은 .(dot) 으로 구분된다. Frame) Header . Payload . Signature Header alg: 어떤 알고리즘을 이용하여 서명(Sign)을 할 것인가? typ: 미디어타입. 옵션값이며 JWT일 경우 "JWT" Base64({ "alg": "HS256", "typ": "JWT" }) Paylo..
[CTF] 제 2회 JBU-CTF WriteUp - WEB 문제
팀명 : Cbar=True, 닉네임 : w3bh4ck3r 순위 : 4위 36시간동안 열심히 풀었지만, 플래그 키퍼로 인해 4위를 하게되었다. [WEB] Fight_The_Aliens[100] : scpCTF{E4r7hi4n_N3v3r_L053} 아래 사진과 같이 마우스 커서를 외계인이 따라다니는 문제이다. 외계인 사진때문에 달이 클릭되지 않는다. 외계인 사진을 찾아서 지워버렸다. [WEB] Command Injection[100] : scpCTF{Y0u_fol1ow3d_w3ll} 문제사이트에 들어가 입력하라는 대로 입력해보았다. 친절하게 설명해주신다. 소스코드까지 보여주신다. ; ls -al * 입력해서 현재 위치의 모든 폴더를 열어보았다. 보아하니 ./a/flag.txt 파일이 있다. cat 명령여를 ..
[CTF] Layer7 & Trust CTF WriteUp
Layer7 & Trust CTF 더보기 순위: 8위 Misc - Sanity Check [50] nc 명령어를 통해 주어진 서버로 접속해보았다. FLAG : L7TR{this_is_nc(wikipedia.org/wiki/Netcat)} Web - Unexploitable [50] 문제에 제시된 URL로 접속해보았다. 해당 URL에서 저 문구 하나밖에 발견할 수가 없어서 당황 좀 했다. app.py를 열어보니 from flask import Flask app = Flask(__name__) @app.route('/') def main(): return 'sorry this challenge is unexploitable zzlol' if __name__ == '__main__': app.run(debug..