
이전 easycrack에 이어서 두번째로 푸는 Reversing.kr 문제. 이전문제와 마찬가지로 olldbg를 사용하여 문제 풀이를 진행하였다. 아래 풀이는 내가 문제 풀이를 한 과정을 기록한 것이다. -풀이 Serial 이 5B134977135E7D13 일 때의 이름을 찾는 것이 해커의 목표. 실행 시켜보면 이름을 입력 받고, 시리얼을 입력받음 맞지 않으면 프로그램 종료됨. input 에 bp 걸고 f8로 실행 LOCAL.74 = ESP+18 = 19FE008 => 이 주소에는 입력 값 이름이 들어있음. ESI랑 3 비교 ECX=19FDF8(ESP)+C+0(ESI) =[19FE04] => 입력값 -4의 메모리주소 19FE6C = 00000 19FE08 => 입력값 첫번째 EDI 주소 19FE08로 바..

심심해서 Reversing.kr을 풀며 리버싱 공부를 다시 해보려 한다. 이 문제는 Reversing.kr의 첫번째 문제 easycrack.exe이다. -풀이 CMP BYTE PRT SS:[ESP+5], 61 [ESP+5] 주소 위치의 것과 61을 비교함. 61은 a ESP+5 = 19F98c + 5 = 19F991 19F990 부터 내가 입력한 값. 19F991은 두번째 값 두번째가 a인지 비교함. -> 두번째 스트링은 a다 @a5y MOV ESI,40606C R3versing LEA EAX,[ESP+10] ESP + 10 = 19F994 6번째 입력값자리 DL(eax 6번째 입력값부터,), Bl(esi 값 : R3versing) 비교 맞지 않으면 SBB EAX, EAX로 분기 @a5yR3versing..

오늘 풀이할 문제는 mistake. 연산자 우선순위때문에 발생하는 취약점을 다룬 문제이다. 서버에 접속 하면 mistake, password, mistake.c, flag 파일이 있는 것을 확인 할 수 있다. mistake.c 파일을 읽으면 다음과 같다. #include #include #define PW_LEN 10 #define XORKEY 1 void xor(char* s, int len){ int i; for(i=0; i

