오늘 풀이할 문제는 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에 나타나는지를 검사하는..
방학을 맞이해서 다양한 분야의 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
- 리버싱.kr
- 스프링부트
- 코드로 배우는 스프링 부트
- 동적분석
- 리버싱기초
- 앱분석
- reversing.kr
- pwnable.kr
- 에러
- writeup
- CTF
- exception
- Android
- 모바일리버싱
- 웹 MVC
- 펌웨어 분석
- AndroidX
- Java
- androidstudio
- 뷰모델
- MVVM
- Spring
- 칼리리눅스
- 포너블.kr
- 정보보안
- NumberFormatException
- DataBinding
- 안드로이드
- 자바
- 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 |