二十七:XSS跨站之程式碼及httponly繞過

九~月發表於2021-01-23

httponly:如果給某個 cookie 設定了 httpOnly 屬性,則無法通過 JS 指令碼 讀取到該 cookie 的資訊,但還Application 中手動修改 cookie,所以只是在一定程度上可以防止 XSS 攻擊,不是絕對的安全

雖然設定了httponly之後拿不到cookie,但是還是存在xss跨站語句,阻止的僅僅是獲取cookie

  可以直接拿賬號密碼,cookie登入.
  瀏覽器未儲存讀取密碼:需要xss產生於登入地址,利用表單劫持
  瀏覽器儲存賬號面:產生在後臺的XSS,例如儲存型XSS

手工判斷xss跨站漏洞:

第一關:

第二關:

  被轉義,檢視原始碼。

  存在htmlsecialchars()函式:

  把符號轉換為實體化標籤,xss經常過濾的情況

第二關:

  閉合前面的雙引號,"><script>alert(1)</script>

第三關:

  還是對<>進行了轉義,利用表單的滑鼠點選屬性。
  'onclick='alert(1)

第四關:

第五關:

  在關鍵字onclick過濾,on_click
  藉助a herf屬性,自己建立一個javascript程式碼
  "><a href="javascript:alert(1)">

第六關:

  繼續用第五關的程式碼,發現herf被過濾,檢視原始碼。

  關鍵字都被過濾,使用大寫替繞過
  "><a hRef="javaScript:alert(1)">

第七關:

  和upload-labs一樣,程式碼並無迴圈過濾,因此可以雙寫繞過

第八關:

大小寫,雙寫均不行,替換為unicode編碼

第九關:

這一關不看程式碼幾乎很難完成,程式碼會檢測是否存在http://


第十關:

&t_sort="type="="type="text"onclick="alert(1)"

檢視原始碼,發現屬性為hidden,被隱藏了。

第十一關:

  http referer 頭,檢測來源。
  瀏覽器會檢測此JS程式碼是否來
  CSRF跨站請求指令碼,檢測來源。管理員在登入狀態的情況下,登入時觸發了一串新增管理員賬號的密碼,此時則會新增管理員。

  檢測來源,也就是瀏覽器的同源策略,看看是否來自同一個域名,不是同一個域名的不接受
  token驗證會解決這個問題

  此關卡在referer頭輸入&t_sort="type="="type="text"onclick="alert(1)"

第十二關:

  檢測user-agent   aizhan網也存在跨站

  後面的關卡也是各種隱藏的屬性,基本都是類似的,不在一一記錄。

相關文章