Top

[pwnable.kr]_Random문제풀이

모의해킹/[CTF] pwnable.kr

2022. 2. 27.

이번 건 비교적

난이도가 나쁘지 않습니다.

아무튼 이젠 본인 사정상

이 공부 저장 게시글은

여기까지로로 해야겠습니다.

늦어도 최대 올해 안에

버그 바운티 해봐야겠습니다

상황이 나아질 기미가 안 보입니다.

ε-(´・`)

원치 않는 일로 평일 아르바이트로

시간, 몸 다 버릴 바에야

평일에는 버그 바운티

주말에 아르바이트해야

그나마 덜 억울하겠습니다.

-`д´-

아무튼 계속 이어 작성합니다.

(ㆁᴗㆁ✿)

스샷. 1

자 먼저 지문을 마이웨이
직역으로 보겠습니다
Daddy, teach me how to use random value in programming!

(아따 프로그래밍에서 임의의 값을 사용하는 법 좀 알려달랑께?)

 

스샷. 2

 

그리고
ssh random@pwnable.kr -p2222

로 바로 접속합니다.

스샷. 3

먼저 파일 여부를 알아낸 다음

random.c 파일을 확인

해보겠습니다.

4바이트 의 랜덤 값과

입력값을 xor 연산을 해서

0xdeadbeef가 나오면

 

키값을 받는 프로그램입니다.

ANG? 랜덤 값이면 모든 경우의

수를 시도해 봐야 하는 건 아닌가?ōxō

수를 시도해 봐야 하는 건 아닌가?ōxō

로 생각할 수 있겠지만,

rand() 함수는 매번 바뀌는 시드 값을

주지 않으면 항상 일정한 값을

변환하게 됩니다. 이 일정하게 나오는

값을 알아내면 해답을 찾을 수 있습니다.

gdb를 통해 값을 추적해 봅시다.

스샷. 4
xor 연산을 하고,
0xdeadbeef

비교 연산을 하게 되는

eax의 값을 확인해

보면 될 것 같습니다.

스샷. 5

브레이크 포인트를 걸고

돌려서 0을 넣은 결과 eax에

0x6b8b4567

들어가 있는 것을 알 수 있습니다.

xor 0은 해도 값이 같게 나오기

때문에 rand()의 값은

0x6b8b4567 임을

알 수 있습니다.

즉 우리가 넣어야 할 값은

0xdeadbeef ^ 0x6b8b4567

통해서 찾을 수 있습니다.

스샷. 6 자바로 헥스연산

자바 프로그래밍으로

이 둘을 연산

결과 값은

0xB526FB88

스샷. 7

그리고 변환해주는

사이트로 가서 변환하면

3039230856

위와 같은 값이 출력

스샷. 8

출력된 값으로 입력하면

이렇게 키값을 획득

그리고 받아챙긴 키값을 가지고

스샷. 9

처음 화면으로 돌아와서

빈칸에 입력하고

auth 버튼을 누르면 됩니다.

미션 완료 동시에

1 포인트 받아 챙겨젔습니다.

그럼 다시 최초의 화면에

돌아 와보면 이렇게

완료되었다고 녹색

점선으로 표시가 됩니다.

긴 글을 보시느라 감사합니다.

수고하셨습니다(ㆁᴗㆁ✿)

좋은 하루 되시고 하시는 일 잘 되시고

날이 덥습니다 더위 먹지 않게 유의하시고

코로나 조심하세요

'모의해킹 > [CTF] pwnable.kr' 카테고리의 다른 글

[pwnable.kr] Fla_ 문제풀이  (0) 2022.04.10
[pwnable.kr]_Ieg문제풀이  (0) 2022.02.27
[pwnable.kr]_Input문제풀이  (0) 2022.02.27
[pwnable.kr]_passcode문제풀이  (0) 2022.02.27
[pwnable.kr]_Memcpy문제풀이  (0) 2022.02.27