#로그인 페이지가 보인다.

 

 

#대회 당시 배포된 소스코드 분석 (password.php)

 

 

#로그인

 

 

#설정에 들어가면 패스워드 변경이 있다.(그 이외엔 작동안함).

 

 - 프록시로 찍어보자.

 - 파라미터들이 사이좋게 전송된다.

 

 

#설정 소스코드 분석

 - $a 파라미터는 user(변경 후의 ID)이고 'FILTER_FLAG_NO_ENCODE_QUOTES' 옵션이 하나 더 걸려있으므로 수상하다.

 

 

#쿼리가 "user" 식으로 전송된다고 가정하고, system command를 파라미터에 끼워본다.

 

 - user=polaris";system('ls');" 식으로 넣으면, user="polaris";system('ls');" ";pass="passwd" 형태로

   전송될 것이다.

 

 

#로그인 할 때, RCE가 터지는 것을 확인할 수 있다. (로그인 시도 시 인터셉트)

 

 

#접속정보 탐색

 - ls /home

 

 - user 'polaris'와 'www-data'가 보인다.

 

 - ls /home/www-data

 

 - user.txt 파일을 확인했다.

 

 - cat /home/www-data/user.txt

 

 - 접속 정보가 표시되었다.(port와 비밀번호는 각 팀마다 달랐음.)

 

 

#시스템 접근(ssh)

- 난 일반 사용자이지만, 최상위 권한으로 명령어를 실행하고 싶다고 한다.

 

 

#sudo 확인

 - sudo의 버전이 1.9.5이고, 비밀번호를 물어본다.

 

 

#'sudo 1.9.5 privilege escalation' 문장을 구글에 입력하면, CVE-2021-3156(Baron Samedit)이라는 CVE가 검색된다.

 - git 명령어가 사용 가능해 보이니, github에서 exploit code를 가져오겠다.

 

 

#git으로 exploit code download 후 escalation

 - 참고 : https://github.com/Rvn0xsy/CVE-2021-3156-plus

 

 

 

 

 

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