공부 29

Frida-Labs 0x2

2024.05.13 - [공부/안드로이드] - Frida-Labs 0x1  이전과 똑같이 MainActivity로 가면 저 메소드가 있다.a의 값을 4919로 만들면 flag를 얻을 수 있을 것 같다는 느낌이 든다. 하지만 우리는 a를 입력할 수 있는 곳이 어디에도 없는데??!그러니까 frida를 사용해야한다.. 파이썬으로 작성한 스크립트는 앱이 실행된 이후, js 스크립트는 앱이 실행되기 전 후킹이 된다는 차이점이 있다.  Java.perform(function() { let MainActivity = Java.use("com.ad2001.frida0x2.MainActivity"); MainActivity.get_flag(4919);});굉장히 간단한 코드이다,플래그를 얻었다. ※ 나는 아직..

Frida-Labs 0x1

2023.11.24 - [공부/안드로이드] - frida 설치 frida 설치frida란.. frida를 설치해봅시다 pip install frida pip install frida frida-tools frida --version 설치한 frida 버전을 확인한다. getprop ro.product.cpu.abi 에뮬레이터의 비트를 확인한다. 설치한 frida 버전 & 에뮬레이터의peraspera.tistory.comfrida 설치는 위의 글을 참고하면 될 것 같다. https://github.com/DERE-ad2001/Frida-Labs GitHub - DERE-ad2001/Frida-Labs: The repo contains a series of challenges for learning Frid..

XSS(Cross-Site Scripting)

내가 어제 공부를 진득히 안했다는 생각이 들어서, 카페에 왔다. 오늘은 조금 더 꼼꼼히 공부해야지 XSS 취약점은 웹 리소스에 악성 스크립트가 삽입되기 때문에 발생한 취약점이다. 해당 취약점은 브라우저가 서버로부터 전달받은 컨텐츠를 신뢰한다는 점을 악용해 발생한다. 악성 스크립트를 삽입하고, 이후 이용자가 악성 스크립트가 포함된 페이지를 방문하면 스크립트가 실행되어 쿠키와 세션이 탈취 될 수 있다. 비록 SOP 보안 정책이 등장하며 이전에 비해 까다로워졌지만, 그럼에도 우회하는 다양한 기술을 통해 XSS 공격이 끊기지 않고 있다. 자바스크립트를 통해 웹 페이지를 조작하거나, 웹 브라우저의 위치를 임의의 주소로 변경할 수 있다. 때문에 자바스크립트를 좀 알아야 공격할 수 있다. new Image() : 이..

공부/웹 2024.04.23

안드로이드 생명주기

액티비티는 생명주기를 갖고 있습니다. (액티비티는 단순하게 화면이라고 생각할 수 있습니다. 카카오톡을 실행할 때 맨 처음 뜨는 로고가 박힌 화면, 친구 창 등등이 모두 하나의 액티비티에요) 유튜브를 보다가 전화를 받은 후 다시 유튜브를 볼 때, 영상을 이어서 시청할 수 있습니다. 단순히 화면의 입장에서 생각하면 유튜브 - 전화 - 유튜브 인데, 어떻게 이어서 시청이 가능할까요? 이밖에도, 앱을 사용하지 않을 때 시스템 리소스가 소비되는 것을 막거나, 가로/세로 회전하는 경우 비정상 종료가 되는 것을 막기 위해서 등 안드로이드 생명주기는 개발에서 꽤나 중요한 요소입니다. onCreate() 액티비티를 생성할 때 실행되는 메소드으로, 필수적으로 구현해야 합니다. 액티비티가 생성되면 생성됨 상태이지만, onC..

웹 취약점

