본문 바로가기

webhacking6

[CodeGate 2025] 예선 Web문제 Write-up 문제명 : masquerade 해당 문제는 서버의 소스코드를 모두 준 화이트박스 환경에서 풀기 때문에 로컬에서 이것 저것 디버깅을 해볼 수 있다.우선 화이트박스 환경에서 빠르게 소스코드를 읽고 의도를 파악하는 것이 중요하다고 생각한다. 일단 문제에 접속 해보면 이런 페이지가 뜨고 회원가입을 통해 uuid와 비밀번호를 지정 할 수 있다. 그럼 이렇게 기본적으로 자신의 uuid와 역할이 MEMBER로 되어 있는 것을 볼 수 있다.해당 부분을 소스코드로 보면 다음과 같다. const { generateToken } = require("../utils/jwt");const { v4: uuidv4 } = require("uuid");const users = new Map();const role_list = ["A.. 2025. 3. 31.
[드림핵] 익스텐션 개발 - 다운로드 파일명 지정 오늘도 잉여롭게 워게임 풀던 중.. 드림핵의 원초적인 문제를 발견했다. 나는 폴더 정리를 정말 못하는데, 드림핵은 문제를 다운로드 받으면 꼭 이렇게 무슨 문제인지 모를 파일들이 계속 생겨난다. 그래서 드는 생각이 드림핵 문제를 다운로드 하면 자동으로 다운로드 폴더를 지정해 주고 카테고리 별로 폴더를 만든다음에 문제 명과 난이도를 파일명으로 쓰는 크롬 익스텐션을 만들면 편할거 같아서 만들어봤다. 일단 그림판을 켜서 그럴듯한 로고를 하나 만들었다.{  "manifest_version": 3,  "name": "Dreamhack 다운로드 파일명 지정",  "version": "1.0",  "permissions": ["downloads", "scripting", "tabs", "storage"],  "host.. 2025. 3. 26.
blind sql injection 실습 환경 구축 방법 + 개념 설명 http://cifrar.cju.ac.kr:25578완성된 문제 사이트 http://cifrar.cju.ac.kr:25578 cifrar.cju.ac.kr:25578 개요xss에 이어서 sqli도 강의를 해줘야 해서 직접 문제 환경을 구축했다. 이것은 같은 테이블에 원하는 정보가 없을 때, 즉 쿼리의 성공과 실패 여부만을 알 수 있는 상태에서 시도할 수 있는 blind sqli를 실습할 수 있는 환경이다.  이 서버에는 지금 다른 서비스들의 db도 쓰고 있기 때문에 도커를 통해 내부망에서 쓰는 데이터베이스 전용 네트워크 공간을 할당해 주었다. 도커 컴포즈에 한번에 넣고 하면 된다고 했는데 잘 안돼서 정석대로 그냥 db 컨테이너 하나 만들고 네트워크 만들고 문제 파일 컨테이너 만들고 네트워크에 가입시켰다... 2025. 1. 20.
XSS 실습 환경 구축 방법 정리(docker + selenium) http://cifrar.cju.ac.kr:25577완성된 문제 사이트 우암 콜센터 cifrar.cju.ac.kr:25577개요이걸 왜 만들게 됐냐면 동아리에서 웹 해킹 강의를 해줘야 해서 충북 고교 해킹 캠프도 있었고 이때까지 만든 내용을 정리하고자 새롭게 만들어보았다.목표는 셀레니움을 써서 직접 어드민 봇을 내부적으로 구현하는 것, 그리고 가장 간단한 XSS 실습 템플릿을 만들어서 계속 필터링을 강화하는 식으로 심화 문제를 양산하기 위해서이다.  우선 전체적인 프로젝트 구조는 다음과 같다. 이게 윈도우에서는 그냥 만들면 돼서 별 문제가 없었다. 문제는 이걸 리눅스 Ubuntu Server에서 돌려야 한다는 골 때리는 상황이다.워게임은 24시간 접속 가능해야 하기 때문에.. 집에 있는 데스크톱으로 24.. 2025. 1. 20.
Webhacking.kr old-20번 캡차를 시간 내에 빠르게 입력해야 하는 문제이다. 그냥 js로 fetch를 짜서 보내면 끝이다. const captchaValue = document.querySelector('input[name="captcha_"]').value;console.log('CAPTCHA:', captchaValue);const formData = new URLSearchParams();formData.append('id', '1111'); formData.append('cmt', '1111');formData.append('captcha', captchaValue);fetch('https://webhacking.kr/challenge/code-4/', { method: 'POST', headers: { 'Cont.. 2025. 1. 7.
Webhacking.kr old-36번 들어가보면 index.php를 vi 로 편집하다가 정전으로 소스코드가 날아갔다고 한다. vi 편집기는 기본적으로 swp 라는 복구 파일을 가지고 있기 때문에 그걸로 복구하면 될 듯 하다. 이렇게 .index.php.swp 파일을 접근 해보면 다운로드가 되는 것을 볼 수 있다.플래그가 있다. 2025. 1. 2.