#처음 페이지를 들어가서 로그인을 하면 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 되었다.

 

+ Recent posts