Security 12

[Dreamhack] Flying Chars

개발자 모드 켜보면... 날라다니는 글자들의 원본 이미지를 확인할 수 있다. 코드에서 순서까지 알려주기 때문에, 저거 다 순서대로 일일이 메모해서 연결해봐도 되겠지만 좀 더 스마트한 방법을 쓰고 싶은데... 자바스크립트 코드를 수정해서 멈추게 해봤다. 여전히 알아보기가 힘들다.. 그럼 한 줄로 정렬을? ... 더 모르겠다. 그냥 일일이 순서 맞춰서 입력할란다..

Security/WebHacking 2026.07.09

[Dreamhack] pathtraversal

요지는 간단하다.문제에선 두 가지를 묻고 있다.burp suite 써봤냐?패킷 변조 해봤냐? 두 가지만 알고 있으면 쉽게 풀 수 있다. 웹사이트로 들어가보면, get user info 페이지가 있다.이미 문제에서 flag가 /api/flag에 있다고 말해줬기 때문에, 우리는 이 경로로 가보기만 하면 된다. 그런데 그냥 들어가면 권한이 없다고 들어갈 수 없다. 그러므로,우리는 저 get user info 페이지를 이용해서 해당 패킷에서 요청하는 내용을 flag가 있는 파일의 위치로 유도할 것이다. burp 로 잡아보면 밑에 userid=0 부분을 변조하면 될 수 있을 것 같다. 저 부분을 현재 위치 폴더를 이탈하고 /api/flag로 이동하도록 수정해주면, flag를 획득할 수 있다.

Security/WebHacking 2026.07.09

[Dreamhack] XSS Filtering Bypass

XSS 문제다. 문제에도 나와있듯이 filtering이 걸려져 있다고 한다.일단 코드를 먼저 뜯어보자... 이걸 보면 우리가 flag 페이지에서 뭔가를 실행하면, 관리자봇의 쿠키 안에 플래그를 넣어주는 것을 확인할 수 있다. 그리고, 이 관리자봇이 read_url 를 통해 check_xss에서 만들었던 vuln 페이지 url로 접속하도록 하고 있는 것을 알 수 있다.그러므로 이 봇의 쿠키를 탈취하는 것이 목적! 또한, 보면 script, on, javascript: 라는 단어를 필터링하도록 되어있다.그럼, 이 단어들을 작성할 때 단어 안에 끼워넣어서 필터링이 안 되도록 만들면 되지 않을까.메모 페이지에 들어가서 얻어온 쿠키를 작성하도록 써두었는데, 필터링 규칙에 맞춰서 수정해보면, 플래그가 잘 출력..

Security/WebHacking 2026.07.02

[Dreamhack] command-injection-1

커맨드 인젝션을 사용하는 문제다. VM을 발급하고 링크에 들어가보면, ping을 보내는 서비스가 구현되어 있다. ping을 날려보면 제대로 잘 간다. command injection의 원리에 따르면, 사이트가 입력값을 제대로 검증하지 않을 시 시스템은 뒤에 있는 명령어까지 다 실행해버리게 된다. 그럼 일단 서버 안에 무슨 파일이 있는지부터 털어보자. 요청한 형식과 일치시키라는 말이 나오는데, 이거는 html안에서 입력값이 설정되어있는 것이다. 개발자 도구를 열어보면 역시나 패턴을 적용시키는 부분이 있다.이 부분을 지워버리면 잘 입력이 된다. 보아하니 flag.py가 보인다. 저걸 열면 될 것 같다. 그렇게 flag.py도 실행시켜서 안에 있는 flag 값을 얻어내었다!사실 문제에 어떤 파일에 fl..

Security/WebHacking 2026.07.02

Fuzzing 기초 1

1. 퍼징 (Fuzzing) 이란 - 비정상적인 데이터를 계속 던져서 프로그램이 언제 무너지는지 관찰하는 자동화 테스트 - 소프트웨어에 무작위이거나 의도적으로 Invalid/Unexpected data를 지속적으로 주입하는 테스팅 기법 - 이렇게 해서 약간 예외 사항이나 알고리즘으로 치면 반례 같은 걸 찾아내는 과정이라고 보면 됨! - 반례 찾아내는 걸 사람 머리도 물론 쓰지만 기계를 써서 (엣지 케이스라는 용어가 있다) 더 빨리 찾아낼 수 있는 게 장점... - 엣지 케이스 :: 개발자 측면에선 최소/최대 경계값을 넣어서 테스트할 때 정상 동작하는지 확인하는 거! +) 코너 케이스는 뭐냐 -> 엣지 케이스는 만족하는데 외부 변수나 특정 조건에서 문제가 발생하는 경우 ... 약간 집..

Security 2026.05.18

[Dreamhack] Return Address Overwrite

