Search found 34 matches

by gee8195
Sun Nov 06, 2016 6:09 pm
Forum: CTF 타임
Topic: [SchoolCTF 2016] (reverse 100) Batman's password
Replies: 0
Views: 360

[SchoolCTF 2016] (reverse 100) Batman's password

1.png schoolctf문제가 오픈되서 한번 풀어봤습니다. 생각보다 간단한 리버싱문제가 나왔습니다. 2.png 바이너리 파일을 받아서 아이다로 열어봤습니다. 보시다시피 check1부터 check3까지 있고 해당 함수들을 분석하면 플래그를 출력할 수 있을것 같습니다. 3.png 4.png 5.png check1, check2, check3, 함수를 차례대로 봤습니다. 그렇게 어려운문제는 아닌 것 같습니다. 6.png 문자열도 있고, 해당 루틴도 볼수있으니 역으로 코드를 짜서 플래그를 출력할수 있을것 같습니다. 7.png 입력해보...
by gee8195
Sun Nov 06, 2016 2:46 pm
Forum: CTF 타임
Topic: (해결)[pwnable.kr] coin2
Replies: 0
Views: 341

(해결)[pwnable.kr] coin2

힌트주셔서 감사합니다. ㅎ 1.png 일단 hackhack 님이 주신 힌트로 어느정도 윤곽이 보여서 여러가지 테스트를 해봤습니다. 원리는 coin1과 크게 다르지 않다라는걸 알았습니다. 2.png 일단 정확하게 어떤 원리인지 알아보기위해 N = 10, C = 4 라는 가정하에 테스트를 해보았습니다. 포너블 사이트 서버에서 하는 기능과 같은 기능을 하는 코드를 짠뒤 테스트해보았습니다. 코인 10개중에 0번부터 순서대로 가짜코인이 존재한다는 가정으로 돌려봤습니다. 위의 결과를 보시면 가짜 코인이 0인 경우에는 결과가 모두 1씩 부족한걸...
by gee8195
Wed Nov 02, 2016 3:34 pm
Forum: PenTest
Topic: android 디버깅 방법론
Replies: 3
Views: 866

Re: android 디버깅 방법론

와우... 엄청 이해하기 쉽게정리해주셔서 감사합니다.ㅎ 좋은 공부됬습니다.
by gee8195
Fri Oct 28, 2016 4:16 pm
Forum: CTF 타임
Topic: (요청)[pwnable.kr] coin2
Replies: 1
Views: 472

(요청)[pwnable.kr] coin2

1.png 이번문제는 coin1 문제의 연장선이라 금방 해결할수 있을줄 알았는데 막혔습니다.. 2.png 일단 연결해보면 설명은 coin1과 같습니다. 조금의 차이점이 있는데 이번에는 코인의 무게를 (-)dash를 이용해서 비교하라는것 같습니다. 일단 예제처럼 시도를 해보니 위의 결과처럼 확인할 수 있었습니다. 조금 까다로워진건 클라이언트는 send한뒤, 한번만 무게를 확인할 수 있습니다. coin1에서는 기회만큼 주고받으면서 무게를 확인할 수 있지만 coin2에서는 (-)를 사용해 한번에 모든 기회를 사용한뒤 무게도 기회수만큼 ...
by gee8195
Wed Oct 26, 2016 4:40 pm
Forum: CTF 타임
Topic: [pwnable.kr] coin1
Replies: 0
Views: 357

[pwnable.kr] coin1

1.png 잠시 미뤄뒀던 코딩문제를 풀어봤습니다. 2.png 문제에서 주는 호스트와 포트로 연결을 해보면 이와같은 설명이 나옵니다. 해석하면 금화동전 몇개를 주고 그들가운데 실제 동전과 같지만 무게가 다른 가짜동전이 있으니 가짜 동전을 찾으라는 것 같습니다. 실제 동전의 무게는 10이고 가짜 동전의 무게는 9라고 나와있습니다. 인터넷에 가짜동전찾기라고 검색하면 나오는 수많은 게임과 비슷한것 같습니다. 문제의 게임방법은 1.돈전개수(N) 과 기회수(C)를 줍니다. 2.계량 동전의 인덱스 번호의 집합을 지정 3.무게 정보를 획득 4....
by gee8195
Tue Oct 25, 2016 8:41 pm
Forum: CTF 타임
Topic: [OverTheWire (Vortex)] level1 -> level2
Replies: 0
Views: 335

