二十七:XSS跨站之程式碼及httponly繞過
阿新 • • 發佈:2021-01-23
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123085721174-937912649.png)
**httponly:如果給某個 cookie 設定了 httpOnly 屬性,則無法通過 JS 指令碼 讀取到該 cookie 的資訊,但還Application 中手動修改 cookie,所以只是在一定程度上可以防止 XSS 攻擊,不是絕對的安全**
### 雖然設定了httponly之後拿不到cookie,但是還是存在xss跨站語句,阻止的僅僅是獲取cookie
可以直接拿賬號密碼,cookie登入.
瀏覽器未儲存讀取密碼:需要xss產生於登入地址,利用表單劫持
瀏覽器儲存賬號面:產生在後臺的XSS,例如儲存型XSS
### 手工判斷xss跨站漏洞:
#### 第一關:
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123085940054-143798845.png)
#### 第二關:
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090049932-1303317658.png)
被轉義,檢視原始碼。
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090100239-961200321.png)
存在htmlsecialchars()函式:
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090110702-2001815656.png)
把符號轉換為實體化標籤,xss經常過濾的情況
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090128238-450664930.png)
#### 第二關:
閉合前面的雙引號,">
#### 第三關:
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090258747-2074125647.png)
還是對<>進行了轉義,利用表單的滑鼠點選屬性。
'onclick='alert(1)
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090306993-850658948.png)
#### 第四關:
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090315683-2143932232.png)
#### 第五關:
在關鍵字onclick過濾,on_click
藉助a herf屬性,自己建立一個javascript程式碼
">
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090326420-581605605.png)
#### 第六關:
繼續用第五關的程式碼,發現herf被過濾,檢視原始碼。
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090339419-64654933.png)
關鍵字都被過濾,使用大寫替繞過
">
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090347432-1608818795.png)
#### 第七關:
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090354604-1019862577.png)
和upload-labs一樣,程式碼並無迴圈過濾,因此可以雙寫繞過
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090402366-230537430.png)
#### 第八關:
大小寫,雙寫均不行,替換為unicode編碼
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090410390-231641056.png)
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090418505-1717605893.png)
#### 第九關:
這一關不看程式碼幾乎很難完成,程式碼會檢測是否存在http://
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090425562-517578300.png)
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090435001-972601335.png)
#### 第十關:
&t_sort="type="="type="text"onclick="alert(1)"
![](https://img2020.cnblogs.com/blog/2265061/202101/2265061-20210123090442600-1015359168.png)
檢視原始碼,發現屬性為hidden,被隱藏了。
#### 第十一關:
http referer 頭,檢測來源。
瀏覽器會檢測此JS程式碼是否來
CSRF跨站請求指令碼,檢測來源。管理員在登入狀態的情況下,登入時觸發了一串新增管理員賬號的密碼,此時則會新增管理員。
檢測來源,也就是瀏覽器的同源策略,看看是否來自同一個域名,不是同一個域名的不接受
token驗證會解決這個問題
此關卡在referer頭輸入&t_sort="type="="type="text"onclick="alert(1)"
#### 第十二關:
檢測user-agent aizhan網也存在跨站
後面的關卡也是各種隱藏的屬性,基本都是類似的,不在一一