티스토리 뷰

728x90
반응형

http://138.68.182.108:30963/login.php
http://138.68.182.108:30963/register.php

처음 접속하면 로그인 페이지가 나오고 그 옆에 Register 버튼을 눌러 회원가입 페이지로도 이동할 수 있습니다.

 

문제에서는 admin으로 접속하라는 것이 미션 목표였습니다. 그래서 저는 일단 Log In 에서 각종 bruteforce를 해보았지만 실패하였습니다. 그래서 Register에서 Username에 중복된 사용자이름을 기입하고 회원가입 시 User Exists라는 문구가 나오는 걸 활용해 관리자 계정의 아이디라도 알아내려고 하였지만 실패했습니다.

 

그래서 우선 아무런 계정으로 회원가입을 하였고, 쿠키 값으로써 아래와 같은 걸 확인할 수 있었습니다.

PHPSESSID=fs1t1jt9tmmq18crj30up72kn1;
iknowmag1k=RDn8dqh%2FwXvGd%2B8BTPBUwRf4b9sTnnG%2FLEinPPONcNC0NjH0Q5leag%3D%3D

 

iknowmag1k 부분이 눈에 띄었습니다. 해당 값은 로그인할 때마다 바뀌는 특징을 가지고 있었습니다.

그리고 우연하게 예전에 풀었던 Hacker101 ctf 문제 중 Encrypted Pastebin 문제와 유사한 듯 하였고 그와 같이 풀어보았습니다.

 

오라클 패딩 공격 도구인 padBuster를 사용하였습니다.

오라클 패딩 공격에 대한 자세한 설명은 다음 파일을 참고하시면 좋을 것 같습니다.

Padding Oracle Attack for beginner2 -kknock.pdf
0.72MB

 

padBuster 도구에 대한 설명은 다음 링크를 참고하시면 좋을 것 같습니다.

https://github.com/AonCyberLabs/PadBuster

 

AonCyberLabs/PadBuster

Automated script for performing Padding Oracle attacks - AonCyberLabs/PadBuster

github.com

padBuster를 사용하여 암호화된 쿠키의 내용을 알아내보았습니다. 실제로는 결과가 나오기까지 시간이 걸립니다.

perl padBuster http://138.68.182.108:30117/profile.php I21V+4GdWmDEcpMKixmjo/az++nL6BIzu6VGlTD0iCICZOtmgtRhdg== 8 -cookies "iknowmag1k=I21V+4GdWmDEcpMKixmjo/az++nL6BIzu6VGlTD0iCICZOtmgtRhdg=="
-------------------------------------------------------
** Finished ***

[+] Decrypted value (ASCII): {"user":"root","role":"user"}

[+] Decrypted value (HEX): 7B2275736572223A22726F6F74222C22726F6C65223A2275736572227D030303

[+] Decrypted value (Base64): eyJ1c2VyIjoicm9vdCIsInJvbGUiOiJ1c2VyIn0DAwM=

-------------------------------------------------------

user 이름이 root인 건 제가 만든 계정의 아이디이고, role 이 눈에 띄었습니다. admin으로 바꾸었을 때 되지 않을까 싶어서 아래와 같이 다시 입력하고 실행해보았습니다. -plaintext 옵션을 주어 원하는 평문의 암호문 결과값이 나오도록 하였습니다.

perl padBuster http://138.68.182.108:30117/profile.php I21V+4GdWmDEcpMKixmjo/az++nL6BIzu6VGlTD0iCICZOtmgtRhdg== 8 -cookies "iknowmag1k=I21V+4GdWmDEcpMKixmjo/az++nL6BIzu6VGlTD0iCICZOtmgtRhdg==" -plaintext "{\"user\":\"root\",\"role\":\"admin\"}"
-------------------------------------------------------
** Finished ***

[+] Encrypted value is: EiGNiWI8SznxQ4ObbnTNi1ArH3JXLFFyNQMrqEHXZZwAAAAAAAAAAA%3D%3D
-------------------------------------------------------

그리고 위 값을 쿠키값으로 넣고 페이지를 새로고침했을 때 플래그가 나왔습니다.

 

728x90
반응형
댓글