<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          拿下了一個(gè)美女圖片網(wǎng)站

          共 3714字,需瀏覽 8分鐘

           ·

          2022-04-10 18:30


          相關(guān)閱讀

          300本計(jì)算機(jī)編程的經(jīng)典書(shū)籍下載

          AI全套:Python3+TensorFlow打造人臉識(shí)別智能小程序

          最新人工智能資料-Google工程師親授 Tensorflow-入門到進(jìn)階

          Java架構(gòu)全階段七期完整

          黑馬頭條項(xiàng)目 - Java Springboot2.0(視頻、資料、代碼和講義)14天完整版

          Spring核心編程思想

          2T架構(gòu)師學(xué)習(xí)資料干貨分享

          來(lái)自:FreeBuf.COM,起于凡而非于凡

          鏈接:https://www.freebuf.com/articles/web/250308.html


          說(shuō)明


          本文只是介紹一些很簡(jiǎn)單的思路。而這些思路想要成功實(shí)現(xiàn),基本就需要網(wǎng)站創(chuàng)建者犯一些低級(jí)的錯(cuò)誤了。
          這有些類似于初中、高中的一些數(shù)學(xué)題,數(shù)學(xué)沒(méi)及格的人,也可以用用帶入特殊值這個(gè)方法,比如帶入0、1等等特殊值,雖然比較無(wú)腦,但偶爾還真能拿到分。


          PS:本文僅用于技術(shù)研究與討論,嚴(yán)禁用于非法用途,違者后果自負(fù)


          過(guò)程
          某天在無(wú)聊的瀏覽網(wǎng)頁(yè)的過(guò)程中,偶然間,偶然的點(diǎn)進(jìn)了某個(gè)美女圖片網(wǎng)站。
          想著也是無(wú)聊,就隨便看看唄。
          結(jié)果一個(gè)圖集就放出3張圖,剩余的就要VIP(充錢),太可惡了!
          無(wú)聊的我就想看看能不能繞過(guò)限制,直接看到整個(gè)圖集。


          e5b38ce9eb7e447bb700407e319bd9d1.webp


          基本判斷


          這個(gè)網(wǎng)站看上去沒(méi)有使用一些現(xiàn)成的網(wǎng)站框架,比如wordpress,所以有可能出現(xiàn)低級(jí)錯(cuò)誤。
          如果使用的是網(wǎng)站框架,那我基本就直接放棄了,低版本框架雖然會(huì)有通用的漏洞(我沒(méi)能力利用),但低級(jí)錯(cuò)誤基本沒(méi)有的。
          先創(chuàng)建了個(gè)賬戶,登錄之后查看了下存儲(chǔ),發(fā)現(xiàn)沒(méi)有使用cookie,反而使用了sessionStorage和localStorage:


          cookie


          460da49ffd51b6973b021930fbd4af9a.webp


          sessionStorage


          c3c90fa03c10ecfef1f102b5e5453c2e.webp


          localStorage:略,沒(méi)什么有價(jià)值的內(nèi)容。
          從這里以及文章最開(kāi)始的圖來(lái)判斷,這個(gè)網(wǎng)站使用了不少前端的東西,很可能有些功能就是在前端實(shí)現(xiàn)的,或者使用了ajax技術(shù)。


          登錄、權(quán)限認(rèn)定


          登錄賬戶后,先判斷圖集加載頁(yè)面怎么認(rèn)定用戶的權(quán)限的,看看會(huì)不會(huì)用到sessionStorage的uid或者token。


          這里就要介紹下怎么使用火狐瀏覽器分析前端的代碼了。


          按F12打開(kāi)開(kāi)發(fā)者工具,然后按照?qǐng)D中的說(shuō)明,查看加載圖集頁(yè)面時(shí)所發(fā)起的ajax請(qǐng)求:


          33f5538cd368b50d38f45b1e1d6178c0.webp


          從上圖得知,一共發(fā)起了4次ajajx請(qǐng)求,根據(jù)相應(yīng)的內(nèi)容,getContentInfo接口返回了圖集的數(shù)據(jù)。


          5e9335bdbab046f6b3360d64e2a68196.webp


          從url這個(gè)字段來(lái)看,也剛好返回了3個(gè)圖片的url(用英文逗號(hào)分隔即可),也就是可以免費(fèi)看的那3張圖。
          那看看發(fā)起請(qǐng)求的代碼是怎么樣的吧,選中堆棧跟蹤,可以看到請(qǐng)求代碼的調(diào)用過(guò)程,從下至上:


          e9c9ebabcb9ae2f33f82c5855ac1e5ab.webp


          意思就是,在windows.onload中調(diào)用了getContentInfo函數(shù),getContentInfo函數(shù)中又調(diào)用了ajaxGetUser函數(shù)……
          具體的位置,我們通過(guò)點(diǎn)擊堆棧跟蹤函數(shù)名右側(cè)的藍(lán)色鏈接,就可以直接跳轉(zhuǎn)過(guò)去:


          ed11649bd6007c0f9c96f4484bbfe054.webp


          window.onload


          7f732bdc34132a9d76755a663495e28b.webp


          getContentinfo


          9b27c3b45493751b5c871dee6dc71342.webp


          這里可以看到傳入了一個(gè)object,就是getData,里面的token就是sessionStorage的token:


          e2e37d88e586c95f3ea20de63cc18e29.webp


          至于cid,就是圖集的id,這里我懶得去找在哪賦值的了。
          如果前端代碼編寫(xiě)不規(guī)范(比如這里對(duì)前端代碼都沒(méi)有混淆),那么變量很可能暴露在全局環(huán)境中。
          直接在開(kāi)發(fā)者工具的控制臺(tái)中輸出cid就能看到值了:
          那其實(shí)到這我又沒(méi)法進(jìn)行下去了,傳入token是為了判斷用戶身份,傳入cid是判斷是哪一個(gè)圖集。
          而對(duì)于token我也沒(méi)辦法對(duì)它做什么事情,也沒(méi)法冒充其他用戶的身份。
          如果他傳入的是uid,也就是用戶id,那倒還可以試一試。
          最后跟著代碼走下去的結(jié)果果然是這樣,沒(méi)有什么可以插手的地方。


          碰運(yùn)氣


          我的思路都是建立在對(duì)方犯低級(jí)錯(cuò)誤的前提下的,那么這種不在后端實(shí)現(xiàn)全部的數(shù)據(jù)處理,而是在前端實(shí)現(xiàn),限制對(duì)方觀看的某些資源的,還有哪些低級(jí)錯(cuò)誤呢?
          想了下,有沒(méi)有可能接口返回的數(shù)據(jù)是完整的,然后只是用js代碼將其隱藏而已……
          但是最開(kāi)始查看的返回?cái)?shù)據(jù)的時(shí)候,返回的圖片的url就3個(gè):


          5e9335bdbab046f6b3360d64e2a68196.webp


          哦,另外,圖片的加載雖然不需要任何權(quán)限,基本沒(méi)有多少的防盜鏈措施(意思就是可以直接通過(guò)圖片地址訪問(wèn)圖片),但圖片的地址是沒(méi)有規(guī)則可言的,如果是按照數(shù)字順序命名,那就可以直接獲取到整個(gè)圖集的圖片了。
          我不死心,把所有的字段都看了遍,還真有發(fā)現(xiàn),在圖集的下面,有一個(gè)推薦圖片:


          c77bc9652e647ef7facf9824f625441d.webp


          所以也返回了這部分的數(shù)據(jù):


          8533d2766cac7c9a0eb2d11f4f0de4f6.webp


          點(diǎn)開(kāi)一看,終于發(fā)現(xiàn)低級(jí)錯(cuò)誤了,url沒(méi)做處理,返回了整個(gè)圖集圖片的url:


          1e244b0398dbe6d9d4340f2268be7b21.webp


          也就是說(shuō),雖然這頁(yè)面的圖集本身的其余圖片我沒(méi)法看到,但是它頁(yè)面中推薦的圖集的圖片我全都可以看到:


          a7bdbef7d454018df2ebd071235affd4.webp


          注意:直接使用圖片地址其實(shí)還是不能查看到圖片,需要在地址后面加上一個(gè)參數(shù):

          407c371dab88eebd2e9875c3292a5333.webp


          但是這個(gè)參數(shù)每次登錄后都是固定的,可以從localStorage中得到,也可以從免費(fèi)可觀看的圖片地址中得到,意義不大。


          弱口令


          理論上有這招就可以把查看到大部分圖集的所有圖片了,不過(guò)我不是無(wú)聊嗎,又閑著看了看有沒(méi)有其他可以做的。
          在圖集的下面,有一個(gè)評(píng)論區(qū),當(dāng)然,也是接口返回的數(shù)據(jù)。
          在這里還是沒(méi)進(jìn)行處理,把所有評(píng)論用戶的用戶名全暴露了(手機(jī)號(hào)碼),當(dāng)然這些客戶的口令一般也不會(huì)出現(xiàn)很弱的口令,所以我沒(méi)去嘗試。
          但是上傳這些圖集的賬戶的口令,那就不好說(shuō)了,關(guān)注圖集上傳者后


          05944dc23437f959e0b0e65685db9ce1.webp

          在個(gè)人主頁(yè)的關(guān)注部分,接口返回的數(shù)據(jù)中依然沒(méi)進(jìn)行處理,可以直接看到被關(guān)注者的用戶名:


          8b644cdec210c037c5c0bd5e6bbb1d63.webp


          我也就隨便一試,居然還真使用了弱口令,下圖是登錄成功后”我的作品“頁(yè)面:


          ba20359fb4d46bfc36e8388e91b3983d.webp


          點(diǎn)擊一個(gè)作品進(jìn)去,顯示已購(gòu)買:


          e1041f1226e2449b7be26011a914681b.webp


          對(duì)后臺(tái)管理的滲透


          這個(gè)就不截圖詳細(xì)說(shuō)明了,思路和上面的差不多,也主要是發(fā)現(xiàn)對(duì)方在前端的低級(jí)錯(cuò)誤。
          僅僅知道登錄頁(yè)面A的地址,然后查看登錄頁(yè)面的Js文件。
          發(fā)現(xiàn)登錄成功后使用js進(jìn)行跳轉(zhuǎn),跳轉(zhuǎn)到主頁(yè)面B,并且登錄成功后的在sessionStorage中設(shè)置了一些字段。
          先直接訪問(wèn)主頁(yè)面B,發(fā)現(xiàn)會(huì)先將頁(yè)面的框架加載完畢后,再跳轉(zhuǎn)回頁(yè)面A。
          由此可以得出判斷,B頁(yè)面的跳轉(zhuǎn)語(yǔ)句和A頁(yè)面差不多,都是使用Js語(yǔ)句實(shí)現(xiàn)的。
          禁用Js功能,再進(jìn)入B頁(yè)面,發(fā)現(xiàn)果然停止了跳轉(zhuǎn)。
          但是雖然頁(yè)面框架正常加載,但卻沒(méi)載任何數(shù)據(jù)。
          查看B頁(yè)面加載的Js文件,在跳轉(zhuǎn)回A頁(yè)面的代碼前后找到了判斷語(yǔ)句,使用sessionStorage中的字段進(jìn)行判斷。
          于是設(shè)置sessionStorage中的相關(guān)字段,繞過(guò)了登錄的過(guò)程,數(shù)據(jù)正常加載了,達(dá)到了滲透的目的。


          感想


          其實(shí)從開(kāi)發(fā)的角度,如果要保證代碼至少在邏輯方面沒(méi)有明顯的漏洞,還是有些繁瑣的。
          舉個(gè)簡(jiǎn)單的例子,如網(wǎng)站的數(shù)據(jù)檢驗(yàn)功能,不允許前端提交不符合當(dāng)前要求規(guī)范的數(shù)據(jù)(比如年齡文本框部分不能提交字母)。
          那么為了實(shí)現(xiàn)這個(gè)功能,首先開(kāi)發(fā)者肯定要在前端實(shí)現(xiàn)該功能,直接在前端阻止用戶提交不符規(guī)范的數(shù)據(jù),否則用戶體驗(yàn)會(huì)很差,且占用服務(wù)器端的資源。
          但是沒(méi)有安全意識(shí)或覺(jué)得麻煩的開(kāi)發(fā)者就會(huì)僅僅在前端用Js進(jìn)行校驗(yàn),后端沒(méi)有重復(fù)進(jìn)行校驗(yàn)。
          這樣就很容易給惡意用戶機(jī)會(huì):比如不通過(guò)前端頁(yè)面,直接向后端接口發(fā)送數(shù)據(jù):或者,前端代碼編寫(xiě)不規(guī)范,用戶可以直接在瀏覽器控制臺(tái)中用自己寫(xiě)的Js代碼覆蓋原有的Js代碼;或者,用戶還可以直接在瀏覽器中禁用Js;等等。總之,前端的傳過(guò)來(lái)的數(shù)據(jù)可信度基本上可以認(rèn)為比較低,太容易被利用了。
          而我的思路都是很簡(jiǎn)單的,就是關(guān)注比較重要的幾個(gè)節(jié)點(diǎn),看看有沒(méi)有可乘之機(jī)。如登錄、權(quán)限判定、數(shù)據(jù)加載等前后,對(duì)方是怎么做的,用了什么樣的技術(shù),有沒(méi)有留下很明顯的漏洞可以讓我利用。
          像這兩個(gè)網(wǎng)站,加載的Js文件都沒(méi)有進(jìn)行混淆,注釋也都留著,還寫(xiě)得很詳細(xì)。比較湊巧的是,這兩個(gè)網(wǎng)站都用到了比較多的前端的技術(shù),也都用到了sessionStorage。
          特別的,它們都把很多的業(yè)務(wù)功能放在前端實(shí)現(xiàn),于是存在明顯漏洞的可能性就比較大,就值得我去嘗試。


          -End-


          全棧架構(gòu)社區(qū)交流群

          ?「全棧架構(gòu)社區(qū)」建立了讀者架構(gòu)師交流群,大家可以添加小編微信進(jìn)行加群。歡迎有想法、樂(lè)于分享的朋友們一起交流學(xué)習(xí)。

          掃描添加好友邀你進(jìn)架構(gòu)師群,加我時(shí)注明姓名+公司+職位】看完本文有收獲?請(qǐng)轉(zhuǎn)發(fā)分享給更多人

          往期資源:
          Flutter 移動(dòng)應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn) 視頻(開(kāi)發(fā)你自己的抖音APP)Java面試進(jìn)階訓(xùn)練營(yíng) 第2季(分布式篇)
          Java高級(jí) - 分布式系統(tǒng)開(kāi)發(fā)技術(shù)視頻
          瀏覽 62
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩每日更新 | 国内精品 在线播放 | 欧美在线播放99 | 91高潮久久久久久久 | 无码xxxxx |