#처음 페이지를 들어가서 로그인을 하면 GET 방식으로 데이터가 전송된다.
#쿠키를 확인해보면 PHP SSID 이외에 PHP USER라는 쿠키가 하나 더 보인다.
#'Cyber Chef 라는 사이트가 있는데, 인코딩된 데이터를 자동으로 디코딩해준다.(마법봉)
#소스를 확인함으로써, 해당 페이지는 php기반임을 알 수 있다. 그리고 GET방식으로 ID/PW를 체크.
- PHP의 느슨한 비교 취약점을 생각해볼 수 있다.
#패스워드 파라미터를 배열로 변경해 주니 로그인이 성공적으로 되었다.
#페이지에는 아무것도 없으므로, 소스코드 분석.
- hidden처리된 태그가 보인다.
#주석에 맞게 바꿔주면 버튼들이 활성화된다.
- 아무 파일을 업로드해보면, 업로드 경로 등이 나오게 된다.
- 실행되는 것을 볼 수 있다.
#bind shell을 업로드하고 실행하면 system command가 적용되는 것을 볼 수 있다.
#바로 상위경로에서 유저 정보를 확인할 수 있다. (user_pass.txt)
- ID는 6자리이고 나머지 정보들이 보인다.
- uid가 1000번부터는 일반 사용자이므로, 1000번 이상이면서 6자리의 사용자를 찾아보면
하나의 사용자가 확인됨을 알 수 있다.
#ssh로 연결을 시도하니 연결되었다.
#버전 정보 확인
- 버전과 단서같은 것들이 주어졌다.(핵챔에서는 단서가 누락되고, 추가 힌트가 나갔다.)
#단서를 응용(Y.CTF)
- CVE-2000-0506이 보인다.
- 핵챔 예선에서는 힌트가 "패션의 완성은 머리" 로 나갔는데, 이 취약점은 setcap에 대해 다루고 있다.
#setuid걸린 파일은 존재하지 않음.
#getcap
- getcap 명령어에 -r 옵션으로 cap이 걸린 파일을 찾을 수 있다.
- /etc/bin파일을 실행시키니 python3가 실행된다.
#python os 모듈을 통해 root로 escalation 되었다.
'CTF_WriteUP > TheHackingChampionShipJunior_2021' 카테고리의 다른 글
[핵챔 2021 본선] - Tiny_blog (Webnable) (0) | 2021.11.15 |
---|