[OverTheWire (Vortex)] level1 -> level2

1.png 문제의 소스 코드입니다. 첫줄에 조건문에 ptr과 0xff000000 를 and연산했을때 0xca000000 와 비교하고 참이면 권한을 주는것 같습니다. print함수는 buf에 저장된 값을 아스키값으로 출력해줍니다. 메인함수 에서 switch 구문을 보면.. 입력한 값이 "\n"인 경우에는 print함수를 호출하고, "\\"인 경우에는 ptr--로 1byte씩 주소가 내려갑니다. 그리고 이 두가지 케이스를 제외한 값을 입력할 경우에는 e()를 실행한뒤, ptr의 주소가 buf + sizeof(buf)보다 크면 반복문으...
by gee8195
Sun Oct 23, 2016 10:58 pm
Forum: CTF 타임
Topic: [OverTheWire (Vortex)] level0 -> level1
Replies: 2
Views: 565

[OverTheWire (Vortex)] level0 -> level1

워게임 사이트 찾아다니다가 좋은 사이트를 발견했습니다. http://overthewire.org/wargames/ 라는 사이트인데 리눅스 명령어 워게임부터 웹, 시스템 등등의 워게임이 존재하는것 같습니다. 그중에서 Vortex첫번째 문제를 건드려 보다가 풀려서 올려보겠습니다 1.png 일단 문제를 보면 호스트와 포트를 주고 부호없는 4바이트의 정수를 읽을수 있다는걸 알 수 있습니다. 밑에 유용한 자료를 보면 c프로그래밍과 네트워크 프로그래밍 자습서라고 적혀있습니다. 아무래도 호스트와 포트를 가지고 코드를 짜서 level1에 가기위한...
by gee8195
Fri Oct 21, 2016 9:44 pm
Forum: CTF 타임
Topic: [root-me.rog (cracking)] ELF - Fake Instructions
Replies: 0
Views: 329

[root-me.rog (cracking)] ELF - Fake Instructions

일단 문제에 fake instruction이라는걸로 봐서 어떤 낚시를 하는 문제일거같습니다. 바로 ida로 열어보았습니다. 1.png dest에 해당 문자열을 저장하고 특정 자리수를 바꾸는게 보입니다 WPA함수로 한번들어가 보겠습니다 2.png 이번에도 특정 자리수에 13,10을 넣어줍니다 문자열로 바꾸면 \r\n입니다. 흠.. WPA 와 \r\n가 좋은 힌트가 될것같습니다. 3.png 비교결과가 같으면 blowfish()함수로 가고 아니면 RS4함수로 가서 종료합니다. 4.png 왠지 이곳에서 바로 인증값을 출력할수 있을거같습니다...
by gee8195
Thu Oct 20, 2016 4:04 pm
Forum: CTF 타임
Topic: [root-me.rog (cracking)] PE - 0 protection
Replies: 0
Views: 303

[root-me.rog (cracking)] PE - 0 protection

이번 문제도 PE포맷이란것만 배면 다를것 없는 문제입니다 0protection .. 전혀 방어가 되지않은 문제입니다.
1.png
1.png (1.96 KiB) Viewed 303 times
worng password가 뜹니다
2.png
2.png (8.1 KiB) Viewed 303 times
ida로 해당 루틴을 찾아 문자형태로 바꿔보면 이번에도 대놓고 노출이 됩니당..
바로입력해보면
3.png
3.png (2.06 KiB) Viewed 303 times
인증값입니다.
by gee8195
Thu Oct 20, 2016 3:56 pm
Forum: CTF 타임
Topic: [root-me.rog (cracking)] ELF - x86 Basic
Replies: 0
Views: 303

[root-me.rog (cracking)] ELF - x86 Basic

루트미 사이트에 cracking 카테고리를 이제 발견했습니다 ㅎ 간단하거 2개정도 올려보겠습니다.
1.png
1.png (13.06 KiB) Viewed 303 times
ㄷㄷ ida로 열자마자 username, password가 그대로 노출됩니당 그래픽뷰로 보면 인증값까지 바로 볼수있지만
한번 실행시켜서 값을 넣어보겠습니다.
2.png
2.png (24.76 KiB) Viewed 303 times
넵 인증값 987654321 이 나왔습니다.
by gee8195
Mon Oct 17, 2016 7:38 pm
Forum: CTF 타임
Topic: [풀이] ascii_easy
Replies: 1
Views: 456

