Problem
How-To-Solve
문제 파일을 먼저확인 함.
기존의 XSS 구조와 엄청 다르진않음을 확인하였으나 홈페이지 내에서 필터링 방식을 확인해야 했음.
기존의 페이지와 크게 차이는 없음.
우선 script를 필터링하고 있음을 알았고 alert가 실행되지 않음을 확인하였음.
memo 접근 시 위 URL 내 memo필드를 업데이트 하는 것을 확인하였음.
flag 내 파라미터 삽입으로 memo에 flag를 띄우는 방식을 선택하기로 함.
우선 XSS를 실행하는 방법을 찾기위해 vuln(xss) page에서 테스트 후 진행하기로 함.
img를 통해 onerror를 엮어서 script를 실행하는 것에 성공을 함.
하지만 싱글쿼터(')를 활용하여 location으로 엮는 것이 싫기 때문에 다른 태그를 통한 활용을 참기로 함.
onload를 활용하여 직접 삽입을 시도하였고 성공함.
onerror보다는 삽입이 깔끔할 것으로 생각함.
그래도 둘 다 삽입을 진행해보려고 함.
우선 img 태그쪽을 먼저 진행함.
<img src=x onerror="javascript:location.href='/memo?memo='+document.cookie">
src로 넣으려고 하였으나 따로 실행이 되지않아 javascript로 직접삽입을 선택함.
정상실행을 확인함.
flag가 생성된 것을 확임함.
이제 onload를 활용하여 진행해보겠음.(개인적으로 더 좋아함)
<svg/onload=location.href="memo?memo="+document.cookie>
위에서 확인한 바와 마찬가지로 정상적으로 실행됨.
성공~!
왜 onload사용 시에는 javascript를 쓰지 않았는가?
onerror사용 시 img 태그를 활용함.
img태그는 html 태그로써 javascript 전환 변수를 선언해주어야 함.
반대로 onload는 javascript 태그임.
아무리 html 태그로써 사용한다 하더라도 내부는 javascript 태그로 선언되기 때문에 굳이 javascript:로 선언을 안해주어도 사용이 가능함.
다른 정보로써 저를 가르쳐주신다면 언제든지 좋아요!!!!!😊(저도 잘 아는 것은 아니기에;;;;)
'Wargame > dreamhack' 카테고리의 다른 글
session-basic (0) | 2023.01.30 |
---|---|
CSRF-2 (0) | 2023.01.30 |
proxy-1 (0) | 2022.02.07 |
devtools-sources (0) | 2022.02.07 |
Carve Party (0) | 2022.02.07 |