【XSS跨站】---代碼及httponly繞過---day27


【XSS跨站】---代碼及httponly繞過---day27

一、HttpOnly

1、什么是httponly

1、如果cookie中設置了HttpOnly屬性,那么通過js腳本將無法讀取到cookie信息,這樣能有效的防止XSS攻擊,竊取cookie內容,這樣就增加了cookie的安全性,即便是這樣,也不要將重要信息存入cookie。XSS全稱Cross SiteScript。

2、各個主流的腳本語言都支持httponly。

2、php中httponly的設置

image-20210418161901560

在設置了httponly之后,就無法獲取cookie了

image-20210418162103333

雖然httponly可以阻止獲取cookie的攻擊,但是XSS漏洞還是存在的,可以用alert(1)來測試。

3、攻擊思路

①我們的目標是進入后台

那么除了獲取cookie之外,還可以直接賬號密碼登錄,但是賬號密碼又分為兩種情況,保存讀取和沒保存讀取,也就是是否讓瀏覽器記住密碼了。

②保存讀取:

  • 攻擊思路:讀取保存的數據

  • 平台模塊:

image-20210418163146212

這個type值,就在登錄界面查看源代碼,

image-20210418163220560

③沒保存讀取:

  • 攻擊思路:表單劫持
  • 前提:XSS跨站漏洞要產生在登錄框那里
  • 原理:管理員輸入賬號密碼之后,一份發給服務器,另一份發給攻擊者。

二、XSS-labs平台

x、下載地址

https://github.com/do0dl3/xss-labs

1、level-1

①界面

image-20210418164338779

②測試

把url中的name的值更改,然后界面相應的顯示就會更改。

image-20210418164443466

那么說明這個name的地方能寫js語句,存在跨站漏洞。

③攻擊

image-20210418164603201

2、level-2

①界面

image-20210418164644717

②測試

<script>alert(1)</script>

測試keyword

image-20210418164818555

沒有彈窗

審查元素。

image-20210418164936127

③源碼分析

image-20210418165109830

htmlspecialchars:

image-20210418165215008

所以在上面我們的符號改變了

  • 繞過思路:

審查頁面元素可以看到:

此處還有一句有我們寫的測試語句:

image-20210418165518567

image-20210418165530507

這個地方沒有執行出來,是因為有雙引號,那么我們就可以在測試時候,先閉合雙引號,然后再閉合標簽

payload:

"><script>alert(1)</script>

④攻擊:

使用上面的payload,成功。

image-20210418165724272

3、level-3

①界面:

image-20210418171038522

②測試

image-20210418171107858

還是,輸入111之后,顯示在前端頁面。

測試使用第二關的方法,閉合。行不通

image-20210418171345521

看起來也是尖括號貝轉義了,被過濾。

③攻擊思路

使用表單中的onclick屬性,來執行js代碼。這樣就避免了尖括號的使用。

image-20210418171457465

payload:

keyword=' onclick='alert(1)

image-20210418171911400

image-20210418171938705

image-20210418171947652

4、level-4

①界面

image-20210418172034905

②測試

使用3的方法

image-20210418172349265

5、level-5

①界面:

image-20210418172423840

②測試

使用4的方法,行不通。

image-20210418172628441

源碼分析:

image-20210418172715061

③繞過思路:

使用html中的鏈接標簽:

payload:

"> <a href=javascript:alert(1)>

相當於是添加了一個超鏈接標簽。

image-20210418173111654

image-20210418173119279

6、level-6

①界面:

image-20210418173218632

②測試:

用level-5的方法:行不通,發現吧href給過濾了。

image-20210418173335232

源碼分析:

image-20210418173426802

沒有加正則表達式,可以大小寫繞過。

③繞過方法:

大小寫繞過payload:

"> <a Href=JavasCript:alert(1)>

image-20210418173546163

7、level-7

①界面:

image-20210418173656336

②源碼分析:

image-20210418173828064

測試使用6的方法:

">

發現行不通:

截斷了

image-20210418173949089

但是我們知道源碼中這個檢測,只檢測了一次,沒有循環的去替換檢測。所以我們可以多弄幾次。

③繞過:

payload:

"> <a HHREFref=JavasCscriptript:alert(1)>

image-20210418174248396

8、level-8

①界面:

image-20210418174319843

②測試:

image-20210418174456561

發現有下划線截斷了。

源碼分析:

image-20210418174551655

測試發現大小寫和重復寫都不管用。

③繞過:

思路:采用編碼繞過

選擇這個模式

image-20210418175213038

image-20210418175245493

payload:

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

image-20210418175320452

image-20210418175328628

9、level-9

①界面:

image-20210418175649750

②測試:

測試使用level-8的方法:

image-20210418175736276

行不通。

③源碼分析:

檢測的是有沒有http://

image-20210418175855914

④繞過:

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;//http://

image-20210418180417129

采取上面的方式來繞過,第一個//用來注釋掉后面的http

image-20210418210225288

繞過成功。

10、level-10

①界面:

image-20210418210300475

②源碼分析:

image-20210418210826937

③payload

keyword=well%20done!&t_sort="type="text" onclick="alert(1)"

其中type="text",是讓這個數據框顯示出來,這樣的話才能夠利用,否則hidden的話就隱藏起來了。

11、level-11

①界面:

image-20210418211335205

② 源碼分析:

image-20210418212143207

發現這個$str33的值是從Referer里來的,抓包添加Referer頭就行了。payload和10題中一樣。

image-20210418213931558

image-20210418213852027

三、迪哥生動講解---同源策略防止跨站攻擊

1、跨站攻擊

image-20210418212701702

來源就是通過http請求頭中的,Referer頭來決定的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM