전체 글
-
[InsecureBankv2] 서버에러카테고리 없음 2021. 9. 29. 15:05
에러발생 원인 에러발생 InsecureBank 앱은 서버 구동시 정상적으로 작동하는 것을 확인함. 하지만 로그인 기능 이용시 로그인이 안되거나 위와 같은 에러가 발생하는 경우가 있다. 원인 일부 툴을 사용할 때 경로에 한글이 들어가게 되면 에러가 발생하면서 동작을 안하는 경우가 있는데 app.py에서 db와 연결될 때 경로에 한글이 들어가게 되면 동작하지 않는 것으로 추측된다. 기존에 한글로 되어있던 디렉터리 이름을 영어로 바꾼 뒤 로그인을 하니 정상적으로 동작하며 서버에 로그인 정보 뜨는 것을 확인할 수 있다. Uploaded by Notion2Tistory v1.1.0
-
APK 파일 구조모바일 2021. 9. 29. 14:49
APK란? APK 파일 구조 Reference APK란? 안드로이드 앱의 확장자로서 Android Application Package 의 줄임말이다. 앱을 설치하는 역할을 하며, ZIP 형식으로 압축되어 있다. APK 파일 구조 META-INF 인증 서명과 관련한 정보가 담겨있는 디렉터리 assets 의미 그대로 앱 실행에 필요한 자원들이 저장되는 디렉터리. res 디렉터리와 중복되는 것 같지만 용량이 큰 파일 위주로 저장된다. res 앱 실행에 필요한 자원이 모여있는 디렉터리 Drawable : 프로젝트에 활용될 이미지들 Layout : 안드로이드 화면을 담당하는 xml들의 집함 Values dimens.xml : 텍스트 크기, 도형 크기 등 크기에 관련된 설정 파일 strings.xml : 문자열에 ..
-
안드로이드 아키텍처모바일 2021. 9. 29. 14:43
안드로이드 아키텍처 구조 커널계층 라이브러리 계층 런타임 계층 프레임워크 계층 어플리케이션 계층 안드로이드 보안 모델 패키지 파일(APK) Reference 안드로이드 아키텍처 구조 어플리케이션 계층 프레임워크 계층 런타임 계층 네이티브 라이브러리 계층 커널 계층 커널계층 하드웨어, 네트워크, 파일 시스템 접근 등 시스템 전체의 중심 역할 수행 라이브러리 계층 네이티브 라이브러리를 제공하기 위한 계층 SQLite, WebKit, Media(코텍 지원) 등 런타임 계층 자바 바이트 코드를 DEX 포맷으로 변환하여 패키징 후 실행함 안드로이드 7.0 누가(API24) 이후의 ART VM 에서는 JIT와 AOT를 모두 사용한다. Dalvik, ART Dalvik : JIT(Just In Time) 자바 바이트..
-
[hackctf] rtlcore 풀이hackctf 2021. 9. 8. 23:32
1. 문제 문제 파일의 보호기법은 NX bits가 걸려있다. ida를 사용하여 main 함수를 확인해보니 사용자로부터 입력받은 문자열 s를 check_passcode 함수의 인자로 넣어준 후 함수의 반환값이 hashcode와 같을 시 특정 문자열을 출력한 후 core 함수를 실행한다. check_passcode 함수는 사용자로부터 입력받은 문자열이 위치한 주소에서 4바이트씩 읽어와서 v2에 더해주는 반복문을 거친 뒤 v2를 반환해준다. core 함수를 확인해보니 printf 심볼의 주소를 출력해주고 read 함수를 사용하여 buf에 입력값을 받는데 buf의 크기는 0x3e 인데 read 함수가 입력 받을 수 있는 문자열의 길이는 0x64인 것으로 보아 여기서 buffer overflow 취약점이 발생한다..
-
[hackctf] g++pwn 풀이hackctf 2021. 8. 12. 21:34
1. 문제 보호기법은 NX bit가 걸려있다. 코드를 확인해보니 main함수에서는 vuln() 함수를 호출하고 끝난다. vuln 함수 코드를 확인해보니 fgets 함수를 사용하여 사용자로부터 입력 받은 값을 s에 넣어주고 이를 input에 넣어준다. 이후 replace 함수를 호출하고 마지막에 strcpy 함수를 사용해 v0를 s로 복사한 후 printf로 출력해준 뒤 종료한다. std::string *__stdcall replace(std::string *a1, std::string *a2, std::string *a3) { int v4; // [esp+Ch] [ebp-4Ch] char v5[4]; // [esp+10h] [ebp-48h] BYREF char v6[7]; // [esp+14h] [ebp..
-
[hackctf] rtl_worldhackctf 2021. 8. 9. 20:32
문제 파일에는 nx bit 보호기법이 걸려 있습니다. int __cdecl main(int argc, const char **argv, const char **envp) { int result; // eax int v4; // [esp+10h] [ebp-90h] char buf; // [esp+14h] [ebp-8Ch] void *v6; // [esp+94h] [ebp-Ch] void *handle; // [esp+98h] [ebp-8h] void *s1; // [esp+9Ch] [ebp-4h] setvbuf(stdout, 0, 2, 0); handle = dlopen("/lib/i386-linux-gnu/libc.so.6", 1); v6 = dlsym(handle, "system"); dlclose(h..
-
[hackctf] yes_or_nohackctf 2021. 7. 29. 01:10
문제 문제 파일을 다운받아 실행해보니 Show me your number~! 라는 문구를 출력하고 사용자로부터 입력을 받습니다. 1234 를 입력하니 All I can say to you is "do_system+1094" 를 출력해주며 종료합니다. 아이다를 사용하여 코드를 확인해보겠습니다. int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax int v4; // eax int v5; // ecx int v6; // eax int v7; // eax char s; // [rsp+Eh] [rbp-12h] int v10; // [rsp+18h] [rbp-8h] int v11; // [rsp+1Ch] [rbp-4h] ..
-
[hackctf] rtchackctf 2021. 7. 26. 01:52
이번에는 이전에 dreamhack에서 basic_x64_rop 문제를 풀면서 익혔던 rtc 기법을 복습할겸 hackctf의 rtc 문제를 풀게 되었습니다. gdb-peda$ disas Dump of assembler code for function main: 0x00000000004005f6 :push rbp 0x00000000004005f7 :mov rbp,rsp => 0x00000000004005fa :sub rsp,0x40 0x00000000004005fe :mov rax,QWORD PTR [rip+0x200a4b] # 0x601050 0x0000000000400605 :mov ecx,0x0 0x000000000040060a :mov edx,0x2 0x000000000040060f :mov esi,..