공부 10

[Fuzzing 101] Exercise 2

Fuzzing 101 - Exercise 2 목표 외부 어플리케이션을 이용해 라이브러리 퍼징해보기 afl-clang-lto을 사용해서 afl-clang-fast보다 더 빠르게, 더 좋은 결과를 얻기 GDB 대신 Eclipse IDE 사용해보기 Target libexif 0.6.14 어떤 프로그램인가? exif 정보들을 편하게 파싱할 수 있도록 도와주는 라이브러리 어떤 취약점인가? CVE-2009-3895 libexif 0.6.18의 libexif/exif-entry.c에 있는 exif_entry_fix 함수(일명 태그 수정 루틴)에서 발생하는 Heap Buffer overflow는 잘못된 EXIF 이미지를 통해 공격자가 서비스 거부를 일으키거나 가능하다면 RCE가 발생합니다. CVE-2012-2836 0..

공부/Pwnable 2024.04.02

[Fuzzing 101] Exercise 1

Fuzzing 101 - Exercise 1 목표 Instrumentation을 포함해서 컴파일 해보기 Fuzzer 사용 해보기 발생한 Crash 분석하기 분석 환경 Ubuntu 20.04.6 xpdf 3.02 Xpdf 다운로드 및 빌드 cd $HOME mkdir fuzzing_xpdf && cd fuzzing_xpdf/ # Download Xpdf 3.02 wget https://dl.xpdfreader.com/old/xpdf-3.02.tar.gz tar -xvzf xpdf-3.02.tar.gz # Build Xpdf cd xpdf-3.02 sudo apt update && sudo apt install -y build-essential gcc ./configure --prefix="$HOME/fuzz..

공부/Pwnable 2024.03.25

[Fuzzing 101] 사전 준비

Fuzzing 101 시작하기에 앞서서 찾아본 사전 지식들을 정리하였다. Fuzzing이란? 퍼즈 테스팅(Fuzz testing) 또는 퍼징(fuzzing)은 (종종 자동화 또는 반자동화된) 소프트웨어 테스트 기법으로서, 컴퓨터 프로그램에 유효한, 예상치 않은 또는 무작위 데이터를 입력하는 것 / Wikipedia Fuzzer AFL(American Fuzzy Lop) / AFL++ 링크 Fuzzing 101에서 주로 사용하는 Fuzzer libFuzzer 링크 Peach Fuzzer 링크 boofuzz 링크 radamsa 링크 Honggfuzz 링크 WinAFL 링크 AFL은 Windows 환경에서 동작하지 않는데 이걸 Windows에 끌고 온 버전. 나중에 한번 사용해볼 예정 Utility Sanit..

공부/Pwnable 2024.03.15

[Web] 화이트 해커들을 위한 웹 해킹의 기술 #6 - 크로스 사이트 스크립팅 공격

Cross Site Script(XSS) 입력 값에 대한 검증이 없어서 스크립트가 삽입되어 악성 스크립트가 실행되는 취약점. 서버를 공격하는 것이 아닌 악성 스크립트가 삽입된 페이지를 만들어서 클라이언트가 피해를 입는 것. 공격자가 삽입한 스크립트가 언제 실행되는 지에 따라 아래와 같이 나눌 수 있다. Reflected XSS Stored XSS Reflected XSS 공격자가 전송한 URL에 접속하게 되면, 정상적인 페이지이지만 때문에 브라우저의 모든 쿠키들이 전송된다. 그 중에서도 로그인이 되어있는 경우에는 세션 ID까지 같이 탈취되어 해당 세션 ID 값으로 서버에 접속하면 피해자인 척 할 수 있게 되는 것이다. 실습 만만한 DVWA 등장, 아무거나 넣고 테스트 해보자. 잘 출력해준다. 여기서 co..

공부/Web 2022.01.20

[Web] 화이트 해커들을 위한 웹 해킹의 기술 #5 - 커맨드 인젝션 공격

Command Injection 명령어를 삽입해 악의적인 행동을 유도하는 것 적절한 검증없이 사용자의 입력 값이 시스템의 명령어의 일부분으로 들어가게 된다면, 공격자는 임의의 시스템 명령어를 실행할 수 있게 된다. 시스템에서 특정 호스트로 ping을 보내는 명령어를 사용중인데, 호스트 입력에 적절한 검증이 없다면 ping 8.8.8.8;cat /etc/passwd 라는 명령을 보냈을 때 ping의 결과와 /etc/passwd 내용까지 보여진다. 실습 DVWA Command Injection에서 진행한다. 위와 같이 특정 IP에 ping 명령을 보내는 페이지이다. 소스코드를 까보면, 위와 같은데 shell_exec를 통해서 명령을 실행한다. 그러면 세미콜론으로 명령어를 한줄에 2개씩 실행시키면 원하는 명령..

공부/Web 2022.01.19

[Web] 화이트 해커들을 위한 웹 해킹의 기술 #4 - SQL 인젝션 공격

SQL Injection 진짜 유명하기도 하고 공격의 난이도도 낮은 편인 SQL 삽입 공격 말 그대로 SQL 구문에 악의적인 공격 구문을 삽입해 임의로 다른 데이터를 열람/삭제/추가 등을 할 수 있는 공격 웹 애플리케이션의 소스가 아래와 같을 때에 SQL Injection 취약점이 발생할 수 있다. $id = $_REQUEST['id']; $query = "SELECT name, email FROM users WHERE id = '$id'"; hxxp://localhost/index.php?id=parms 라는 URL에 id 파라미터를 변조하여 SQL Injection이 가능하다. params에 1' or '1 이라는 값을 넣으면 아래의 구문과 같다. SELECT name, email FROM users..

공부/Web 2022.01.16

pwntools 사용법 #1

pwntools는 파이썬으로 작성된 라이브러리 Pwnable 문제에서 쉘 코드 작성할 때 유용하게 쓰인다. 들어만 봤지 제대로 써본적이 없어서 이참에 한번 정리해보았다. 설치 방법은 간단하다. pip install pwntools 모듈을 import 하는 방법은 아래와 같다. from pwn import * pwntools는 바이너리를 실행하거나 nc를 사용하는 외부 접속환경 둘 다 사용이 가능하다. 접속 또는 실행 관련 p = remote("127.0.0.1", 8080) # 127.0.0.1:8080 으로 접속 p = process("/home/user/bin1") # /home/user/bin1 실행 p = ssh("root", "192.168.0.3", 22, "password") # ssh 접속..

공부/Pwnable 2022.01.15

[Web] 화이트 해커를 위한 웹 해킹의 기술 #1 - Burp Suite 설정

화이트 해커를 위한 웹 해킹의 기술으로 Web 해킹에 대해 공부해보자 책대로 잘 따라간다면, 칼리 리눅스와 실습용 VM 설치까지는 무난하게 진행되고.. 네트워크 설정만 좀 만져주니 금방금방 준비되었다. 다음으로 해야할건 웹 해킹의 필수품인 버프 스위트의 기능과 설정법인데, 기능은 직접 써보면서 정리하려고 한다. 중요한건 HTTPS 통신을 하는 경우에는 인증서 문제로 Intercept가 제대로 안되는 것이 문제다. 보면 인증서가 이상하다고 안되는걸 볼 수 있다. https://burp로 접속하면 인증서를 다운로드해서 설치할 수 있다. 파이어폭스 기준으로 [Preferences] - [Privacy & Security] 탭의 맨 아래로 내려보면 Certificates 항목이 있다. Import를 선택해서 사..

공부/Web 2022.01.15