利用XSS进行网页钓鱼
【XSS漏洞】利用XSS進行網(wǎng)頁釣魚
Hello 各位小伙伴周末晚上好
這里是你們微胖的小編Monster。
話說小編的老媽今天給小編打電話,叮囑我平時吃飯少吃一點…
說昨天看我朋友圈發(fā)的照片,已經(jīng)從以前的瓜子臉,變成國字臉了…
Whatever,讓我們一起來看看今天的內(nèi)容吧
一、實驗概述
實驗拓撲:
利用XSS漏洞,我們可以在網(wǎng)頁中插入惡意js代碼,通過js代碼,我們可以干很多事情,例如偽造一個登陸頁面。
當用戶訪問該網(wǎng)頁時,就會自動彈出登陸頁面,如果用戶信以為真,輸入了用戶名與密碼,密碼就會傳輸?shù)焦粽叩姆掌髦?#xff0c;完成賬號竊取。
二、編寫登陸窗口代碼
首先我們在攻擊者服務器(192.168.211.1)編寫一段彈窗代碼,如下:
本段代碼使用的是 PHP 的 HTTP 認證機制,說明如下。
首先,利用 header() 函數(shù),我們可以向客戶端瀏覽器發(fā)送 Authentication Required 信息,使其彈出一個用戶名/密碼輸入窗口。
當用戶輸入用戶名和密碼后,包含有 URL 的 PHP 腳本將會和預定義變量 PHP_AUTH_USER、PHP_AUTH_PW 和 AUTH_TYPE 一起被調(diào)用,這三個變量分別被設定為用戶名,密碼和認證類型。
這三個預定義變量會被保存在 $_SERVER 數(shù)組中,我們再通過Get方法,將用戶名、密碼傳遞給record.php頁面,等待下一步處理。
嘗試訪問一下這個頁面,彈出登錄框:
輸入賬號、密碼123/123,通過GET方式發(fā)送給record.php:
這樣,我們的登陸窗口頁面就完成了,接下來編寫記錄頁面。
三、用戶信息記錄
偽造的登陸界面,會把用戶名、密碼信息發(fā)送給record.php頁面。
通過該頁面,我們將用戶名、密碼保存到攻擊者服務器本地,代碼如下:
代碼說明:
通過$_GET接收傳過來的username和password的值
通過getenv方法,可以獲取用戶的ip地址和信息來源
通過date函數(shù),記錄下獲取到信息的時間
通過fopen函數(shù),通過a(追加)的方式,打開user.txt文件
通過fwrite的方式,將我們獲取到的信息記錄到user.txt文件中
最后,fclose函數(shù)關閉文件。
再訪問一次登陸偽造頁面,并輸入用戶名、密碼123/123:
攻擊者本地生成user.txt,成功記錄賬號、密碼信息:
四、插入惡意js腳本
Web頁面以DVWA平臺 存儲型XSS為例,我們來插入一個惡意JS代碼。
代碼構(gòu)造如下:
通過插入iframe標簽,讓用戶訪問漏洞頁面時,自動訪問攻擊者服務器上的釣魚頁面fish.php,出現(xiàn)登陸彈窗。
選擇low安全等級,打開dvwa XSS(stored)頁面 :
在Name欄、Message欄均存在存儲型XSS,在Message中輸入上面的惡意代碼,并提交,會發(fā)現(xiàn)有輸入長度限制:
不過這里是前端長度限制,我們直接修改當前網(wǎng)頁代碼即可,將maxlength改大:
再次輸入,可順利輸入,點擊提交即可:
當前頁面馬上出現(xiàn)彈窗:
現(xiàn)在我們使用靶機來模擬一次攻擊行為,使用用戶主機訪問low安全等級的dvwa XSS(stored)頁面,因為impossible等級不存在XSS漏洞,
立刻出現(xiàn)彈窗:
使用用戶名、密碼,點擊確認,頁面恢復正常:
查看攻擊者服務器user.txt文件:
同時,輸入用戶名、密碼后,當前頁面已存在PHP_AUTH_USER、PHP_AUTH_PW 變量,因此再次訪問該頁面,不會再出現(xiàn)彈窗,避免露餡:
利用XSS漏洞,我們甚至能跳轉(zhuǎn)到一個和真實網(wǎng)站登陸界面一模一樣的網(wǎng)頁,更具有欺騙性。
好啦,以上就是今天的全部內(nèi)容了~
如果有問題,或者是有想聽的專題,也歡迎到我的微信公眾號留言哦~
Peace!
總結(jié)
以上是生活随笔為你收集整理的利用XSS进行网页钓鱼的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天意U盘维护系统,2019支持NVME硬
- 下一篇: 读《史蒂夫•乔布斯传》(五)