Re: [풀이] ascii_easy

이것도 저번에 힌트 주신대로 라이브러리 문자열로 환경변수 경로 추가해서 풀었습니다. 1.png 일단 pwnable.kr 사이트에서 준 힌트대로 system,execl,execlp를 peda에서 출력해보면 해당 소스의 (c>=0x20 && c<=0x7f) 아스키 범위 내에있는 함수는 execlp()함수 입니다. 2.png 오버플로우 시키기 위해 "/bin/sh"문자열을 찾아봤지만 아스키내의 범위가 아니었습니다. 3.png 4.png 여기서 힌트주셔서 tmp디렉터리에 디렉터리하나 만들고 아스키 범이 내에있는 문자열에 심볼릭 링크를 걸고...
by gee8195
Sun Oct 16, 2016 9:18 pm
Forum: CTF 타임
Topic: [풀이] otp
Replies: 2
Views: 570

Re: [풀이] otp

오우... 드뎌 풀었습니다 ㅠㅠㅠ 힌트 감사합니다 ㅎㅎ 덕분에 시그널에 대해서 공부많이했습니다. 덤으로 리눅스에대해서도 엄청공부했네요... 개인적으로 힌트 안주셨으면 못풀었을 문제라고 생각합니다.. 어떻게 이런걸 찾아내시는지 신기하네욤.. -f : shell에 의해 만들어질 수 있는 파일의 최대 크기 (file size) ulimit 옵션중에 -f 는 위의 기능을 가지고있었습니다. 이 값을 0으로 만들고 otp를 실행해보면... 3.png 요런 에러창이 떠서 힌트주신대로 시그널을 공부해보니 파일 크기제한초과 시그널이 SIGXFSZ ...
by gee8195
Fri Oct 14, 2016 10:59 pm
Forum: CTF 타임
Topic: [풀이] otp
Replies: 2
Views: 570

Re: [풀이] otp

ulimit 이랑 sigign을 잘 이용하면 된다하셨느데.. sigign이 어떤건지 설명 부탁드려두 될까요? 위키백과에두 안나오네요 ㅠㅠ 1.png 일단 요부분 브레이크포인트걸고 rdx 값을 확인해서 입력하는 단순한 문제는 아닌거죠?;; 2.png 3.png ulimit 이랑 sigign으로 우회할수 있다고 하신건 랜덤값을 고정시킨다는 의미이신가요??아니면 다른 우회방법이 있는건가요? --------------------------------------------------------------수정-------------------...
by gee8195
Fri Sep 23, 2016 4:35 am
Forum: CTF 타임
Topic: [pwnable.kr] 풀이 해주셨으면 하는 문제 리스트 입니다~
Replies: 0
Views: 318

[pwnable.kr] 풀이 해주셨으면 하는 문제 리스트 입니다~