오늘 풀이할 문제는 [Toddler's Bottle]에 있는 ShellShock이다. Shellshock에 관한 자세한 내용은 아래에 내가 정리 해둔 링크를 참고 하면 된다. https://pororiri.tistory.com/30 취약점)Shellshock_bash쉘 취약점 쉘 쇼크 취약점에 대해 공부를 해 본 내용을 정리 해 보고자 한다. 글 쓰다가 중간에 거의 다 쓴 글이 날아가서 매우 화가 나는데 정신 차리고 다시 정리 해 보겠다. ShellShock(CVE-2014-6271) 는 2014년에 발견.. pororiri.tistory.com 위 글에서도 말했듯 shellshock는 배쉬쉘 취약점으로 환경변수에서 함수 선언 후의 명령문을 배쉬에서 함수를 등록하는 과정에서 실행되는 취약점으로 간단하지만..

오늘 풀 문제는 [Toddler's bottle]의 4번째 문제 flag. 이 문제 지문에 papa bought me a packed present! 라고 적혀 있는 걸 보아 패킹되어 있는 바이너리를 언패킹 하는 문제라는 것을 알 수 있었다. 패킹되어있는 바이너리는 objdump 로 파일의 헤더를 확인하거나 디스어셈블등이 되지 않는다. file '파일이름'으로 파일 정보를 확인해도 평소에 나오는 정보보다 훨씬 적은 정보만 나오는 것을 확인 할 수 있다. 바이너리 패킹 확인은 윈도우에서 더 쉽게 확인 할 수 있는데 PEID 를 이용해 대상 프로그램을 스캔 해 확인 할 수 있다. -Binary Packing 실행 압축. 바이너리 패킹은 바이너리 디스어셈블을 방지 하기 위한 리버싱 방지 기법이다. 압축을 푸는..

오늘 풀이할 문제는 bof. 버퍼오버플로우 취약점을 이용해 쉘을 따는 문제이다. 문제는 nc로 접속하여 접속하면 프로그램이 바로 실행되는 방식이기 때문에 바이너리와 소스코드는 링크로 주어졌다. -nc(netcat) TCP나 UDP 프로토콜을 사용하는 네트워크 연결에서 데이터를 읽고 쓰는 간단한 유틸리티 프로그램. ip와 포트 번호를 이용해서 해당 ip에 접속할 수 있다. 사용 방법 "nc ip/url 포트번호" -바이너리 0과 1로 이루어진(binary) 프로그램의 파일. 소스코드를 컴파일한 결과이다. 바이너리를 사람이 읽을 수 있는 기계어(ex. 어셈블리)로 바꾸는 것을 디스어셈블 이라고 함. 주어진 문제의 소스코드. func 함수를이용하여 버퍼를 오버플로우를 시켜서 "0xdeadbeef" 라고 설정 ..
이번 문제는 전에 풀었던 cmd1 의 심화 버전으로 필터가 더 많이 걸려 있다. 1을 풀었으니 2도 풀 수 있겠지? 함께 풀어보자. 문제는 다음과 같다. 이때 주의 할 점은 cmd2의 비밀번호는 cmd1의 플래그 라는 것!1을 풀어야 2를 풀 수 있다. 접속해서 확인 해 보면 다음과 같이 cmd2 cmd2.c flag 파일이 나온다. #include #include int filter(char* cmd){ int r=0; r += strstr(cmd, "=")!=0; r += strstr(cmd, "PATH")!=0; r += strstr(cmd, "export")!=0; r += strstr(cmd, "/")!=0; r += strstr(cmd, "`")!=0; r += strstr(cmd, "flag..
이번학기 목표를 pwnable.kr 를 hacker's secret 빼고 다 풀어 보는 것으로 잡았다. 그래서 오늘도 포너블문제 두개를 풀었는데 그것을 한번 풀이 해 보도록 하겠다. 이 문제에서 알아야 할 개념은 리눅스의 환경변수와 C의 strstr()함수 인데 문제를 풀면서 같이 공부해보자. 풀어볼 문제는 cmd1 리눅스의 환경변수를 이용하는 문제이다. 접속해보면 위와 같이 cmd1 cmd1.c flag 파일이 있다. 코드를 읽어보면 다음과 같은데 사용자에게 입력받은 문자열을 시스템 함수에 넣고 실행시키는 코드이다. 이때 strstr()함수를 통해 몇가지의 문자열이 필터링 된다. flag, sh, tmp -strstr(string1, string2) string2가 string1에 나타나는지를 검사하는..
2월 14일 12:00 ~ 24:00 까지 진행되었던 제 1회 TRUST CTF 에 참가했다. 출제 되었던 문제 중 모바일 문제였던 IDENTITY_5를 풀이 해 보겠다. 제공되는 파일은 apk 파일이고 실행하여 "trust", "TRUST", "flag" 라는 값을 입력 하라고 나온다. 지시 대로 해보자. 프로그램을 실행하면 TRUST CTF 라는 글자와 함께 QR 코드가 뜨고 남한어 번역기라는 어플이 나오게 된다. 여기서 앞에서 주어진대로 "trust", "TRUST", "flag"를 넣어보면 둘다 base 64로 인코딩 되어있다. 디코딩 해보면 "where is the flag"와 "I_want_to_see_code"라는 단어가 나오게 된다. 결국 소스코드를 보란 이야기. flag를 넣으면 다음과 ..
방학을 맞이해서 다양한 분야의 CTF 문제를 풀면서 공부하고 있다.그 중 하나인 시스템 CTF 문제들을 모아둔 pwnable.kr 에서 1번 문제를 풀이 해보도록 하겠다. 제일 첫번째 문제 fd는 저기 귀여운 그림만큼 쉬운 문제인데 fd 개념을 이해하는데 시간이 좀 걸렸던 문제이다. 문제를 클릭하면 위와 같이 접속 경로와 문제 설명이 나온다. 적혀 있는 서버로 접속하여 문제를 풀면 된다. 접속 방법은 아래와 같다. cmd에서 ssh fd@pwnable.kr -p2222 를 입력해 주고 주어진 패스워드 guest 를 입력해주면 위와 같이 pwnable.kr 에 접속 할 수 있다. 접속해서 ls 명령어로 파일을 읽어보면 파일은 총 fd, fd.c, flag 이렇게 3개의 파일이 존재한다. ls -l 로 권한..
- Total
- Today
- Yesterday
- 자바
- CTF
- reversing.kr풀이
- 뷰모델
- NumberFormatException
- 모바일리버싱
- 정보보안
- Android
- exception
- writeup
- androidstudio
- Java
- 웹 MVC
- MVVM
- 에러
- 펌웨어 분석
- pwnable.kr
- 안드로이드
- 코드로 배우는 스프링 부트
- DataBinding
- AndroidX
- 리버싱.kr
- Spring
- 포너블.kr
- 스프링부트
- 앱분석
- reversing.kr
- 리버싱기초
- 동적분석
- 칼리리눅스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |