Tag Archive

#mysql

이 태그가 포함된 글을 최신순으로 모아봤어요.

6
posts
BLOG2026-08-10
[🥈 Silver 1] 로그인에 성공하는 순간 답이 바뀐다 — DreamHack Login Page 풀이
blog

[🥈 Silver 1] 로그인에 성공하는 순간 답이 바뀐다 — DreamHack Login Page 풀이

부등호도 시간지연도 블랙리스트에 막힌 블라인드 SQL 인젝션. 게다가 쿼리가 행을 반환하면 애플리케이션이 admin 비밀번호를 새로 만들어 버려서, 흔한 "참이면 로그인된다" 오라클을 쓰는 순간 답이 바뀐다. 조건이 참일 때만 MySQL 을 EXP(999) 로 죽여 HTTP 500 을 얻고, 비교는 GREATEST 항등식으로 대신해 32자 비밀번호를 225질의에 복원했다.
#dreamhack#ctf#web+5
 
BLOG2026-07-08
[🥈 Silver 4] SQL 컬럼 트렁케이션으로 admin 계정 탈취 — DreamHack tmitter 풀이
blog

[🥈 Silver 4] SQL 컬럼 트렁케이션으로 admin 계정 탈취 — DreamHack tmitter 풀이

트위터 클론 tmitter 는 admin 으로 로그인해야 플래그가 나온다. 회원가입 중복 체크는 '정확 일치'만 막지만, id 컬럼 varchar(32) 를 넘는 "admin"+공백+"1" 을 넣으면 INSERT 때 뒤가 잘려 "admin"+공백으로 저장된다. MySQL 은 PADSPACE 콜레이션이라 끝 공백을 무시해 비교하므로 그 계정이 곧 admin 이 되어 로그인·플래그 획득. 로컬 MariaDB 로 메커니즘을 재현하고, 라이브에서 컬럼 길이까지 프로빙해 확정했다.
#dreamhack#ctf#web+6
 
BLOG2026-07-06
[🥉 Bronze 2] 대문자 GUEST로 guest 필터 피하기 — DreamHack [wargame.kr] login filtering 풀이
blog

[🥉 Bronze 2] 대문자 GUEST로 guest 필터 피하기 — DreamHack [wargame.kr] login filtering 풀이

guest/blueh4g 계정은 PHP 문자열 비교로 블랙리스트에 걸려 있다. mysqli_real_escape_string이 따옴표를 다 막아 SQL Injection은 안 되지만, MySQL 기본 콜레이션은 문자열을 대소문자 구분 없이 비교한다. id=GUEST(대문자)로 보내면 DB 조회는 guest 행 그대로 매치하면서, PHP의 대소문자 구분 비교는 통과해 블랙리스트를 피해간다.
#dreamhack#ctf#web+5