본문 바로가기

Hack131

Laravel SQL Injection ( Version < 5.8.11) 개요 Laravel Framework는 SELECT Query에서 사용할 Columns을 입력 값을 통해 지정할 수 있습니다. JSON Data의 경우 addSelect() 함수를 통하여 빠르게 변환할 수 있으며, addSelect() 함수는 json_extract() 함수로 변환되어 쿼리에 사용됩니다. Blog::query() ->addSelect('title->en'); SELECT json_extract(`title`, '$."en"') FROM blogs; 분석 addSelect() 함수의 변환 과정에서는 Escape 되지 않기 때문에 SQL Injeciton 취약점이 발생할 수 있습니다. 만약 title->en 데이터 부분에 '#를 추가할 수 있다면 공격자가 직접 json_extract 함수를 .. 2020. 9. 22.
Laravel Framework 보안 관련 내용 정리 보안 관련 내용 Public 디렉토리 노출 최소화 및 설정 파일 숨김 기존의 PHP 웹 애플리케이션들은 구동에 필요한 설정 파일을 웹 서버에 위치 시키거나 절대 경로로 읽어들이는 경우가 많았습니다. 라라벨의 경우 구동에 필요한 설정 파일을 DocumentRoot와 격리하였고, php 직접 호출이 아닌 애플리케이션 라우팅을 통해 서비스를 제공하도록 설계되었으며, public 디렉토리에 단 하나의 PHP 파일만 존재함으로써 public 디렉토리와 설정 파일의 노출 및 .php 파일 직접 호출을 통한 공격 발생 가능성을 최소화 하였습니다. public 디렉토리 (Laravel Korea 설명) public 디렉토리는 애플리케이션에 진입하는 모든 request-요청들에 대한 진입점 역할과 오토로딩을 설정하는 i.. 2020. 9. 22.
Reflected File Download 개요 사용자의 입력 데이터가 다운로드 되는 파일에 영향을 줄 경우, 이를 이용하여 정상적인 파일을 악성 파일로 변경하여 다운로드 하게 할 수 있습니다. 해당 취약점이 발생하기 위해서는 3가지의 조건이 필요합니다. 1. 파일 다운로드 Content-Disposition 헤더가 attachment로 구성되면 응답 데이터를 첨부파일로 다운로드 받을 수 있습니다. 2. 실행 가능한 확장자 및 파일 명 변경 필요 파일을 실행하는 클라이언트 측에서 실행 가능한 확장자로 다운로드 받을 수 있어야 합니다. 3. 사용자 입력 값 응답 데이터 반영 입력 값이 응답 데이터에 반영될 때 시스템 명령어를 통해 악성 코드를 생성할 수 있습니다. Windows Command의 경우 "", "\" 모두 문자열을 닫은 것으로 인식한다.. 2020. 9. 22.
Phar 파일을 이용한 PHP Unserialization 개요 Phar(PHP Archive)는 많은 코드 파일 및 기타 리소스를 단일 아카이브 파일로 사용할 수 있는 패키지 형식입니다. Phar는 Stub, Manifest, File Contents, Signature(Optional) 총 4개의 구조로 이뤄지며, Signature을 제외한 나머지 구조에 대한 설명은 다음과 같습니다. Stub 가 존재해야만 Phar 파일로 인식합니다. Manifest Phar 파일의 Meta-Data가 포함되어 있으며, 모든 직렬화 된 객체가 포함될 수 있습니다. 해당 구조에서 역직렬화 취약점이 발생합니다. File Contents Phar 내 데이터 영역입니다. 직렬화 된 Meta-Data는 Phar:// Stream Wrapper에 의해 처음 액세스될 때 역직렬화 되며,.. 2020. 9. 22.
Frida Cheat Sheet 공통 Frida attach Code import frida, sys def on_message(message, data): if message['type'] == 'send': payload = message['payload'] print(payload) print("") else: print(message) jscode = """ """ try: target = "" process = frida.get_usb_device(timeout=5).attach(target) script = process.create_script(jscode) script.on("message", on_message) script.load() sys.stdin.read() except Exception as e: print(.. 2020. 9. 21.
안드로이드 솔루션 별 Library(.so) 파일 안드로이드 솔루션 별 라이브러리 파일 표 라이브러리 명 솔루션 명 libm0vie.so 라인 에어​ 보호 솔루션 libcovault-appsec.so, (/libcovault-[A-Za-z0-9]{2,10}\.so/) 앱씰링 assets/classes.sox, libcompatible.so 잉카 앱가드 libdxbase.so DxShield libNSaferJNI.so NSHC 회사 관련 솔루션 assets/ijiami.dat ijiami assets/ATG_E.sec, libATG_L.so G-Presto libncgm.so , libncgp.so NCGuard libgabriel.so Xigncode libbmt.so blackmod libandroidrepublic.so 안드로이드 리퍼블릭 2020. 9. 21.
Printer Hacking 프린터 프로토콜 보통 프린터들이 사용하는 프로토콜로는 RAW, IPP, LPD, SMB 등이 존재합니다. 다소 생소한 RAW, LPD, IPP에 대하여 간단히 알아보겠습니다. RAW JetDirect, AppSocket, PDL-DataSream이라고도 불리며 9100/TCP 포트를 사용하고 있습니다. 프린터에서 사용되는 가장 간단하고 빠르며, 일반적으로 신뢰할 수 있는 프로토콜로 간주되기 때문에 네트워크 프린터와 통신하기 위해 사용되는 기본방식 입니다. LPD lpr 명령어를 사용하여 액세스할 수 있으며, 515/TCP 포트를 사용하고 있습니다. 인쇄를 하기 위해서 클라이언트는 작업/사용자이름을 정의하는 제어 파일과 인쇄할 실제 데이터가 포함된 데이터 파일을 전송합니다. 인쇄 데이터를 처리하는 방법은 .. 2020. 9. 21.
Windows에서 Metasploit 설치 설치방법 1. Metasploit에서 Download 버튼을 클릭한 뒤 Windows용 버전을 다운로드 받습니다. 2. msi 파일을 이용하여 Metasploit Framework를 설치합니다. (설치되는 metasploit-framework 폴더를 백신에서 바이러스로 잡기 때문에 예외처리 필요) 3. C:\metasploit-framework\bin 폴더에서 msfconsole.bat을 실행하면 Windows에서도 Metasploit을 정상적으로 이용할 수 있습니다. Reference https://www.metasploit.com/ https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installers 2020. 9. 21.
commons-fileupload Module WAF Filtering Bypass 개요 JSP로 구현된 웹 서버에서 파일 업로드를 구현할 때 commons-fileupload 라는 Module을 이용하는 경우가 많습니다. 웹 서버들의 경우 보통 WAF(Web Application Firewall)를 거쳐 WAS(Web Application Server)로 Request를 전송하는 것이 대부분인데, 만약 파일 확장자 필터링을 WAF에서만 수행할 경우 필터링 우회 취약점이 발생하게 됩니다. 취약점 취약 환경 commons-fileupload (Version 1.3 ~) 테스트 환경 CCE 2019 Babyweb Docker (tomcat URL 변경 파일) Docker 빌드 명령어 docker build -t babyweb . docker run -p 80:80 babyweb 분석 해당 .. 2020. 9. 21.