XSS XSS(cross-site scripting) 취약점은 공격자가 악의적인 스크립트를 삽입해 피해자의 쿠키 혹은 세션을 탈취할 수 있는 취약점이다. XSS 취약점의 종류는 아래와 같다. Stored 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨옴 Reflected 악성 스크립트가 URL에 삽입 되고 서버의 응답에 담겨옴 DOM-based 악성 스크립트가 URL Fragment에 삽입 Universal SOP 정책을 우회 태그 삽입이 되지 않도록 함으로서 취약점을 막을 수 있다. 취약한 홈페이지의 경우 1이라는 내용이 담긴 메시지 창이 뜰 것이다. 하지만, 내가 입력한 것과는 달리 alert("1") 을 확인할 수 있다. 이는 url 인코딩을 사용한 것으로 간단하지만 효과적인 방법이다. CSRF..

공부/웹 2024.01.21

드림핵 > shell_basic

shellcode, opcode 등등이 머리를 어지럽게 한다. 하지만 계속 매달린 끝에 엇! 갑자기 뭔가 이해가 되었다. 문제 파일을 받으면 shell_basic.c 파일을 확인할 수 있다. main 함수가 아닌 다른 함수들은 풀이와 관련이 없다고 하니, main만 잠깐 보자 읽기, 쓰기, 실행 권한을 가진 메모리 영역을 할당해 셸코드를 저장한다. 우리는 드림핵 강의에서 아래의 코드를 배웠다. // File name: orw.c // Compile: gcc -o orw orw.c -masm=intel __asm__( ".global run_sh\n" "run_sh:\n" "push 0x67\n" "mov rax, 0x616c662f706d742f \n" "push rax\n" "mov rdi, rsp #..

공부/시스템 2024.01.04

안드로이드의 저장공간에 대해

안드로이드 취약점 분석을 하며 SharedPreferences에 대해 알게 되었고, 안드로이드는 어떻게 저장 공간이 이루어져 있는 지 궁금해 오늘 공부했다. 내가 이해한 것을 바탕으로 이를 정리해보겠다. 안드로이드는 내부 저장소(Internal Storage)와 외부 저장소(External Storage)를 제공한다. Internal Storage (시스템에 의해서 보호됨) External Storage (공유될 수 있음) Built in non-removable storage (내장 메모리에 박혀있음) SD card 빨간색 → 내장 메모리, 파란색 → 외장 메모리 내부 저장소 다른 앱의 공간에 접근이 불가능한 샌드박스 공간 앱 삭제 시 앱 개별공간에 존재하는 앱 개별 파일들이 모두 제거 (ex) Sha..

녹스 vt 기능 비활성화

집에서도 일을 하기 위해 녹스를 설치했는데, vt 기능이 비활성화 되어있다고 실행이 안되었다!ㅠㅠ 해결한 방법은 아래와 같다. https://leomoon.com/downloads/desktop-apps/leomoon-cpu-v/ LeoMoon CPU-V Introduction LeoMoon CPU-V is the only application on the Internet... leomoon.com 위의 링크에서 프로그램을 다운받아 실행한다. 나같은 경우에는 아래처럼 떠있었다. 바이오스에 들어가 vt-d 옵션을 켜주었지만, 여전히 x로 표시되었고 녹스 역시 실행되지 않았다. 녹스 매니저에서 안드로이드 12와 안드로이드 7 버전을 생성했다. 젤 중요한 것은 'Windows 기능 켜기/끄기' 설정에서 Lin..

공부 2023.12.03

frida 설치

frida란.. frida를 설치해봅시다 pip install frida pip install frida frida-tools frida --version 설치한 frida 버전을 확인한다. getprop ro.product.cpu.abi 에뮬레이터의 비트를 확인한다. 설치한 frida 버전 & 에뮬레이터의 비트와 맞는 파일을 다운 받고, 압축 풀기를 진행한다. adb push frida-server-16.1.3-android-x86_64 /data/local/tmp 다운 받은 파일을 옮겨준다. adb shell cd /data/local/tmp ls -al chmod 777 frida-server-16.1.8-android-x86_64 frida-server-16.1.3-android-x86_64 파일..