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

 

 

#대회 당시 배포된 소스코드 분석 (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 되었다.

 

#Main

 

#압축 해제 후 파일 분석

 - 힌트가 '-1'이었으므로, 역순으로 바꿔준다.

 

 

#rot 19로 해독

 - 여러가지 해독기에 넣고 돌린 결과, rot-19에서 해독되었다.

 - 제출 시 오답이라고 출력되는데 맨 앞자리가 대문자였다.

'HackCTF > Cryptography' 카테고리의 다른 글

HackCTF Classic Cipher - 2 [150]  (0) 2021.08.31
HackCTF Smooth ChiperText  (0) 2021.08.31

#Main

 

#압축파일 해제 후 분석

 - 분명히 PNG의 푸터가 있는데 바로뒤에 거꾸로 뒤집힌 푸터가 있다.

 

#파이썬 코드 작성

 - 해당 스크립트로 거꾸로 만든 다음, 메타데이터를 붙여넣고 파일을 만들면 플래그가 출력된다.

 

 

#end

 이것도 뒤집혀있다

'HackCTF > Forensic' 카테고리의 다른 글

HackCTF 잔상 - [250]  (0) 2021.08.30
HackCTF Terrorist - [200]  (0) 2021.08.30
HackCTF Magic PNG - [150]  (0) 2021.08.30
HackCTF 세상에서 잊혀진 날 찾아줘! - [150]  (0) 2021.08.30
HackCTF Secret Document - [150]  (0) 2021.08.30

#Main

 

 

#압축 해제 후 파일 분석

 - transposition cipher이므로, 전치암호인 것 같다.

 

 

#전치암호

Key로 'python'이 주어졌다. 

python을 알파벳 순서대로 숫자로 표현하면 465132 이고, 총 6자리이다.

이 것을 토대로 텍스트를 6글자씩 분할한 다음, 465132 순으로 변경해주면 된다.

 

 

#key에 맞게 변경

 

#end

'HackCTF > Cryptography' 카테고리의 다른 글

HackCTF Classic Cipher -1 [100]  (0) 2021.08.31
HackCTF Smooth ChiperText  (0) 2021.08.31

#Main

 - 복호화 문제인 것 같다.

 

 

#비즈네르 암호해독기

 - 카이사르 암호로 해결되지 않아서 비즈네르 암호로 해독한 결과 문장이 도출되었다.

 - 제출하니 오답플래그로 나와서 플래그값만 다시 해독했다.

 

 

#end

 

'HackCTF > Cryptography' 카테고리의 다른 글

HackCTF Classic Cipher -1 [100]  (0) 2021.08.31
HackCTF Classic Cipher - 2 [150]  (0) 2021.08.31

#Main

 

#프로그램 실행

 - 패스워드 검증을 한다.

 


#아이다로 분석

 - check_password 함수에서 패스워드 검사를 한다.

 

 - check_password 함수를 보니 base64로 인코딩된 듯한 문자열이 보인다.

 

 

#base64로 디코딩

#Main

 

 

#압축폴더 다운로드후 이미지 분석

 - 뭔가 채워넣어야 할 것 같다.

 

 

#QR코드 파워포인트로 채우고 인식

 

 

#end

'HackCTF > Misc' 카테고리의 다른 글

HackCTF Who am I ?  (0) 2021.08.30
HackCTF BF - [50]  (0) 2021.08.30
HackCTF Baseball Price - [50]  (0) 2021.08.30

#Main

 - 어셈블리 언어에 관련된 문제인데, RET가 ESP가 가리키는 값을 EIP에 저장하므로

   RET가 답이다.

 

 

'HackCTF > Misc' 카테고리의 다른 글

HackCTF QRCODE - [150]  (0) 2021.08.31
HackCTF BF - [50]  (0) 2021.08.30
HackCTF Baseball Price - [50]  (0) 2021.08.30

#Main

 - BF는 Brain Fuck 의 약자로, 예전에 개발된 프로그래밍 언어라고 한다.

 

 

#디코딩

 - https://www.dcode.fr/brainfuck-language

'HackCTF > Misc' 카테고리의 다른 글

HackCTF QRCODE - [150]  (0) 2021.08.31
HackCTF Who am I ?  (0) 2021.08.30
HackCTF Baseball Price - [50]  (0) 2021.08.30

+ Recent posts