XSS - 1
/vuln
우선 script 태가 실행이 되는 것을 확인할 수 있다. 이를 통해 script 태그를 삽입할 수 있을 것이다.
/flag
method는 POST이므로 POST 방식의 코드를 살펴보면,
param이라는 이름의 변수로 입력 값을 받아온다.
이후 check_xss 함수의 인자로 해당 입력 값과 flag의 값이 전달된다.
check_xss
param은 그대로이나, 뒤의 flag 값은 쿠키로 받도록 설정되고, read_url 함수를 통해
url에는 아래 값이,
cookie에는 flag 값이 들어가게 된다.
/memo
memo라는 이름을 get으로 받아 text에 저장하고,
memo_text에는 받은 text를 개행문자와 함께 저장한 후 render_template을 통해 memo.html 파일에 memo 값으로 전해준다.
그러므로 memo_text에 cookie값을 넣으면 될 것이다.
Exploit
처음 넣은 페이로드
그런데 wrong 문구가 떴다.
이는 param 전달 과정에서 잘못된 것이고,
다시 코드를 살펴보니
루프백 주소를 가져와 여기다가 cookie를 삽입하는 것처럼 보였다.
그래서 삽입한 코드는 아래와 같다.
XSS - 2
/vuln
이번엔 script 태그가 실행이 되지 않으므로 다른 방법을 찾아봐야한다.
이 외의 나머지 페이지는 XSS - 1 문제와 동일한 것 같다.
하지만 script 태그가 실행이 되지 않아 memo에 script 태그를 통해 삽입하는 것은 불가능해 보인다.
Exploit
그렇기에 일부러 오류를 발생시키고, 오류가 발생했을 시에 실행되는 이벤트를 이용하였다.
img src는 x인데, 이는 존재하지 않으므로 onerror 이벤트 핸들러가 작동하고, 이를 통해 memo 값을 넣어줄 수 있다.
'Hacking > web' 카테고리의 다른 글
[Web] SQL Injection (0) | 2024.07.01 |
---|---|
[Web] 클라이언트단 - XSS, Open Redirection, CSRF (0) | 2024.07.01 |
[Web] Client Mitigation (0) | 2024.07.01 |