-
[Reversing] KeygenCTF write_up/Hack CTF 2019. 8. 5. 00:33
너무 오랜만에 문제를 접하게 됬습니다...
너무 나도 바쁜 일정에 새로운 문제가 나왔다고 해서 한번 풀어봤습니다.
값을 입력하니 아무일도 일어나지 않았습니다.
IDA를 이용해서 한번 확인해 보겠습니다.
먼저 fgets를 이용해서 값을 입력 받고 해당 값이 check_key 함수의 인자값으로 들어갑니다.
입력한 값의 길이가 9보다는 커야하고 0x40이라고 되어있지만 10진수로 64! 64보다는 작아야 합니다.
그리고 encoding함수의 인자값으로 들어가서 반환된 값이 아래와 같은 OO]oUU2U<sU2UsUsK 와 같아야 합니다.
매우 중요한 로직인 encoding 함수에 한번 들어가 보겠습니다.
해당 로직을 바탕으로 입력값을 추정할수 있는 브루트포스 코드를 작성해 보도록 하겠습니다
결과를 확인해 보면 다음과 같습니다.
하지만 입력하는 문자열 맨뒤가 &&로 되어 있는 것이 좀 의심이 됩니다.
fgets의 특성상 입력하는 문자열+ \n인 개행문자를 붙이게 됩니다.
그렇기 때문에 입력해야 하는 문자열은 A,d<&$+$''.+$&.& 에다가 엔터값인 \n 까지 해서 서버에 입력을 하면 다음과 같습니다.
Flag : HackCTF{Y0u_5ucc33d3d_w1th0ut_d1fficul7y?}
'CTF write_up > Hack CTF' 카테고리의 다른 글
[Web] LOL (0) 2019.08.17 [Web] 가위바위보 (0) 2019.08.17 [Reversing] Handray (0) 2019.06.27 [Forensics] Magic PNG (2) 2019.06.25 [Misc] 달라란 침공 (0) 2019.06.05