분류 전체보기

System Hacking Advanced

[dreamhack] ssp_001

SSP 개념SSP(Stack Smashing Protector) SSP(Stack Smashing Protector)SSP는 BOF를 방어하기 위한 보호기법 중 하나로 함수를 실행할 때, canary라는 랜덤 값을 스택에 추가하여 BOF로 스택 데이터가 변조됐는지 확인하는 방법이다. canary가 변조된 경우는 스택 데이터가keyme2003.tistory.com ssp_001#include #include #include #include void get_shell() { system("/bin/sh");}void print_box(unsigned char *box, int idx) { printf("Element of index %d is : %02x\n", idx, box[idx]);}voi..

System Hacking Advanced

[dreamhack] Return Address Overwrite

Return Address Overwritevoid get_shell() { char *cmd = "/bin/sh"; char *args[] = {cmd, NULL}; execve(cmd, args, NULL);}int main() { char buf[0x28]; init(); printf("Input: "); scanf("%s", buf); return 0;}scanf("%s", buf)에서 길이 검증이 없다. 따라서 BOF가 발생한다. BOF 취약점을 이용해서 RET을 get_shell() 주소로 덮으면 쉘을 얻을 수 있다. gdb로 get_shell 주소를 구했다. 다음으로 buf ~ RET 거리를 구해보자. 를 보면 scanf() 호출 전에 [rbp-0x30]를 rax에 넣고 이를 ..

Mobile

[OWASP-MSTG] UnCrackable-Level2

UnCrackable-Level1에 이어 Level2를 풀어보자. UnCrackable-Level2.apk를 다운받고 [NOX 플레이어]로 App을 실행했다. 문제풀이 App을 실행하면 디버깅을 탐지하는 것을 확인할 수 있다. 어떤 방식으로 디버깅을 탐지하는지 확인하기 위해서 코드를 JEB로 분석했다. ○ MainActivity - onCreate()if((b.a()) || (b.b()) || (b.c())) { this.a("Root detected!");}if(a.a(this.getApplicationContext())) { this.a("App is debuggable!");} onCreate()의 if를 보면 b.a()와 a.a()를 실행하고 결과에 따라 루팅과 디버깅을 탐지하는 것을 ..

Mobile

[OWASP-MSTG] UnCrackable-Level1

문제풀이 App을 실행하면, "Root detected!"라고 뜨는 것을 확인할 수 있다. [OK] 버튼을 누르면 App이 종료된다. 실제 APK 리버싱을 해보면 루팅폰에서 App에 접근하는 것을 [그림 1]과 같이 감지해서 사전차단하는 경우를 많이 볼 수 있다. 이런 유형을 우회하는 방법에 대해 공부하는 의도인 것 같다. APK 코드를 파악하기 위해서 JEB라는 디컴파일 툴을 이용해서 코드를 분석했다.(JEB가 없는 독자는 JADX를 사용하면된다.) ○ MainActivity → onCreate()@Override // android.app.Activityprotected void onCreate(Bundle arg2) { if((c.a()) || (c.b()) || (c.c())) { ..

Web Hacking Advanced

[dreamhack] web-ssrf

개념정리○ SSRF공격자가 서버 측에서 원격 서비스 또는 리소스에 HTTP 요청을 보내도록 서버를 속이는 공격공격자는 서버에서 외부 리소스에 대한 HTTP 요청을 보낼 수 있으며, 이를 통해 내부 네트워크나 인트라넷에 접근할 수 있음APT 공격자들은 SSRF를 통해 내부 네트워크의 서비스 및 리소스에 접근하여 기밀 정보를 획득하거나 공격의 다른 단계를 위한 기반을 마련SSRF 공격을 통해 공격자는 서버의 중요 정보나 데이터를 노출시키거나, 다른 시스템에 대한 스캔 및 공격을 수행할 수 있음 서버나 개발자가 의도하지 않은 요청과 동작을 수행하는 공격이므로 파급력이 큰 공격이다. SSRF는 내부 네트워크 서비스에 침입할 수 있는 공격으로 자주 언급된다. 실습 문제를 풀어보면서 알아보자. 문제풀이Image V..

Web Hacking Advanced

[dreamhack] php-1

개념정리PHP Wrapper를 이용한 LFI 취약점을 실습하는 문제다. ○ LFILFI(Local File Inclusion) 취약점은 웹 애플리케이션에서 발생할 수 있으며, 공격자가 악의적인 목적으로 웹 서버의 파일 시스템에 접근하여 중요한 파일을 읽거나 실행할 수 있는 취약점이다. LFI는 주로 웹 애플리케이션에서 파일을 동적으로 로드할 때 발생한다. 이때, 애플리케이션은 파일 이름을 사용자 입력값으로 받아들이는데, 이 입력값에 대한 검증이 제대로 이루어지지 않으면 공격자가 파일 시스템의 다른 파일에 접근할 수 있다. 공격자는 LFI 취약점을 이용하여 애플리케이션의 설정 파일, 암호화된 비밀번호, 데이터베이스 정보 등 중요한 정보를 탈취할 수 있다. 또한 공격자는 원격 코드 실행(RCE) 공격을 수행..

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