문제는 다음과 같다. 서버를 만들어보고 들어가면이렇게 뜨는데 도무지 뭔지 모르겠으니 코드를 보자.코드 구조를 보면, buf 배열의 크기가 고작 0x28 정도인데, %s를 사용하면 엔터나 띄어쓰기를 만나기 전까지 계속 입력받으므로 버퍼오버플로가 발생할 수 있다!또한 위에 컴파일 옵션에 스택 카나리 보호 기법이 해제되어 있고 바이너리의 메모리 주소가 고정되어있는 것을 알 수 있다. 스택 구조는 아마 아래와 같을 것이다.buf (0x28)SFP(8 bytes)RET (8 bytes)입력 데이터 저장이전 함수의 스택 베이스 포인터함수 종료 후 돌아갈 주소우리의 목표는 /bin/sh 를 실행하는 get_shell() 함수다! 저길 노리면 쉘을 얻을 수가 있다.즉, 버퍼오버플로로 RET 영역을 get_shell()..

Security/Pwnable 2026.03.30

[Dreamhack] bof

제목부터 버퍼오버플로우문제라고 광고 중이다.실행해보면 웬 고양이가 뮤뮤거리며 나를 반겨준다. (귀엽다) 파일에 따로 C파일이 없어서 마찬가지로 IDA로 디컴파일해서 보자.보면 scanf에서 최대로 144바이트까지의 값을 받고 있는 것을 확인할 수 있다.근데 v4 배열은 128바이트 크기를 가지고 있다! 거기에 v4를 입력받은 다음 바로 v5 변수가 사용되므로, v4 값을 버퍼오버플로우로 넘치게 만들면 v5 변수의 내용을 내가 원하는 대로 덮어쓸 수 있겠다. 또한 flag는 /home/bof/flag 에 있다고 했으므로 v5 영역에 들어갈 값이 바로 저 위치 문자열이 될 것이다.이를 바탕으로 익스플로잇 코드를 작성해보자.아까 전에 쓴 코드보다 더 쉽다. 살짝만 수정해서 오버플로될 곳에 주소가 들어가도록 만..

Security/Pwnable 2026.03.30

[Dreamhack] Basic_exploitation_001

문제는 다음과 같다. 우선 파일부터 다운받아보자. 압축 파일 내의 C 파일을 보면 저렇게 생겼다. 저중에서도 cat flag 명령을 내는 read_flag() 함수가 중요할 것 같다. 이걸 실행시키는 게 목표일 것 같은데, 어디에도 read_flag()를 실행하는 명령은 없다.main() 함수를 보면 gets 함수가 보인다. 얘는 입력값의 길이를 검증하지 않아서 128바이트보다 큰 데이터를 입력하면 버퍼오버플로가 일어나는 취약점이 있다고 했었다.즉, gets 함수에 버퍼오버플로우를 이용하면 read_flag에 닿을 수 있지 않을까?! 32비트인 x86 환경에서 main 함수의 스택 프레임 구조는, buf (128 bytes)SFP (4 bytes)RET (4 bytes)gets() 입력이 저장되는 곳이전..

Security/Pwnable 2026.03.30

[최신 보안 사례 조사]

[1] 리드코프 자회사 '앤알캐피탈대부' 대규모 개인신용정보 해킹 (2026.03.)1. 사건 개요2026년 3월 23일, 국내 1위 대부업체 리드코프의 자회사인 앤알캐피탈대부에서 심각한 내부 시스템 해킹 사고 발생단순한 이름과 연락처를 넘어 주민등록번호, 신용점수, 대출 계좌 및 승인 금액 등 치명적인 금융 민감 정보가 대량 유출됨사안의 심각성으로 인해 금융감독원이 즉각 현장 검사에 착수함2. 공격 방식 및 근본 원인 (Root Cause)정확한 침투 경로는 당국의 수사가 진행 중이나, 금융권 사고의 전형적인 경계망 방어(Perimeter Defense) 우회 및 내부망 수평 이동(Lateral Movement)으로 분석됨공격자는 임직원의 탈취된 VPN 계정, 피싱(Phishing), 혹은 외부로 노출..

Security 2026.03.23

[Dreamhack] baby-bof

문제는 다음과 같은데, 제목에서처럼 알 수 있듯이 버퍼오버플로우를 일으켜 코드를 실행시키는 문제일 것임을 예상할 수 있다.아니나다를까, C코드를 보면,친절하게도 38줄에 win() 함수는 main 함수가 실행시키고 있지 않다고 말까지 해준다.win() 함수를 살펴보면, 이놈이 바로 flag를 출력시켜주는 함수다! 그러니까 얘를 어떻게든 실행시켜야 한다.즉, 버퍼오버플로우를 이용해보자! win 함수 이름을 써보면 이상한 숫자와 영어들이 막 나온다. 버퍼오버플로를 일으키려면 주소를 찾아야 되겠다. ida freeware로 실행파일을 넣어서 텍스트 보기를 해보면.. win 함수의 주소를 알 수 있다. 저기 보면 40125b라고 나와 있다.그럼 이 주소를 hex value로 넣으면 되겠다.name을 입력하면 ..

Security/Pwnable 2026.03.16