분류 전체보기 68

The Ultimate Double-Clickjacking PoC

요약주제: 다양한 브라우저 트릭을 결합해 “더블 클릭재킹(Double-Clickjacking)” 공격을 완벽한 PoC로 구현핵심 아이디어비활성 팝업창 위치 제어 : window.movTo로 눈에 보이지 않는 팝업을 마우스 커서 바로 아래로 옮김onclick = () => { onclick = null; w = window.open("/popup.html", "", "width=500,height=300"); w.onload = () => { navbarHeight = w.outerHeight - w.innerHeight; button = w.document.querySelector("button").getBoundingClientRect(); onmousemove = (e) => {..

collision

0x01 문제 설명scp -P 2222 col@pwnable.kr:[대상 파일] [받을 위치]명령을 통해 로컬로 col 과 col.c 파일을 받아왔다.또한, 로컬에서 pwntools 를 사용해 접속하는 방법은 아래와 같다.from pwn import *argv = [b"AAAA"]s = ssh("col", "pwnable.kr", port=2222, password="guest")p = s.process(["/home/col/col"] + argv)0x02 풀이 과정#include #include unsigned long hashcode = 0x21DD09EC;unsigned long check_password(const char* p){ int* ip = (int*)p; int i; i..

[Web Hacking] Calculator v2

0x01 문제 설명이전 Calculator 문제와 이어지는 버전의 문제다. 설명에 따르면 취약점을 방어하는 코드를 추가 하였다는 것을 알 수 있다.0x02 풀이 과정_ , . , mro 등 과 같은 문자들이 추가로 필터링 되고있다. 이전 문제와 같이 fileloader를 이용하여 /flag 를 읽어올 예정이다. SSTI 공격을 수행하는 과정은 Calculator 에서 다뤘기에, 이번에 사용한 필터링 우회에 관해서만 이야기해 볼 것이다.. 필터링 우회A.B -> A|attr('B')특정 문자 필터링 우회__class__data=request.form.get('a')&a=__class__위와같은 방식으로 ''.class.mro[1].subclasses()[99].get_data('/flag') 를 우회한 결..

[Web Hacking] Real PHP LFI

0x01 문제 설명0x02 풀이 과정첨부된 소스코드를 보면, index.php 에서 $_SERVER[’QUERY_STRING’] 을 통해 쿼리 정보를 받아오고, config.php 에서 문자 필터링을 진행한다. 마지막에는 include($_SESSION['include_path']) 로 nav.php 를 불러온다. 취약점은 index.php 에서 발생한다.foreach($arr as $key=>$value){ $$key = fuck_path_change_or_check($value);}$$ 는 php의 가변변수 선언 시 사용하는 구문이다. 여기서 $_SESSION[’include_path’] 을 덮는다면 원하는 로컬 파일을 불러올 수 있다.GET 파라미터를 통해 공격을 수행하였다. GET 파라미터는..

[Web Hacking] Smuggling

0x01 문제 설명0x02 풀이 과정A) 초기 분석python flask 애플리케이션이다. 첨부된 코드 중 docker-compose.yml 파일 속엔 haproxy 2.2.16 버전을 사용한다고 명시되어있다. 또한 haproxy.cfg 파일에는 front-end 서버 선에서 특정 경로에 대한 접근을 차단 하며 http 통신을 재사용(reuse) 한다.frontend web bind *:8000 http-request deny if { path_beg /flag } http-request deny if { path_beg // } default_backend websrvsbackend websrvs http-reuse always server srv1 flask:5..

[Web Hacking] Calculator

0x01 문제 설명0x02 풀이 과정간단한 계산기 프로그램이다. 여러 값을 넣고 테스트 한 결과는 아래와 같다.1+2 → 33*4 → 12‘7’*7 → 7777777config → SSTI (Server Side Template Injection) 취약점이 있는것으로 확인되며, {{ }} ${ } 와 같은 구문 없이 바로 적용됨을 알 수 있다. 아래와 코드 같이 중첩괄호를 사용한 환경을 예상해본다.from flask import Flask, request, render_template_stringapp = Flask(__name__)@app.route('/', methods=['GET'])def index(): expression = request.args.get('expression', '') ..

Advanced Request Smuggling

더 높은 수준의 HTTP request smuggling 기술은 물론 존재한다. HTTP/2는 request smuggling의 새로운 영역을 전개하며 기존의 안전한 환경을 위협하고있다.01. HTTP/2 requeste smugglingRequest smuggling은 근본적으로 서버들의 요청 길이 판단의 불일치로 일어난다. 그리고 HTTP/2는 오랜기간 강력한 메커니즘을 바탕으로 이에 끄떡없다고 여겨졌다. HTTP/2는 요청을 프레임 단위로 나누어 전달하고 이 프레임 길이의 총합이 요청의 길이가 된다. 이론상 이러한 메커니즘은 공격자로 하여금 애매모호한 요청 길이를 보내는 시도조차 하지 못하게 한다. 하지만 현실은 흔하지는 않지만 HTTP/2 downgrading 이라는 위험이 기다리고 있다는 것이다..

HTTP Request Smuggling Exploit

HTTP Request Smuggling(HRS)은 다양한 방식의 공격이 가능하다. 아래 글은 기본 개념에 관한 내용이다.2024.12.08 - [web hacking 🖥/techniques ❌ principles] - HTTP Request Smuggling 취약점 HTTP Request Smuggling 취약점01. HTTP Request Smuggling 취약점?HTTP Request Smuggling(HRS) 취약점은 2005년 발견되었다. Front-end 서버와 Back-end 서버 간의 불일치를 이용해 추가적인 Request를 삽입할 수 있다.Front-end : Content-Length 헤더를 우kortsec1n4mationm.tistory.com 01. Front-end Securit..

HTTP Request Smuggling 취약점

01. HTTP Request Smuggling 취약점?HTTP Request Smuggling(HRS) 취약점은 2005년 발견되었다. Front-end 서버와 Back-end 서버 간의 불일치를 이용해 추가적인 Request를 삽입할 수 있다.Front-end : Content-Length 헤더를 우선시Back-end : Transfer-Encoding 헤더를 우선시위와같은 예시 환경에서 야기될 수 있는 보안문제는 권한 상승(Privilege Escalation), 세션 하이재킹(Session Hijacking), 민감한 정보 노출(Critical Info Leak) 등이 있다.02. HRS의 배경, HTTP Request 헤더HTTP/1 요청의 끝을 판단하는 방식에는 Content-Length 헤더..