no image
Basic RCE L12
Key값과 주소영역을 찾으라고 하는군요! 일단 Key 값을 먼저 찾아보도록 합시다 :D 프로그램을 실행 시키니 역시 Key을 입력하라고 하네요! OEP는 패킹이 되어있지 않고 너무 깔끔합니다! 그래서 문자열로 찾아보니 메시지 박스 성공문자와 이상한 긴 문자열이 존재하더군요! 찾아서 가보니 긴 문자열이 암호화되는 것 처럼 마냥 계속해서 반복 루틴을 하게 됩니다! 그러나 아무런 의미는 없었던 것이었죠! CALL 함수를 들어가봅시다! 뭐 그냥.. 음.. Fake 인것 같죠? :D 최종적으로 보면 40107D 함수에 EAX가 7A2896BF가 되어야 성공메세지를 띄울 수 있습니다 :D Key 값으로 100을 입력해줘보았습니다! 그런데 EAX가 64로 들어가는거 보이시나요? 10진수 100이 16진수로 64임을 ..
2020.02.28
no image
Forensics - Welcome_Forensics
아무리 봐도 플래그 처럼 보입니다! 그런데 잘 보이지 않는군요..? 두가지 방법이 있습니다! 첫번째 방법! 두번째 방법! 이만 간단한 포렌식 첫번째 문제풀이였습니다 :D
2020.02.25
no image
Old - 54 (score:100)
문제로 들어오니 Password is 뒤에 하나씩 글자가 생겼다 사라지네요 ! 소스코드를 봅시다 :D answer 함수를 주목해서 봅시다 ㅎㅎㅎ! 문자를 가져온 후 setTimeout함수로 계속해서 문자를 호출하는 것으로 보이는군요! 그리고 최종적으로 아무런 문자가 없으면 "?"로 끝이나게 되는 구조입니다! 자세히보면 aview.innerHTML에 새로운 값을 대입하기 때문에 문자가 계속해서 바뀌게 되는군요! 그럼 간단하게 이어붙이면 되지 않을까요 :D ! 수정된 코드입니다 ! 어짜피 "?"는 필요없기 때문에 지워버렸고 제일 중요한건 "=" 에서 "+=" 로 연산자를 바꿈으로써 계속 이어나가게 했습니다 :D ! 개발자 환경에서 콘솔로 이 소스코드를 실행시키면.. 쨘! 플래그가 출력이 되네용 :D! 이만 ..
2020.02.25
no image
Basic RCE L11
문제는 OEP와 Stolenbyte를 찾는 문제입니다 :D PEiD로 프로그램을 확인해보니 UPX로 패킹이 되어 있네요 ! Stolenbyte를 찾아야하니 언패킹하지 않고 바로 찾겠습니다 :D 이제 POPAD 찾아가는건 능숙하죠 ㅎㅎㅎ?! 앞의 문제에서 계속해왔던거라 설명 생략하고 진행하겠습니다! POPAD 다음 PUSH 명령어가 보입니다! Stolenbyte임을 알 수 있죠 ㅎㅎㅎ? 계속 내려가서 OEP로 가봅시다! 40100C부터 있네요! 그럼 OEP가 40100C라고 생각할 수도 있지만.. OEP는 401000이겠죠 ㅎㅎㅎ? 그리고 총 12byte의 NOP이 존재합니다! 그럼 12byte의 stolenbyte가 있어야하니까 [POPAD] 그림에서 PUSH 명령어 3개가 Stolenbyte가 되겠네요..
2020.02.24
no image
Old - 39 (score:100)
입력란이 하나가 존재하는군요! 소스코드를 봅시다 :D 소스코드를 살펴보니 역슬래쉬(\)는 공백 처리 싱글쿼터(')는 ''로 처리된다고 하네요! 그리고 15글자로 문자열을 끊어버리는군요 ㅎㅎㅎ 쿼리에서 자세히보면 id 뒤에 싱글쿼터가 존재하지 않는거 보이시나요 :D ? 저 취약점을 이용해서 풀어보겠습니다! id는 당연히 admin으로 해야하는 암묵적인 느낌을 가지고 해야하는데 mysqlql에서는 "=" 연산 작동 시 공백을 이용할 수가 있습니다! 'admin' = 'admin ' 위의 두개의 연산이 성립이 됩니다! 밑의 사이트에서 정말 잘 설명되어 있으니 한번 보시길 바래요 :D https://woowabros.github.io/study/2018/02/26/mysql-char-comparison.html..
2020.02.24
no image
Reversing - Reversing Me
문제를 보니 어떤 코드가 존재합니다 :D 한번 확인해볼까요 ! serial 값이 들어있고 키를 입력하여 복호화된 값을 맞추라고 하는거군요 :D 그럼 간단하게 디코딩을 통해 flag를 출력시키면 되겠네요 ! 쨘 ! 이상 문제풀이를 마치겠습니다 :D
2020.02.24
no image
Reversing - Welcome_REV
HackCTF의 리버싱 문제를 풀어보도록 하겠습니다! 실행을 시켜보니 패스워드를 입력하라고 합니다! 음.. 그럼 비교하는 부분이 있지 않을까요 :D ? 바이너리 부분을 보기 위해 strings 명령어를 이용해 보도록 합시다! 명령어를 이용하여 확인해보니 base64로 보이는 문자열이 존재합니다! 확인을 해보니 Flag네용 :D 이만 리버싱 첫번째 문제 풀이였습니다!
2020.02.24
no image
Old - 38 (score:100)
문제로 들어가니 log를 인젝션하라네요? 소스코드를 봅시다 :D 소스코드를 보니 아무런게 없고 admin 페이지가 있다고합니다! admin.php에 접속하여 보니 log viewer가 존재합니다! 그리고 ip와 입력했던 정보가 존재하는군요 :D admin을 입력해 보겠습니다! admin이 아니라는군요..? 그럼 admin을 로그에 남기면 풀리겠구만 했습니다 :D 개행을 이용해서 문제를 풀어보겠습니다! 소스코드에 input 타입을 textarea로 변경하여 쉽게 개행하여 입력이 되도록 하면 간단하겠죠 :D ? 요런식으로 입력하게 되면 아마 admin으로 로그인되지 않을까 싶습니다 :D admin.php로 접속하니 쨘! 하고 풀리네요 :D 이만 Old 38번 문제 풀이였습니다!
2020.02.23

Basic RCE L12

HelloMG
|2020. 2. 28. 18:53

Basic RCE L12

Key값과 주소영역을 찾으라고 하는군요!

 

일단 Key 값을 먼저 찾아보도록 합시다 :D

프로그램 실행

프로그램을 실행 시키니 역시 Key을 입력하라고 하네요! 

OEP

OEP는 패킹이 되어있지 않고 너무 깔끔합니다!

 

그래서 문자열로 찾아보니 메시지 박스 성공문자와 이상한 긴 문자열이 존재하더군요!

루틴

찾아서 가보니 긴 문자열이 암호화되는 것 처럼 마냥 계속해서 반복 루틴을 하게 됩니다!

그러나 아무런 의미는 없었던 것이었죠!

 

CALL 함수를 들어가봅시다!

CALL 함수

뭐 그냥.. 음.. Fake 인것 같죠? :D

 

최종적으로 보면 40107D 함수에 EAX가 7A2896BF가 되어야 성공메세지를 띄울 수 있습니다 :D

Key 값으로 100을 입력해줘보았습니다!

Key 100

그런데 EAX가 64로 들어가는거 보이시나요?

10진수 100이 16진수로 64임을 눈치 채셔야 합니다 :D

 

그럼 답이나왔죠!

바로 계산기를 띄워봅시다 :D

계산기

EAX가 7A2896BF되어야 하니

7A2896BF값을 반대로 10진수로 변환해서 넣으면 되지 않을까요 :D !?

Key 2049480383

역시나 예상대로 맞았군요 :D

성공메시지 박스가 띄워졌으니 Key 값은 2049480383이네요!

 

그럼 이제 Key값을 메시지 박스에 띄우기 위해 HxD로 조작을 해줘야합니다!

성공 문자열

성공문자열에 위치를 확인했습니다!

 

Key 값으로 바꿔줘볼까요!

Key값으로 변경

이렇게 변경되었습니다!

그럼 최종적으로 위치는 0D3B ~ 0D45가 되겠군요!

 

여기서 왜 뒤에 00이 포함되나요? 33이 끝이 아닌가요? 할 수도 있습니다!

문자열은 반드시 끝임을 나타내는 00이 붙기 때문에 00까지 새어주셔야 합니다 :D

 

이렇게 문제풀이 마치도록 하겠습니다 !

'CTF > CodeEngn.kr' 카테고리의 다른 글

Basic RCE L14  (0) 2020.03.28
Basic RCE L13  (0) 2020.03.22
Basic RCE L11  (0) 2020.02.24
Basic RCE L10  (0) 2020.02.23
Basic RCE L09  (0) 2020.02.15

Welcome_Forensics 문제

아무리 봐도 플래그 처럼 보입니다!

그런데 잘 보이지 않는군요..?

 

두가지 방법이 있습니다!

첫번째 방법!

새 탭에서 이미지 열기

두번째 방법!

이미지를 다른 이름으로 저장

이만 간단한 포렌식 첫번째 문제풀이였습니다 :D

'CTF > HackCTF' 카테고리의 다른 글

Forensics - so easy?  (0) 2020.02.29
Forensics - Question?  (0) 2020.02.28
Reversing - Reversing Me  (0) 2020.02.24
Reversing - Welcome_REV  (0) 2020.02.24
Cryptography - Classic Cipher-2  (0) 2020.02.14

Old 54번 문제

문제로 들어오니 Password is 뒤에 하나씩 글자가 생겼다 사라지네요 !

 

소스코드를 봅시다 :D

소스코드

answer 함수를 주목해서 봅시다 ㅎㅎㅎ!

 

문자를 가져온 후 setTimeout함수로 계속해서 문자를 호출하는 것으로 보이는군요!

그리고 최종적으로 아무런 문자가 없으면 "?"로 끝이나게 되는 구조입니다!

 

자세히보면 aview.innerHTML에 새로운 값을 대입하기 때문에 문자가 계속해서 바뀌게 되는군요!

 

그럼 간단하게 이어붙이면 되지 않을까요 :D !

수정된 코드

수정된 코드입니다 !

어짜피 "?"는 필요없기 때문에 지워버렸고 제일 중요한건 "=" 에서 "+=" 로 연산자를 바꿈으로써

계속 이어나가게 했습니다 :D !

 

개발자 환경에서 콘솔로 이 소스코드를 실행시키면..

flag

쨘! 플래그가 출력이 되네용 :D!

 

이만 54번 문제풀이를 마치도록 하겠습니다 !

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 32 (score:150)  (0) 2020.03.05
Old - 25 (score:150)  (0) 2020.02.29
Old - 39 (score:100)  (0) 2020.02.24
Old - 38 (score:100)  (0) 2020.02.23
Old - 26 (score:100)  (0) 2020.02.14

Basic RCE L11

HelloMG
|2020. 2. 24. 17:43

Basic RCE L11 문제

문제는 OEP와 Stolenbyte를 찾는 문제입니다 :D

PEiD

PEiD로 프로그램을 확인해보니 UPX로 패킹이 되어 있네요 !

Stolenbyte를 찾아야하니 언패킹하지 않고 바로 찾겠습니다 :D

POPAD

이제 POPAD 찾아가는건 능숙하죠 ㅎㅎㅎ?!

앞의 문제에서 계속해왔던거라 설명 생략하고 진행하겠습니다!

 

POPAD 다음 PUSH 명령어가 보입니다!

Stolenbyte임을 알 수 있죠 ㅎㅎㅎ?

 

계속 내려가서 OEP로 가봅시다!

OEP

40100C부터 있네요!

그럼 OEP가 40100C라고 생각할 수도 있지만.. OEP는 401000이겠죠 ㅎㅎㅎ?

 

그리고 총 12byte의 NOP이 존재합니다!

그럼 12byte의 stolenbyte가 있어야하니까

[POPAD] 그림에서 PUSH 명령어 3개가 Stolenbyte가 되겠네요 :D

 

이렇게 쉽게 풀 수 있었습니다 :D

앞에서 계속 풀어왔던 문제를 복습하는 듯한 느낌이네요 !

 

이만 문제풀이 마치겠습니다 :D

'CTF > CodeEngn.kr' 카테고리의 다른 글

Basic RCE L13  (0) 2020.03.22
Basic RCE L12  (0) 2020.02.28
Basic RCE L10  (0) 2020.02.23
Basic RCE L09  (0) 2020.02.15
Basic RCE L08  (0) 2020.02.14

Old 39번 문제

입력란이 하나가 존재하는군요!

 

소스코드를 봅시다 :D

소스코드

소스코드를 살펴보니

역슬래쉬(\)는 공백 처리

싱글쿼터(')는 ''로 처리된다고 하네요!

그리고 15글자로 문자열을 끊어버리는군요 ㅎㅎㅎ

 

쿼리에서 자세히보면 id 뒤에 싱글쿼터가 존재하지 않는거 보이시나요 :D ?

 

저 취약점을 이용해서 풀어보겠습니다!

 

id는 당연히 admin으로 해야하는 암묵적인 느낌을 가지고 해야하는데

mysqlql에서는 "=" 연산 작동 시 공백을 이용할 수가 있습니다!

 

'admin' = 'admin       '

위의 두개의 연산이 성립이 됩니다!

 

밑의 사이트에서 정말 잘 설명되어 있으니 한번 보시길 바래요 :D

https://woowabros.github.io/study/2018/02/26/mysql-char-comparison.html

 

MySQL에서 'a' = 'a '가 true로 평가된다? - 우아한형제들 기술 블로그

DB 알못의 어떤 리서치

woowabros.github.io

 

 

그럼 어떻게 풀면될까요 :D ?

풀이

쨘 ! 요렇게 풀면 됩니다 ㅎㅎㅎㅎ

'admin          ' 이런식으로 입력하면

싱글쿼터가 2개가 되지만 15, 16번째 위치에 속하기 때문에 뒤의 16번째는 짤려서 15번째 쿼터만 남게되죠!

그럼 'admin'으로 인식이 되어집니다 !

풀이 성공

그럼 이만 문제풀이를 마치겠습니다 !

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 25 (score:150)  (0) 2020.02.29
Old - 54 (score:100)  (0) 2020.02.25
Old - 38 (score:100)  (0) 2020.02.23
Old - 26 (score:100)  (0) 2020.02.14
Old - 24 (score:100)  (0) 2020.02.13

Reversing - Reversing Me

HelloMG
|2020. 2. 24. 16:44

Reversing Me

문제를 보니 어떤 코드가 존재합니다 :D

 

한번 확인해볼까요 !

소스코드

serial 값이 들어있고 키를 입력하여 복호화된 값을 맞추라고 하는거군요 :D

 

그럼 간단하게 디코딩을 통해 flag를 출력시키면 되겠네요 !

복호화를 위한 소스코드
flag

쨘 !

 

이상 문제풀이를 마치겠습니다 :D

'CTF > HackCTF' 카테고리의 다른 글

Forensics - Question?  (0) 2020.02.28
Forensics - Welcome_Forensics  (0) 2020.02.25
Reversing - Welcome_REV  (0) 2020.02.24
Cryptography - Classic Cipher-2  (0) 2020.02.14
Cryptography - Classic Cipher-1  (0) 2020.02.13

Reversing - Welcome_REV

HelloMG
|2020. 2. 24. 15:48

Welcome_REV

HackCTF의 리버싱 문제를 풀어보도록 하겠습니다!

실행

실행을 시켜보니 패스워드를 입력하라고 합니다!

 

음.. 그럼 비교하는 부분이 있지 않을까요 :D ?

바이너리 부분을 보기 위해 strings 명령어를 이용해 보도록 합시다!

명령어를 이용하여 확인해보니 base64로 보이는 문자열이 존재합니다!

확인을 해보니 Flag네용 :D

flag

이만 리버싱 첫번째 문제 풀이였습니다!

'CTF > HackCTF' 카테고리의 다른 글

Forensics - Welcome_Forensics  (0) 2020.02.25
Reversing - Reversing Me  (0) 2020.02.24
Cryptography - Classic Cipher-2  (0) 2020.02.14
Cryptography - Classic Cipher-1  (0) 2020.02.13
Cryptography - Smooth CipherText  (0) 2020.02.12

Old 38번 문제

문제로 들어가니 log를 인젝션하라네요?

 

소스코드를 봅시다 :D

source code

소스코드를 보니 아무런게 없고 admin 페이지가 있다고합니다!

admin.php

admin.php에 접속하여 보니 log viewer가 존재합니다!

그리고 ip와 입력했던 정보가 존재하는군요 :D

admin

admin을 입력해 보겠습니다!

you are not admin

admin이 아니라는군요..?

그럼 admin을 로그에 남기면 풀리겠구만 했습니다 :D

textarea

개행을 이용해서 문제를 풀어보겠습니다!

소스코드에 input 타입을 textarea로 변경하여 쉽게 개행하여 입력이 되도록 하면 간단하겠죠 :D ?

Injection

요런식으로 입력하게 되면 아마 admin으로 로그인되지 않을까 싶습니다 :D

문제 풀이 성공

admin.php로 접속하니 쨘! 하고 풀리네요 :D

 

이만 Old 38번 문제 풀이였습니다!

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 54 (score:100)  (0) 2020.02.25
Old - 39 (score:100)  (0) 2020.02.24
Old - 26 (score:100)  (0) 2020.02.14
Old - 24 (score:100)  (0) 2020.02.13
Old - 18 (score:100)  (0) 2020.02.12