본문 바로가기

분류 전체보기198

45. 시스템 침투 / 포트포워딩 1. 시스템에 침투하는 1차 지점 파일 업로드 취약점으로 인한 "웹쉘" 업로드 서버 설정 미흡 사례 - Tomcat Manager, WebDAV 취약점 웹 어플리케이션 취약점 사례 - SQLi, PHP Injection, Aapche Struts.. 윈도우 어플리케이션 취약점 - BoF 취약점, RCE 취약점 개인 PC 대상으로 악성코드 배포 2. 포트포워딩을 이용한 2차 침투 공격자 PC → 서버 1차 침투 (웹 서버) → 내부 서버(DBMS, 로그 서버 등) → 개인 PC 터널링 기법 (SSH 터널링, HTTP 터널링) 포트포워딩 기법 공격자 A가 희생자 B 웹서버의 파일 업로드 취약점을 통해서 백도어를 업로드해 Reverse connection을 연결한 뒤, 내부서버 C로 가는 포트를 연결 시키는 .. 2023. 1. 24.
44. 파일 업로드 취약점 대응 (시큐어코딩, 보안설정, 웹쉘차단 솔루션) 1. 시큐어 코딩 - 소스코드 레벨 대응 첨부 파일 확장자 검증은 서버 사이드 스크립트에서 검증해야 함 첨부파일 확장자 검증은 "블랙리스트 차단" → "화이트 리스트 허용"으로 해야 함 // 블랙리스트 function file_upload_check_1($file, $file_extentions = array("asp", "aspx". "dll", "exe", "jsp", "php"), $directory = "images") //화이트리스트 function file_upload_check_2($file, $file_extensions = array("jpeg", "jpg", "png", "gif"), $directory = "images") 2023. 1. 23.
43. 파일 업로드 취약점 조건 및 우회 1. 파일 업로드 취약점 조건 업로드할 확장자가 허용되어야 함 업로드한 파일의 절대 경로를 알 수 있다 업로드한 파일의 실행권한이 있다 2. 파일 업로드 취약점 우회 자바스크립트 우회 (Burp를 통해 자바스크립트 스크리닝 구문을 삭제하여 우회) 블랙리스트 방식 우회 (서버사이드 스크립트 차단 시) 각 환경 별 사용할 수 있는 스크립트 PHP 환경 php3, php5, phtml jsp 환경 jsp, JSP, JsP, js%70 asp 환경(IIS 환경) sp, aspx, asa, cer, asx 화이트리스트 방식 우회 (블랙리스트와 반대로 허용할 확장자를 지정) 우회하기 가장 힘듦 → IIS 취약점, apach 취약점을 이용 Ex) jpg, png, doc, pdf 만을 허용한다고 가정하면 shell... 2023. 1. 23.
42. 파일업로드 취약점 이해와 공격 목적 1. 파일 업로드 취약점 공격 웹 서비스 첨부 파일, 환경 설정 미흡을 이용하여 악의적인 스크립트가 포함된 파일을 업로드한 후에 웹 서버에 침투하는 공격 공격자는 서버 사이드 스크립트(PHP, JSP, .NET 등)를 이용하여 웹쉘(Webshell)을 제작 웹쉘(Webshell)은 원격에서 웹 서버를 제어하기 위한 목적으로 만들어졌으나, 지금은 웹쉘 = 악성코드라고 분류하여 안티 바이러스에서 탐지함 게시판 첨부 파일, 이력서 첨부 파일, 이미지 첨부 파일, 웹 채팅방 파일 공유 기능 등에서 발생 웹쉘을 직접 만들어 사용 할 수도 있으나, 깃허브에서 쉽게 구할 수 있음 2. 파일 업로드 취약점 공격 목적 데이터베이스에 직접 공격을 할 수 없기 때문에, 웹 서버를 침투한 후 소스코드 내 데이터베이스 연결 정.. 2023. 1. 15.
41. Error based SQL Injection 실습 Beebox에 설치한 gmshop 쇼핑몰 웹페이지 1. Injection Vector를 찾는다. 자유 게시판 게시글 Search에서 SQL Injection 여부 확인 ' ' or 1=1# ' or 1=2# 싱글 쿼터, 참 거짓 조건 입력을 통해 웹 반응으로 injection 가능 vector 확인 에러 메세지를 보여주며, 참 거짓 조건에 따른 반응 페이지가 달라 모든 injection 방법이 가능하다. 이런 경우는 Error based로 진행. 2. order by 쿼리문으로 게시판의 컬럼 개수를 찾아낸다. ' order by 1# ' order by 2# ' order by 3# .... N번째 컬럼 순으로 정렬을 의미한다. 컬럼 숫자보다 더 높은 번호를 넣으면 에러 송출 25번째 컬럼은 존재하지 않.. 2023. 1. 11.
40. sqlmap 활용한 자동 진단 Beebox - SQL Injection (POST/Select) 활용한 실습 파라미터 입력이 불가하며 단순한 Select로 Post 메서드를 이용해 값을 넘기는 경우에서 SQL Injection 요소를 찾아본다. 1. 개발자 도구를 이용해 파라미터 수정 Error 페이지 확인 2. Burp Suite을 이용하여 파라미터 수정 3. sqlmap 활용 ┌──(root㉿kali)-[/home/kali] └─# sqlmap -h 엄청나게 다양한 옵션 제공 1단계 : DB정보값 추출 -u [url 주소값] --cookie="[인증 페이지에서는 쿠키값 필요]" - burp에서 찾은 것으로 붙여 넣기 --data "[parameter 값]" - burp에서 찾은 것으로 붙여 넣기 --dbs : 데이터베이스정보 확인.. 2023. 1. 10.