전체 글 67

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 헤더..

컴파일러 작동 원리

소개컴파일러란 무엇일까? 프로그래밍을 해 본 사람이라면 여러 가지 언어로 코드를 작성한 후, run 버튼을 누르거나 혹은 직접 명령어를 입력하여 실행시켜본 경험이 있을 것이다. 텍스트 파일 형태의 소스 파일(source file)이 실행 파일 형태로 변화하는 과정이 궁금했던 사람 또한 많을 것이다(내가 그렇다). 그리하여 그 과정 中 컴파일러가 하는 일에 대해 알아볼 것이다.다시 본 질문으로 들어와서, 컴파일러란 무엇일까? 컴파일러는 단순히 번역기 이자 텍스트 처리 프로그램(text processor)라고 생각해도 무관하다. 앞서 스포했듯 텍스트 파일 형태의 소스 파일(source file)을 CPU가 직접 실행할 수 있는 실행 파일 형태로 번역해 주는 역할을 한다. 위 그림1 을 보면 이해가 쉬울 것이..