[Toddler's Bottle]
codemap
memcpy

[Rookiss]
ascii_easy
tiny_easy
echo2
otp

[Grotesque]
elf
wtf

[Hacker's Secret]
exploitable

지금 제 지식으로 풀수 없는게 많아서 일단 풀이해 주시면 이해할 수 있는것들로 모아놨습니다~
잘부탁 드립니다 ㅎ
by gee8195
Fri Sep 23, 2016 3:57 am
Forum: CTF 타임
Topic: [pwnable.kr] simple login - 50pt
Replies: 0
Views: 332

[pwnable.kr] simple login - 50pt

1.png 인증을 할수있겠냐고 묻습니다... 뚫어보겠습니다. 2.png 우선 ida로 main()함수부터 살펴보면, 입력을 받고 그 입력받은 값을 Base64Decode를 했을때 12글자보다 크면 "Worng Length"를 출력한뒤 종료하고, 크지않을경우 auth()함수를 호출합니다. 그럼 auth()함수를 한번 살펴보겠습니다. 3.png calc_m5()함수가 보이는군요... 입력받은 값을 Base64Decoding한뒤, calc_m5()함수로 계산한고 "f87cd601aa7fedca99018a8be88eda34" 값과 같으면...
by gee8195
Thu Sep 22, 2016 11:54 pm
Forum: CTF 타임
Topic: [pwnable.kr] flag - 7pt
Replies: 0
Views: 283

[pwnable.kr] flag - 7pt

1.png 흠... packed present를 받았다고 힌트를 주는군요... 덤으로 reversint task 이 정보로도 언패킹후 리버싱하면 된다는걸 알 수 있습니다. 2.png 일단 ida로 열어보면 sp-analysis failed 라고 강렬하게 보입니다. strings 명령어를 사용해봐야겠습니다. 3.png 첫줄에 UPX라고 나옵니다... UPX 언패킹 툴이 필요함으로 구글 에서 적당히 받은뒤 언패킹해 보겠습니다. 4.png 언패킹을 했으니 다시 ida로 열어보겠습니다. 5.png 이번엔 정상적으로 디버깅이 됬습니다. 바...
by gee8195
Thu Sep 22, 2016 11:13 pm
Forum: CTF 타임
Topic: [pwnable.kr] collision - 3pt
Replies: 0
Views: 270

[pwnable.kr] collision - 3pt

1.png 이번 문제는 collision입니다~ 2.png check_password를 보시면 char형태로 받은 인자를 int 형태의 정수4byte로 바꾸는 걸 볼수 있습니다... 그리고 밑에 보면 argv[1]의 크기는 20byte... argv[1] 에 0x21dd09ec를 20byte크기로 리틀 엔디언 방식으로 입력해 주면 되겠군요... 우선 0x21dd09ec의 값을 5로 나눠서 몫과 나머지를 살펴보면... 3.png 몫과 나머지 값을 알았습니다. 그러면 우선 0x6c5cec8를 4번 입력하고 0x6c5cecc 를 한번 ...
by gee8195
Wed Sep 21, 2016 11:23 pm
Forum: CTF 타임
Topic: [pwnable.kr] passcode - 10pt
Replies: 0
Views: 323

[pwnable.kr] passcode - 10pt

후... 이번문제 꽤나 머리아팠습니다 ㅠㅠ 1.png 일단 접속하는 화면을 보면 컴파일시에 에러가났지만 누가 신경쓰겠냐는 힌트가 있습니다. 그럼 소스를 한번 보겠습니다. 2.png 3.png 컴파일시에 에러가 난다 했으니 해당 소스로 리눅스 환경에서 컴파일 해봤습니다. 일단 에러를 보니 scanf()사용시에 &(주소연산자)를 빠트렸군요... 주소연산자는 해당 변수의 주소를 얻는 역할을 하는데,이를 빠트리면 입력한 값이 주소가 될수가 있습니다. 한가지 오류가 더 있는데 리눅스 환경에서 fflush(stdin)은 제 기능을 하지 못합니...
by gee8195
Wed Sep 21, 2016 5:35 pm
Forum: CTF 타임
Topic: [pwnable.kr] bof - 5pt
Replies: 0
Views: 279

[pwnable.kr] bof - 5pt

1.png bof 문제를 풀어보겠습니다. 2.png 일단 소스를 확인해 보면 func()함수에 bof 취약점이 있다는 것을 알 수 있습니다. main()함수 에서 func()함수를 호출하고 key값으로 0xdeadbeef값을 넘겨줍니다. func()함수에서는 key값이 cafebabe면 system("/bin/sh");를 실행하고 아니면 문자열을 출력하고 종료하는군요... 그럼 인자로 받은 0xdeadbeef 를 0xcafebabe로 덮어 씌어 주면 sh명령어를 실행할수 있겠습니다. 일단 메모리 구조를 파악하기 위해 gdb 로 열...
by gee8195
Wed Sep 21, 2016 4:22 pm
Forum: CTF 타임
Topic: [pwnable.kr] random - 1pt
Replies: 0
Views: 296

[pwnable.kr] random - 1pt

1.png 이번문제도 해당 호스트로 접속 해보겠습니다 2.png 소스를 보면 변수 random에 랜덤수를 저장하고 key값을 입력받아 비트연산을 한뒤 그값이 0xdeadbeef값과 같으면 플래그를 출력하는 구조입니다.. 이번 문제는 gdb로 random 값을 조회한뒤 그 값과 0xdeadbeef 값을 비트 연산하면 key 값을 알 수 있을것 같습니다. 3.png 일단 gdb로 열어서 봑인해보면 random의 위치는 rbp-0x4에 위치하고, key의 위치는 rbp-0x8에 위치하는걸 알수 있습니다. random에 eax값을 넣는 ...