일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- FastAPI
- Python
- 소프트맥스 함수
- 순전파
- 딥러닝
- 우분투
- 책
- 리뷰
- flag
- 역전파
- PHP
- 파이썬
- 백준
- CTF
- 기울기
- 신경망
- C언어
- 코딩
- 아파치
- sgd
- PICO CTF
- Python Challenge
- PostgreSQL
- 오차역전파법
- Apache2
- AdaGrad
- picoCTF
- 설치
- 신경망 학습
- HTML
- Today
- Total
Story of CowHacker
PicoCTF 13번 문제 ( keygenme-py ) 본문
안녕하세요 Cow Hacker입니다.
https://play.picoctf.org/practice/challenge/121?page=2
keygenme-py라는 제목의 13번 문제를 풀어 볼 거다.
키진미?
키젠미?
문제의 제목은 지놈을 잘못 적었다고 한다.
일단 문제에 첨부된 파이썬 파일을 설치했다.
243줄을 가진 코드 파일이었다.
코드를 실행시켜보니 위 사진처럼 출력됐다.
먼저 a를 입력해 Astral 마나를 구하는 가 싶었다.
a를 입력하니, SOL 이란 행성이 가장 가까운 행성이라고,
어디로 가고 싶냐 묻는 질문이 나왔다.
코드를 보니 a를 입력받으면 estimate_burn() 함수가 출력된다고 한다.
코드를 보니, star_db_trial라는 리스트에서 값을 가져오는 거 같아서 어떤 리스튼지 봤다.
많은 행성 들이다. 숫자가 붙어 있었다.
난 Ross 154를 선택할 거다.
그냥 그 숫자에 2 제곱, 3 제곱 한 값을 보여줬다.
음.. b를 한번 봐야 했다.
정식판 사용이라니!
c를 입력받을 때 출력되는 함수를 봤다.
if문 check_key함수를 봐야겠다.
Key_full_template_trial의 글자 수와 내가 입력한 글자 수가 같아야 else문으로 넘어가는 걸 확인했다.
Key_full_template_trial라는 변수는 위 3개의 변수를 합친 녀석이었다.
글자의 길이는 32였다.
하지만 if문을 무시하고 else문으로 와도 for문에서 항상 False가 나올 수밖에 없었다.
Key변수와 Key_part_static1_trial변수의 길이는 다르기 때문이다.
그럼 if문으로 넘어왔을 땐 어떤 행동을 하는지 봤다.
username_trial변수에 해쉬 sha256을 통해 헥사 값으로 내보는 모양새였다.
그리고 이 값은 dynamic part라고 한다.
출력된 값을 보면 0d208392가 나왔다.
나온 값을 xxxx... 된 곳에 넣고 입력하면 py파일 생성을 한다.
처음, 정식판을 사용하라는 녀석이 만들어진 것이다.
정식판을 사용하라는 구문이 없는 것이 출력됐다.
13번 문제 풀었다.
키 찾는거 솔직히
지 멋대로 코드 수정해 Flag
놈 을 찾아 내도 됐잖아?
'공부 > PicoCTF' 카테고리의 다른 글
PicoCTF 12번 문제 ( Tab, Tab, Attack ) (1) | 2022.04.03 |
---|---|
PicoCTF 11번 문제 ( Static ain't always noise ) (2) | 2022.03.14 |
PicoCTF 10번 문제 ( Mind your Ps and Qs ) (2) | 2022.02.08 |
PicoCTF 9번 문제 ( GET aHEAD ) (5) | 2022.02.02 |
PicoCTF 8번 문제 ( Stonks ) (2) | 2022.01.31 |