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 欧美成人一区二区,最近中文字幕2019视频1,国产精品视频久久久久

          整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線:

          js的 跳轉(zhuǎn)

          。 reload

          reload 方法,該方法強(qiáng)迫瀏覽器刷新當(dāng)前頁(yè)面。

          語(yǔ)法:location.reload([bForceGet])

          參數(shù): bForceGet, 可選參數(shù), 默認(rèn)為 false,從客戶(hù)端緩存里取當(dāng)前頁(yè)。true, 則以 GET 方式,從服務(wù)端取最新的頁(yè)面, 相當(dāng)于客戶(hù)端點(diǎn)擊 F5("刷新")

          reload() 方法用于重新加載當(dāng)前文檔。

          如果該方法沒(méi)有規(guī)定參數(shù),或者參數(shù)是 false,它就會(huì)用 HTTP 頭 If-Modified-Since 來(lái)檢測(cè)服務(wù)器上的文檔是否已改變。如果文檔已改變,reload() 會(huì)再次下載該文檔。如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶(hù)單擊瀏覽器的刷新按鈕的效果是完全一樣的。

          2.

          2,replace 方法,該方法通過(guò)指定URL替換當(dāng)前緩存在歷史里(客戶(hù)端)的項(xiàng)目,因此當(dāng)使用replace方法之后,你不能通過(guò)“前進(jìn)”和“后退”來(lái)訪問(wèn)已經(jīng)被替換的URL。

          語(yǔ)法: location.replace(URL)

          通常使用: location.reload() 或者是 history.go(0) 來(lái)做。

          此方法類(lèi)似客戶(hù)端點(diǎn)F5刷新頁(yè)面,所以頁(yè)面method="post"時(shí),會(huì)出現(xiàn)"網(wǎng)頁(yè)過(guò)期"的提示。

          因?yàn)镾ession的安全保護(hù)機(jī)制。

          當(dāng)調(diào)用 location.reload() 方法時(shí), aspx頁(yè)面此時(shí)在服務(wù)端內(nèi)存里已經(jīng)存在, 因此必定是 IsPostback 的。

          如果有這種應(yīng)用: 需要重新加載該頁(yè)面,也就是說(shuō)期望頁(yè)面能夠在服務(wù)端重新被創(chuàng)建,期望是 Not IsPostback 的。

          這里,location.replace() 就可以完成此任務(wù)。被replace的頁(yè)面每次都在服務(wù)端重新生成。

          代碼: location.replace(location.href);

          返回并刷新頁(yè)面:

          location.replace(document.referrer);

          document.referrer //前一個(gè)頁(yè)面的URL

          不要用 history.go(-1),或 history.back();來(lái)返回并刷新頁(yè)面,這兩種方法不會(huì)刷新頁(yè)面。

          附:

          Javascript刷新頁(yè)面的幾種方法:

          復(fù)制代碼 代碼如下:

          1,history.go(0)

          2,location.reload()

          3,location=location

          4,location.assign(location)

          5,document.execCommand('Refresh')

          6,window.navigate(location)

          7,location.replace(location)

          8,document.URL=location.href

          自動(dòng)刷新頁(yè)面的方法:

          1,頁(yè)面自動(dòng)刷新:把如下代碼加入<head>區(qū)域中

          復(fù)制代碼 代碼如下:

          <meta http-equiv="refresh" content="20">

          其中20指每隔20秒刷新一次頁(yè)面.

          2,頁(yè)面自動(dòng)跳轉(zhuǎn):把如下代碼加入<head>區(qū)域中

          復(fù)制代碼 代碼如下:

          <meta http-equiv="refresh" content="20;url=http://www.jb51.net">

          其中20指隔20秒后跳轉(zhuǎn)到http://www.jb51.net頁(yè)面

          3,頁(yè)面自動(dòng)刷新js版

          復(fù)制代碼 代碼如下:

          <script language="JavaScript">

          function myrefresh()

          {

          window.location.reload();

          }

          setTimeout('myrefresh()',1000); //指定1秒刷新一次

          </script>

          4,JS刷新框架的腳本語(yǔ)句

          復(fù)制代碼 代碼如下:

          //刷新包含該框架的頁(yè)面用

          <script language=JavaScript>

          parent.location.reload();

          </script>

          //子窗口刷新父窗口

          <script language=JavaScript>

          self.opener.location.reload();

          </script>

          ( 或 <a href="javascript:opener.location.reload()">刷新</a> )

          //刷新另一個(gè)框架的頁(yè)面用

          <script language=JavaScript>

          parent.另一FrameID.location.reload();

          </script>

          如果想關(guān)閉窗口時(shí)刷新或想開(kāi)窗時(shí)刷新,在<body>中調(diào)用以下語(yǔ)句即可。

          復(fù)制代碼 代碼如下:

          <body onload="opener.location.reload()"> 開(kāi)窗時(shí)刷新

          <body onUnload="opener.location.reload()"> 關(guān)閉時(shí)刷新

          <script language="javascript">

          window.opener.document.location.reload()

          </script>

          一、先來(lái)看一個(gè)簡(jiǎn)單的例子:

          下面以三個(gè)頁(yè)面分別命名為frame.html、top.html、bottom.html為例來(lái)具體說(shuō)明如何做。

          frame.html 由上(top.html)下(bottom.html)兩個(gè)頁(yè)面組成,代碼如下:

          復(fù)制代碼 代碼如下:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

          <HTML>

          <HEAD>

          <TITLE> frame </TITLE>

          </HEAD>

          <frameset rows="50%,50%">

          <frame name=top src="top.html">

          <frame name=bottom src="bottom.html">

          </frameset>

          </HTML>

          現(xiàn)在假設(shè)top.html (即上面的頁(yè)面) 有七個(gè)button來(lái)實(shí)現(xiàn)對(duì)bottom.html (即下面的頁(yè)面) 的刷新,可以用以下七種語(yǔ)句,哪個(gè)好用自己看著辦了。

          top.html 頁(yè)面的代碼如下:

          復(fù)制代碼 代碼如下:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

          <HTML>

          <HEAD>

          <TITLE> top.html </TITLE>

          </HEAD>

          <BODY>

          <input type=button value="刷新1" onclick="window.parent.frames[1].location.reload()"><br>

          <input type=button value="刷新2" onclick="window.parent.frames.bottom.location.reload()"><br>

          <input type=button value="刷新3" onclick="window.parent.frames['bottom'].location.reload()"><br>

          <input type=button value="刷新4" onclick="window.parent.frames.item(1).location.reload()"><br>

          <input type=button value="刷新5" onclick="window.parent.frames.item('bottom').location.reload()"><br>

          <input type=button value="刷新6" onclick="window.parent.bottom.location.reload()"><br>

          <input type=button value="刷新7" onclick="window.parent['bottom'].location.reload()"><br>

          </BODY>

          </HTML>

          下面是bottom.html頁(yè)面源代碼,為了證明下方頁(yè)面的確被刷新了,在裝載完頁(yè)面彈出一個(gè)對(duì)話框。

          復(fù)制代碼 代碼如下:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

          <HTML>

          <HEAD>

          <TITLE> bottom.html </TITLE>

          </HEAD>

          <BODY onload="alert('我被加載了!')">

          <h1>This is the content in bottom.html.</h1>

          </BODY>

          </HTML>

          解釋一下:

          復(fù)制代碼 代碼如下:

          1.window指代的是當(dāng)前頁(yè)面,例如對(duì)于此例它指的是top.html頁(yè)面。

          2.parent指的是當(dāng)前頁(yè)面的父頁(yè)面,也就是包含它的框架頁(yè)面。例如對(duì)于此例它指的是framedemo.html。

          3.frames是window對(duì)象,是一個(gè)數(shù)組。代表著該框架內(nèi)所有子頁(yè)面。

          4.item是方法。返回?cái)?shù)組里面的元素。

          5.如果子頁(yè)面也是個(gè)框架頁(yè)面,里面還是其它的子頁(yè)面,那么上面的有些方法可能不行。

          附:

          Javascript刷新頁(yè)面的幾種方法:

          1 history.go(0)

          2 location.reload()

          3 location=location

          4 location.assign(location)

          5 document.execCommand('Refresh')

          6 window.navigate(location)

          7 location.replace(location)

          8 document.URL=location.href

          二、自動(dòng)刷新頁(yè)面

          1.頁(yè)面自動(dòng)刷新:把如下代碼加入<head>區(qū)域中

          <meta http-equiv="refresh" content="20">

          其中20指每隔20秒刷新一次頁(yè)面.

          2.頁(yè)面自動(dòng)跳轉(zhuǎn):把如下代碼加入<head>區(qū)域中

          <meta http-equiv="refresh" content="20;url=http://www.jb51.net">

          其中20指隔20秒后跳轉(zhuǎn)到http://www.jb51.net頁(yè)面

          3.頁(yè)面自動(dòng)刷新js版

          [Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]

          三、java在寫(xiě)Servler,Action等程序時(shí),要操作返回頁(yè)面的話(如談出了窗口,操作完成以后,關(guān)閉當(dāng)前頁(yè)面,刷新父頁(yè)面)

          復(fù)制代碼 代碼如下:

          1 PrintWriter out = response.getWriter();

          2 out.write("<script type=\"text/javascript\">");

          3 ////子窗口刷新父窗口

          4 out.write("self.opener.location.reload();");

          5 //關(guān)閉窗口

          6 out.write("window.opener=null;");

          7 out.write("window.close();");

          8 out.write("</script>");

          四、JS刷新框架的腳本語(yǔ)句

          1.如何刷新包含該框架的頁(yè)面用

          復(fù)制代碼 代碼如下:

          <script language=JavaScript>

          parent.location.reload();

          </script>

          T之家 3 月 17 日消息,小米官網(wǎng)此前可通過(guò)“mi.com/html”訪問(wèn) 2019 年版本,該版本首頁(yè)清晰可見(jiàn)“小米手機(jī) 9”“小米手環(huán) 4”“Redmi Note 7”“小米游戲本 2019”等產(chǎn)品。

          不過(guò)根據(jù)IT之家小伙伴投稿,目前小米已經(jīng)悄悄下線了這一 2019 年版本網(wǎng)站,IT之家經(jīng)過(guò)測(cè)試,如今在瀏覽器鍵入“mi.com/html”訪問(wèn),將被強(qiáng)制跳轉(zhuǎn)“mi.com/shop”,回歸 2024 年。

          另?yè)?jù)IT之家此前報(bào)道,小米在本月初誤將 mi.com 官網(wǎng)域名跳轉(zhuǎn)至“mi.com/ html”,而后迅速修正,但依然有不少用戶(hù)留存了截圖。

          、概述

          服務(wù)端未對(duì)傳入的跳轉(zhuǎn)url變量進(jìn)行檢查和控制,可導(dǎo)致惡意用戶(hù)構(gòu)造一個(gè)惡意地址,誘導(dǎo)用戶(hù)跳轉(zhuǎn)到惡意網(wǎng)站。跳轉(zhuǎn)漏洞一般用于釣魚(yú)攻擊,通過(guò)跳轉(zhuǎn)到惡意網(wǎng)站欺騙用戶(hù)輸入用戶(hù)名和密碼來(lái)盜取用戶(hù)信息,或欺騙用戶(hù)進(jìn)行金錢(qián)交易;還可以造成xss漏洞。

          常見(jiàn)的可能產(chǎn)生漏洞的參數(shù)名redirect,redirect_to,redirect_url,url,jump,jump_to,target,to,link,linkto,domain

          定義:借助未驗(yàn)證的URL跳轉(zhuǎn),將應(yīng)用程序引導(dǎo)到不安全的第三方區(qū)域,從而導(dǎo)致的安全問(wèn)題。


          url跳轉(zhuǎn)常見(jiàn)出現(xiàn)的地方(即漏洞產(chǎn)生的地方)

          • 登陸跳轉(zhuǎn)我認(rèn)為是最常見(jiàn)的跳轉(zhuǎn)類(lèi)型,認(rèn)證完后會(huì)跳轉(zhuǎn),所以在登陸的時(shí)候建議多觀察url參數(shù)
          • 用戶(hù)分享、收藏內(nèi)容過(guò)后,會(huì)跳轉(zhuǎn)
          • 跨站點(diǎn)認(rèn)證、授權(quán)后,會(huì)跳轉(zhuǎn)
          • 站內(nèi)點(diǎn)擊其它網(wǎng)址鏈接時(shí),會(huì)跳轉(zhuǎn)
          • 在一些用戶(hù)交互頁(yè)面也會(huì)出現(xiàn)跳轉(zhuǎn),如請(qǐng)?zhí)顚?xiě)對(duì)客服評(píng)價(jià),評(píng)價(jià)成功跳轉(zhuǎn)主頁(yè),填寫(xiě)問(wèn)卷,等等業(yè)務(wù),注意觀察url。
          • 業(yè)務(wù)完成后跳轉(zhuǎn)這可以歸結(jié)為一類(lèi)跳轉(zhuǎn),比如修改密碼,修改完成后跳轉(zhuǎn)登陸頁(yè)面,綁定銀行卡,綁定成功后返回銀行卡充值等頁(yè)面,或者說(shuō)給定一個(gè)鏈接辦理VIP,但是你需要認(rèn)證身份才能訪問(wèn)這個(gè)業(yè)務(wù),這個(gè)時(shí)候通常會(huì)給定一個(gè)鏈接,認(rèn)證之后跳轉(zhuǎn)到剛剛要辦理VIP的頁(yè)面。




          二、URL跳轉(zhuǎn)漏洞原理

          黑客利用URL跳轉(zhuǎn)漏洞來(lái)誘導(dǎo)安全意識(shí)低的用戶(hù)點(diǎn)擊,導(dǎo)致用戶(hù)信息泄露或者資金的流失。其原理是黑客構(gòu)建惡意鏈接(鏈接需要進(jìn)行偽裝,盡可能迷惑),發(fā)在QQ群或者是瀏覽量多的貼吧/論壇中。 安全意識(shí)低的用戶(hù)點(diǎn)擊后,經(jīng)過(guò)服務(wù)器或者瀏覽器解析后,跳到惡意的網(wǎng)站中。

          惡意鏈接需要進(jìn)行偽裝,經(jīng)常的做法是熟悉的鏈接后面加上一個(gè)惡意的網(wǎng)址,這樣才迷惑用戶(hù)。

          諸如偽裝成像如下的網(wǎng)址,你是否能夠識(shí)別出來(lái)是惡意網(wǎng)址呢?

          http://gate.baidu.com/index?act=go&url=http://t.cn/RVTatrd
          http://qt.qq.com/safecheck.html?flag=1&url=http://t.cn/RVTatrd
          http://tieba.baidu.com/f/user/passport?jumpUrl=http://t.cn/RVTatrd




          三、攻擊方式及危害

          惡意用戶(hù)完全可以借用URL跳轉(zhuǎn)漏洞來(lái)欺騙安全意識(shí)低的用戶(hù),從而導(dǎo)致“中獎(jiǎng)”之類(lèi)的欺詐,這對(duì)于一些有在線業(yè)務(wù)的企業(yè)如淘寶等,危害較大,同時(shí)借助URL跳轉(zhuǎn),也可以突破常見(jiàn)的基于“白名單方式”的一些安全限制,如傳統(tǒng)IM里對(duì)于URL的傳播會(huì)進(jìn)行安全校驗(yàn),但是對(duì)于大公司的域名及URL將直接允許通過(guò)并且顯示會(huì)可信的URL,而一旦該URL里包含一些跳轉(zhuǎn)漏洞將可能導(dǎo)致安全限制被繞過(guò)。

          如果引用一些資源的限制是依賴(lài)于“白名單方式”,同樣可能被繞過(guò)導(dǎo)致安全風(fēng)險(xiǎn),譬如常見(jiàn)的一些應(yīng)用允許引入可信站點(diǎn)如youku.com的視頻,限制方式往往是檢查URL是否是youku.com來(lái)實(shí)現(xiàn),如果youku.com內(nèi)含一個(gè)url跳轉(zhuǎn)漏洞,將導(dǎo)致最終引入的資源屬于不可信的第三方資源或者惡意站點(diǎn),最終導(dǎo)致安全問(wèn)題。




          四、實(shí)現(xiàn)方式

          • Header頭跳轉(zhuǎn)
          • Javascript跳轉(zhuǎn)
          • META標(biāo)簽跳轉(zhuǎn)

          通過(guò)以GET或者POST的方式接收將要跳轉(zhuǎn)的URL,然后通過(guò)上面的幾種方式的其中一種來(lái)跳轉(zhuǎn)到目標(biāo)URL。一方面,由于用戶(hù)的輸入會(huì)進(jìn)入Meta,javascript,http頭所以都可能發(fā)生相應(yīng)上下文的漏洞,如xss等等,但是同時(shí),即使只是對(duì)于URL跳轉(zhuǎn)本身功能方面就存在一個(gè)缺陷,因?yàn)闀?huì)將用戶(hù)瀏覽器從可信的站點(diǎn)導(dǎo)向到不可信的站點(diǎn),同時(shí)如果跳轉(zhuǎn)的時(shí)候帶有敏感數(shù)據(jù)一樣可能將敏感數(shù)據(jù)泄漏給不可信的第三方。


          這里我們舉個(gè)Header頭跳轉(zhuǎn)實(shí)現(xiàn)方式:

          <?php
          $url=$_GET['jumpto'];
          header("Location: $url");
          ?>

          如果jumpto沒(méi)有任何限制,所以惡意用戶(hù)可以提交:

          http://www.wooyun.org/login.php?jumpto=http://www.evil.com

          來(lái)生成自己的惡意鏈接,安全意識(shí)較低的用戶(hù)很可能會(huì)以為該鏈接展現(xiàn)的內(nèi)容是www.wooyun.org從而可能產(chǎn)生欺詐行為,同時(shí)由于QQ,淘寶旺旺等在線IM都是基于URL的過(guò)濾,同時(shí)對(duì)一些站點(diǎn)會(huì)以白名單的方式放過(guò),所以導(dǎo)致惡意URL在IM里可以傳播,從而產(chǎn)生危害,譬如這里IM會(huì)認(rèn)為www.wooyun.org都是可信的,但是通過(guò)在IM里點(diǎn)擊上述鏈接將導(dǎo)致用戶(hù)最終訪問(wèn)www.evil.com這個(gè)惡意網(wǎng)址。




          五、繞過(guò)URL跳轉(zhuǎn)限制

          1.利用?號(hào)繞過(guò)限制

          比如:http://www.aaa.com/acb?Url=http://login.aaa.com

          這是一個(gè)跳轉(zhuǎn)鏈接,跳轉(zhuǎn)到它的二級(jí)域名下,那么這個(gè)問(wèn)號(hào)放哪里可以繞過(guò)呢?其實(shí)就是放到它自身的域名前面也就是你添加的想要跳轉(zhuǎn)的域名的后面,如:http://www.aaa.com/acb?Url=http://test.com?login.aaa.com 。它其實(shí)是會(huì)跳轉(zhuǎn)到這個(gè)test.com域名下,這個(gè)域名是我想要跳轉(zhuǎn)的任意域名,而后面的它自身域名一定要帶上,不帶上就無(wú)法輔助用問(wèn)號(hào)?這個(gè)特性來(lái)跳轉(zhuǎn)到指定域名了,而跳轉(zhuǎn)后,問(wèn)號(hào)和問(wèn)號(hào)后面的內(nèi)容會(huì)變?yōu)檫@樣:http://www.test.com/?login.aaa.com


          2.利用反斜杠和正斜杠繞過(guò)限制

          比如:http://www.aaa.com/acb?Url=http://login.aaa.com/ 同樣是在它本身域名錢(qián)加上正斜杠,然后正斜杠前面跟上你想跳轉(zhuǎn)的域名地址,如:http://www.aaa.com/acb?Url=http://test.com/login.aaa.com

          反斜杠有三種思路

          ①兩個(gè)反斜杠繞過(guò)方法

          比如:http://www.aaa.com/acb?Url=http://login.aaa.com/ 同樣是在它本身域名錢(qián)加上兩個(gè)反斜杠,然后兩個(gè)反斜杠前面跟上你想跳轉(zhuǎn)的域名地址

          如:http://www.aaa.com/acb?Url=http://test.com\login.aaa.com

          ②一個(gè)反斜杠繞過(guò)方法

          如:http://www.aaa.com/acb?Url=http://test.com\login.aaa.com

          ③另一種思路,一個(gè)反斜杠一個(gè)點(diǎn)

          利用.這樣的格式,也就是一個(gè)反斜杠加一個(gè)點(diǎn)來(lái)跳過(guò)限制,

          如:http://www.aaa.com/acb?Url=http://test.com.login.aaa.com


          3.利用@繞過(guò)URL限制

          如果你用這方法在火狐里進(jìn)行跳轉(zhuǎn),會(huì)有彈窗提示,在其它游覽器則沒(méi)有。

          如:http://www.aaa.com/acb?Url=http://login.aaa.com@test.com后面的test.com就是要跳轉(zhuǎn)到的域名,前面的域名都是用來(lái)輔助以繞過(guò)限制的


          4.利用#號(hào)繞過(guò)

          如:http://www.aaa.com/acb?Url=http://test.com#login.aaa.com


          5.利用白名單缺陷繞過(guò)

          有的域名白名單限制是不全的,比如如果想利用一個(gè)跳轉(zhuǎn),而這個(gè)跳轉(zhuǎn)是通用,在這個(gè)公司網(wǎng)站很多子域名等都可以跳轉(zhuǎn),那么你買(mǎi)個(gè)域名也不算貴對(duì)吧,為什么這么說(shuō)呢,這個(gè)問(wèn)題就是白名單限制不當(dāng),比如,當(dāng)跳轉(zhuǎn)的域名包含這個(gè)網(wǎng)站下的所有域名,比如:

          http://www.aaa.com/acb?Url=http://login.aaa.com,這個(gè)login.aaa.com也可以改成aaa.com同樣可以跳轉(zhuǎn)對(duì)吧,因?yàn)榘酌麊卫镏灰邪@個(gè)域名就直接成功跳轉(zhuǎn)。那么當(dāng)我在這個(gè)域名前面加上如testaaa.com,白名單里會(huì)檢查是否包含aaa.com這個(gè)域名,包含,然后直接跳轉(zhuǎn),而并沒(méi)有檢查這個(gè)域名的整個(gè)信息,然后可以利用這個(gè)問(wèn)題,直接注冊(cè)一個(gè)testaaa.com這個(gè)域名就可以利用這個(gè)跳轉(zhuǎn)。


          6.多重驗(yàn)證&跳轉(zhuǎn)繞過(guò)限制

          現(xiàn)在很多網(wǎng)站都有多重驗(yàn)證,比如你登陸賬戶(hù)后會(huì)出現(xiàn)另一個(gè)驗(yàn)證頁(yè)面,輸入手機(jī)驗(yàn)證碼進(jìn)行驗(yàn)證,此時(shí)這上面的URL很可能存在任意跳轉(zhuǎn)的問(wèn)題。多重跳轉(zhuǎn)的問(wèn)題導(dǎo)致可繞過(guò)URL限制

          比如http://www.aaa.com/acb?Url=http://login.aaa.com/acb?url=http://login.aaa.com。當(dāng)然,還有多重的,這個(gè)結(jié)構(gòu)的多重跳轉(zhuǎn)你修改最后面的URL就可以達(dá)到任意URL跳轉(zhuǎn),中間的URL就沒(méi)必要?jiǎng)恿恕?/p>


          7.點(diǎn)擊觸發(fā)達(dá)到繞過(guò)URL跳轉(zhuǎn)限制

          比如很多登陸頁(yè)面的地方,其URL是一個(gè)跳轉(zhuǎn)的URL,如:http://www.aaa.com/acb?Url=http://test.com。你直接修改了后面為任意URL,但是還是停留在原地,似乎沒(méi)什么問(wèn)題,但是,當(dāng)你輸入賬號(hào)和密碼后點(diǎn)擊登陸按鈕后,就會(huì)觸發(fā)跳轉(zhuǎn),當(dāng)然,這個(gè)賬戶(hù)和密碼不一定要對(duì)的,隨便都可以,但得視系統(tǒng)而定吧。這個(gè)我遇到了很多,比如你修改了域名,然后點(diǎn)擊登陸,登陸成功后便可觸發(fā)跳轉(zhuǎn),這也是一個(gè)比較隱蔽的繞過(guò)URL限制的跳轉(zhuǎn)。


          8.POST參數(shù)中的URL跳轉(zhuǎn)

          當(dāng)你填什么表格或者需要填寫(xiě)什么的,當(dāng)你上傳圖片,點(diǎn)擊下一步的時(shí)候,通常下一步就是預(yù)覽你填寫(xiě)的信息,最后才是提交,當(dāng)你上傳了圖片后點(diǎn)擊下一步抓包,如果過(guò)濾不嚴(yán),你會(huì)看到圖片的完整地址包含在POST參數(shù)里,你就可以直接修改這個(gè)地址為任意URL,然后到達(dá)下一步,這時(shí)是確定信息也就是預(yù)覽自己填寫(xiě)的信息的正確還是不正確,由于你剛剛修改了圖片地址,這里是沒(méi)有顯示出來(lái)的,圖像會(huì)是一個(gè)小XX,當(dāng)點(diǎn)擊圖片右鍵選擇查看圖像時(shí),就會(huì)觸發(fā)URL跳轉(zhuǎn)問(wèn)題,其實(shí)這個(gè)也可以利用來(lái)進(jìn)行釣魚(yú),釣后臺(tái)審核員的信息(引用)


          9.利用xip.io繞過(guò)

          請(qǐng)求是http://www.127.0.0.1.xip.io 這個(gè)繞過(guò)是在SSRF場(chǎng)景中的繞過(guò),比如SSRF你要讀取內(nèi)網(wǎng)地址,一般都做了限制,可以嘗試用這方法進(jìn)行繞過(guò)限制,從而訪問(wèn)到內(nèi)網(wǎng)。另外一點(diǎn),URL跳轉(zhuǎn)涉及的安全問(wèn)題大家常見(jiàn)的就是釣魚(yú),那么利用這個(gè)思路也可達(dá)成一個(gè)釣魚(yú)問(wèn)題,如,http://www.qq.com.220.181.57.217.xip.io 當(dāng)你訪問(wèn)qq這個(gè)域名時(shí),其實(shí)這個(gè)鏈接已經(jīng)被解析到后面這個(gè)ip地址上了,那么實(shí)際訪問(wèn)的就是后面這個(gè)IP地址。




          六、url跳轉(zhuǎn)修復(fù)

          1.若跳轉(zhuǎn)的URL事先是可以確定的,包括url和參數(shù)的值,則可以在后臺(tái)先配置好,url參數(shù)只需傳對(duì)應(yīng)url的索引即可,通過(guò)索引找到對(duì)應(yīng)具體url再進(jìn)行跳轉(zhuǎn);

          2.若跳轉(zhuǎn)的URL事先不確定,但其輸入是由后臺(tái)生成的(不是用戶(hù)通過(guò)參數(shù)傳人),則可以先生成好跳轉(zhuǎn)鏈接然后進(jìn)行簽名,而跳轉(zhuǎn)cg首先需要進(jìn)行驗(yàn)證簽名通過(guò)才能進(jìn)行跳轉(zhuǎn);

          3.若1和2都不滿(mǎn)足,url事先無(wú)法確定,只能通過(guò)前端參數(shù)傳入,則必須在跳轉(zhuǎn)的時(shí)候?qū)rl進(jìn)行按規(guī)則校驗(yàn):即控制url是否是你們公司授權(quán)的白名單或者是符合你們公司規(guī)則的url:

          function checkURL ( sURL) {
          return (/^(https?:\/\/)?[\w-.]+.(yourDomainA|yourDomainB|yourDomainC).com($|\/|\)/i).test(sUrl)||(/^[\w][\w\/.-_%]+$/i).test(sUrl)||(/^[\/\][^\/\]/i).test(sUrl) ? true : false;    }

          4.XSS漏洞的注意事項(xiàng) :跳轉(zhuǎn)url檢測(cè)中也加入了CRLF頭部注入漏洞的檢測(cè)邏輯, 具體就是在請(qǐng)求參數(shù)中加入了%0d%0a這種測(cè)試代碼,需要對(duì)這些參數(shù)進(jìn)行刪除處理(事實(shí)上:在判斷到一個(gè)參數(shù)中包含 %00 -> %1f 的控制字符時(shí)都是不合法的,需對(duì)其進(jìn)行刪除)。




          七、如何防御

          理論上講,url跳轉(zhuǎn)屬于CSRF的一種,我們需要對(duì)傳入的URL做有效性的認(rèn)證,保證該URL來(lái)自于正確的地方,限制的方式同防止csrf一樣可以包括:

          1.referer的限制

          如果確定傳遞URL參數(shù)進(jìn)入的來(lái)源,我們可以通過(guò)該方式實(shí)現(xiàn)安全限制,保證該URL的有效性,避免惡意用戶(hù)自己生成跳轉(zhuǎn)鏈接

          2.加入有效性驗(yàn)證Token

          我們保證所有生成的鏈接都是來(lái)自于我們可信域的,通過(guò)在生成的鏈接里加入用戶(hù)不可控的Token對(duì)生成的鏈接進(jìn)行校驗(yàn),可以避免用戶(hù)生成自己的惡意鏈接從而被利用,但是如果功能本身要求比較開(kāi)放,可能導(dǎo)致有一定的限制。



          參考:

          https://juejin.cn/post/6844903772930441230

          http://drops.xmd5.com/static/drops/papers-58.html

          https://blog.csdn.net/pro20/article/details/105731095

          https://segmentfault.com/a/1190000021968717


          主站蜘蛛池模板: 久久se精品一区二区影院| 国模精品视频一区二区三区| 相泽南亚洲一区二区在线播放| AV怡红院一区二区三区| 久久精品国产一区二区三区| 一区二区三区www| 亚洲色婷婷一区二区三区| 亚洲国产国产综合一区首页| 亚洲一区二区三区精品视频| 亚洲日韩一区精品射精| 国产一区二区不卡老阿姨| 一区二区三区电影在线观看| 精品无码国产AV一区二区三区| 亚洲av成人一区二区三区观看在线 | 中文字幕一区二区三区在线播放| 亚洲国模精品一区| 亚洲Av无码国产一区二区| 亚洲性日韩精品一区二区三区| 亚洲韩国精品无码一区二区三区| 无码一区二区三区免费| 国产伦精品一区二区三区视频小说| 国产成人片视频一区二区| 韩国美女vip福利一区| 精品女同一区二区三区免费播放| 91精品国产一区二区三区左线| 色婷婷亚洲一区二区三区 | 国产av一区二区三区日韩| 国产一区二区三区福利| 中文字幕一区在线观看视频| 日韩AV无码一区二区三区不卡毛片| 无码人妻一区二区三区一| 91一区二区三区| 亚洲国产成人久久综合一区77| 无码一区18禁3D| 麻豆AV天堂一区二区香蕉| 91亚洲一区二区在线观看不卡| 国产在线不卡一区二区三区| 国产激情з∠视频一区二区| 三上悠亚国产精品一区| 中文字幕精品一区二区精品| 国产亚洲一区二区三区在线|