본문 바로가기

전체 글324

XS Search Attack (Cross Site Search) 개요 XS Search 공격은 공격자가 포함시킨 스크립트가 클라이언트에서 실행되어 메일 내용, 연락처, 검색 기록과 같은 정보들을 획득할 수 있으며, 스크립트 실행 과정 중 발생하는 동일한 출처 정책(SOP)을 우회 가능한 공격입니다. XS Search 공격에 사용되는 방법들은 Frame Count, Histroy Length 등 여럿 존재하지만, 이번 포스팅에서는 서로 다른 결과가 존재하는 응답간의 시간 차이를 통한 공격과 Frame Count를 통한 SOP 우회 공격을 진행할 것입니다. 분석 아래 그림의 Target Server는 메일 서버이며 검색 결과가 존재하는 경우와 존재하지 않는 경우의 시간 차이가 1초 이상 난다고 가정해본다면, 공격자는 XS Search 공격을 통하여 메일 서버에 존재하는 .. 2020. 9. 22.
[Hacking Game App] Unity mono 엔진으로 개발된 게임 앱 개요Unity 기반 APP은 mono, il2 두 가지 방식으로 컴파일이 가능하며, il2로 컴파일된 앱의 경우 이전 포스트에서 간단하게 분석 했었습니다. 이번에도 mono로 개발된 게임 앱을 어떤 방식으로 분석해야할지 궁금해져 시작하게 되었습니다. 분석에 사용한 폭탄 게임은 직접 제작하여 사용하였으며, 처음 개발한 게임 앱이다보니 많이 허접하지만 해당 포스트를 따라하실 분들이 있을 수 있어 공유하도록 하겠습니다. 필요 도구 및 앱폭탄 게임 (1280 x ~, 1920 x ~ 에서만 정상 구동을 확인함)dnSpy분석먼저 bomb.apk 파일을 압축해제한 뒤 assets\bin\Data\Managed\Assembly-CSharp.dll 파일을 백업해둡니다. 이후 dnSpy를 이용하여 원본 Assembly-.. 2020. 9. 22.
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.
Python Offline Package Install 사용법 1. 먼저 다운로드 받을 폴더에서 pip download [Package Name] 명령어를 입력해줍니다. pip download requests 2. 해당 폴더에 의존성 패키지가 포함된 파일이 다운로드 된 것을 확인할 수 있습니다. 3. 해당 파일을 다운로드 할 피씨로 옮긴 뒤 pip install --no-index --find-links=[PATH] [Package Name] 명령어로 패캐지를 정상적으로 설치할 수 있습니다. pip install --no-index --find-links=. requests 2020. 9. 21.