XSSCookie獲取 盲打 繞過 防範

2022-09-09 22:42:33 字數 2524 閱讀 2782

cookie

cookie是依據http協議,伺服器或指令碼可以維護客戶工作站上資訊的一種方式。cookie是由web伺服器儲存在使用者瀏覽器(客戶端上的)乙個小文字,它可以包含有關使用者的資訊。

臨時cookie:只在瀏覽器上儲存一段規定的時間,一旦超過規定的時間,該cookie就會被系統清除。

伺服器可以利用cookies包含資訊的任意性來篩選並經常維護這些資訊,以判斷在http傳輸中的狀態。

cookies最典型的應用是判定註冊使用者是否已經登陸過**,保留使用者資訊可以簡化下一次登陸**。此外購物車,使用者可能在一段時間內同一家**的不同頁面選擇不同的商品,這些資訊都會被寫入cookies,以便在最後付款時提取資訊。

cookie的竊取和利用

當站點存在xss漏洞時,就可以利用xss來獲取cookie

解讀:使用黑客**下檔案位址為cookie.php,目的是通過此檔案獲取cookie並輸入到黑客的資料庫中的,並且重定向到乙個可信的**,注意前端對長度的限制

<?php

include_once '../inc/config.inc.php';

include_once '../inc/mysql.inc.php';

$link=connect();

//這個是獲取cookie的api頁面

if(isset($_get['cookie']))

header("location:");   //重定向到乙個可信的**

?>

或者使用nc進行竊取,在伺服器上開啟8080埠監聽,重定向到黑客的伺服器,同時帶上它的cookie

//重定向到乙個可信的**

xss注入原理再**

對乙個可注入xss的**進行注入後,如果是反射型中的get型,那可以將該**包含惡意**通過短鏈結偽裝傳送給目標,目標點選後會獲取該含有xss漏洞的網頁的cookie,如果該使用者沒有註冊或者cookie過期,則會獲取乙個無效的cookie

如果是dom型和反射型差不多,但是儲存型是儲存在資料庫中,由於是js**,在前端不會顯示,但是會執行,管理員或者使用者只要點選這個含有該**的網頁,一旦解析就會執行

xss的盲打

不管三七二十一,往裡面插入插入xss**,然後等待驚喜。由於是後端,安全考慮不嚴格的時候管理員就會被獲取cookie

xss繞過

1.前端限制繞過(如限制長度,過濾字元等),直接抓包重放,或者修改前端html**

2.大小寫繞過:

3.雙寫繞過:

4.使用注釋符干擾:pt>alert('1')>ript>

但是要注意使用編碼的時候要注意編碼在輸出點能被正常的識別和翻譯。一般來說html實體編碼比較好

htmlspecialchars繞過:

htmlspecialchars()函式的語法與用法

htmlspecialchars(string,flags,character-set,double_encode)

引數:string:必需,規定要轉換的字串

flags :可選,規定如何處理引號、無效的編碼以及使用哪種文件型別

character-set :可選,乙個規定了要使用的字符集的字串,如:utf-8(預設)

double_encode :可選,布林值,規定了是否編碼已存在的 html 實體

flags引數可用的引號型別

ent_compat :預設僅編碼雙引號。

ent_quotes:編碼雙引號和單引號。

ent_noquotes:不編碼任何引號。

htmlspecialchars()對預定義的函式轉換為html實體,如是js**,應該是執行但不顯現在前端,但是使用htmlspecialchars()函式後會轉換成字元輸出到前端,而不會作為js**去執行,是開發上防xss注入的手段

htmlspecialchars()預設不會對單引號進行處理的,但當輸出點比較特殊的時候,仍然存在xss危險

' onclick='alert(1)'   //注意通過前端**進行分析

單個單引號不會在語法上起作用,只是變成乙個字元,所以不用擔心

href輸出與過濾

由於通過href進行輸出,所以直接可以用j**ascript協議進行輸出

j**ascript:alert('1')

防禦:只允許http和https開頭的協議

js輸出與過濾

輸出點是在j**ascript,通過使用者的輸入動態的生成j**ascript**,通過對前面原有的j**ascript**形成閉合,再自己對後面的j**ascript**構造即可

如我們輸入hello,網頁沒有顯示我們的hello,檢視源**後發現在j**ascript**裡進行了輸出,這時對前面的script標籤進行閉合,並自己構造乙個script標籤進行注入

'注意:

這裡我們會發現我們與前面的標籤並沒有閉合,但也沒有影響,原因在於標籤如果沒有形成閉合則不起作用

防禦:在js的輸出點用\對特殊字元進行過濾

繞過防注入的11招

1 運用編碼技術繞過 如urlencode編碼,ascii編碼繞過。例如or 1 1即 6f 72 20 31 3d 31,而test也可以為char 101 char 97 char 115 char 116 2 通過空格繞過 如兩個空格代替乙個空格,用tab代替空格等,或者刪除所有空格,如 or...

XSS盲打繞過後台限制的兩種思路

思路一 很多時候後台都是在內網,導致無法成功的測試,但是往往內網的很多伺服器是不打補丁的,所以可以考慮借助xss對伺服器進行掃瞄,直接攻擊內網的伺服器,彈回shell。譬如xss exploit裡如果發現是struts就可以考慮直接的攻擊彈回乙個shell 思路二 除了搞伺服器之外,也可以針對管理用...

39 注入篇 繞過防注入繼續注入

在很多情況下,我們好不容易發現了可能注入的注入點,但是卻由於各種的過濾機制使得我們的注入語句無法執行,這使得我們最後無法拿下 的administrator許可權,本小節我們就講解一些繞過各種防注入過濾措施的方法!1 使用編碼技術 通過urlencode編碼 ascii編碼繞過。例如 or 1 1 即...