2024. 4. 17. 15:53ㆍhacking : p_study/Dreamhack
CTF 첫번째 문제이다.
php언어로 작성된 문제이고 알맞은 Input값을 통해 flag를 획득하는 문제라는 것을 설명을 통해 확인 할 수 있었다.
우선 서버를 생성해보자.
서버 생성 후 들어와보니 이렇게 input1,2값을 입력하여 제출할 수 있도록 되어있다.
test겸 1,2를 입력하여 제출해보았다.
Try again이라 뜬다.
url 넘어간걸 확인했을 때, post방식인 것 같고, check.php를보니 코드를 한번 확인해보는 것이 좋겠다.
제공되는 문제파일을 다운받았다.
확인해보니 php파일이 이렇게 3개 있었고, 난 check.php부터 확인해보았다.
post 방식이고 input_1과 input_2의 문자열에 대한 정보가 적혀있었다.
input_1의 길이는 4보다 작고 input_1은 "8"보다 작으면서 "7.A"보다 작으면서 "7.9"보다는 커야한다.
input_2의 길이는 3보다 작고 1보다 크면서 74보다 작고 "74"보다는 커야한다.
그렇다면 echo$flag 라고 되어있는 걸 보니 flag를 띄워준다는 의미인 것 같다.
이걸 다 조합해보면 input_1의 문자열 길이는 1,2,3중 하나고 "8"보다 작으면서 "7.A"보다 작으면서 동시에 "7.9"보다 커야하고 여기서 저 숫자들은 문자로 표현되어있으니 아스키 코드인 것 같다.
그리고 input_2는 1보다 크고 3보다 작은 문자열이니 2의 길이를 가질 것이고 숫자 74보다는 작으면서 "74"(아스키 코드) 보다는 큰 값을 가질 것이다.
이진 번역기 / 변환기 : 이진, 십진, 헥사, 아스키 코드 및 일반 텍스트 | RAKKOTOOLS🔧
아스키 코드 변형을 위해 위의 변환기를 사용했다.
10진수로 바꿔주면, 554657~554665 사이의 값을 바꿔주면 될 것같다. 난 554659을 해보겠다.
input_1 에는 7.; 값을 넣겠다.
이제 input_2에 넣을 값을 찾아보자.
숫자 74부터 5552까지의 숫자 중에서 하나를 집어넣으면 될 것같다.
그냥 아무 숫자를 넣어봤는데 , 플래그는 안뜨고 Good try란다.
다른 아스키코드를 넣었어야했나? 싶어서 찾아봤다.
찾아보니까 74~ 5552사이에 아스키코드를 넣어줘야한다는데, 나도 그사이에 어떤 값을 넣은 것 같은데 왜 안된걸까?
이 부분은 조금더 고민이 필요할 것같다.
이번주차 문제는 둘다 신박했지만, 나름 여차저차 도전해보면서 풀기 좋았던 것 같다.
아직은 갈길이 멀지만 열심히 해야겠다.
끝!
[ 참고 자료 ]
(드림핵)php7cmp4re : 네이버 블로그 (naver.com)
'hacking : p_study > Dreamhack' 카테고리의 다른 글
4주차_CTF과제(Dreamhack : baby-union) (0) | 2024.05.04 |
---|---|
4주차_CTF과제(Dreamhack : phpreg) (0) | 2024.05.04 |
3주차_CTF과제(Dreamhack : Flying Chars) (0) | 2024.04.17 |
2주차_CTF과제(Dreamhack : Carve Party) (0) | 2024.03.29 |
2주차_CTF과제(Dreamhack : devtools-sources) (0) | 2024.03.29 |