一次過反爬蟲的過五關斬六將-Ali0th

Author: Ali0thjavascript

Date : 2018-03-19html

@[TOC]java

0.1. 前言

這一篇是我以前發在先知上的文章,今天把它移過來。當時一開始作爬蟲經過解析 js 的形式去破解,感受有點費力,如今通常不會這麼搞,因此這篇文章大概看看就好。python

在這裏插入圖片描述

0.2. 第一關:拿到javascript內容

一開始瀏覽器看不到反爬蟲的js代碼。數組

難點:瀏覽器

一開始打開這個網站,比較難留意到有個狀態是521頁面的跳轉。由於這個頁面一小時只出現一次,而且爲1500毫秒。cookie

過關技巧:eclipse

阻止cookie來得到javascript函數

具體實現:測試

刪除cookie並阻止

在這裏插入圖片描述

查看源碼

在這裏插入圖片描述

0.3. 第二關:得到真實代碼

難點:

將真正的代碼隱藏起來,阻止了那些直接一上來就解碼的人。

過關技巧:

找到最終輸出點爲eval

具體實現:

1)美化 使用【jsbeautifier.org/】

在這裏插入圖片描述

2)理解代碼

在這裏插入圖片描述
能夠看到eval是最後一步,說明這裏最後是經過eval來拼接並執行程序。因此這裏能夠把eval改成【console.log】放到F12的console口裏看一下結果。

在這裏插入圖片描述
能夠看到黃色部分爲運行結果,說明是二次混淆了,這個黃色部分纔是真實代碼。複製出來看。以下:

在這裏插入圖片描述
把頭尾的東西去掉,沒用的。再美化以後:
在這裏插入圖片描述

0.4. 第三關:修正代碼

難點:

若是你看到上面有個eval就使用第二關的方法,那就錯了,這裏的eval在代碼中間,只是用來拼接用的。並且這裏還有個故意留下的坑,就是讓程序運行錯誤,因此這裏要好好理解代碼,弄懂其邏輯。

過關技巧:

放到IDE裏梳理代碼。(這裏使用ecilpse)

具體實現:

1)代碼貼到ecilpse裏

在這裏插入圖片描述

使用eclipse搭建一個js的測試頁面,隨時用瀏覽器刷新查看結果。

2)理清代碼整體邏輯,並去掉不重要代碼

在這裏插入圖片描述

如圖爲總體代碼的大邏輯,因而咱們能夠去掉不重要的代碼,留下重要部分,放到eclipse裏調試。

代碼爲:

在這裏插入圖片描述

最後的dc即輸出了咱們要的結果。

3)輸出dc出來

在最後寫上一句【console.log(dc);】而後放到F12裏:

在這裏插入圖片描述

看,這就是咱們獲得要的結果。

在這裏插入圖片描述

可是,放在python裏,這樣流程走下來的結果偶爾會對,偶爾又不行了。爲何呢?還要繼續深挖。

0.5. 第四關:jsfuck

難點:

特殊字符

過關技巧:

細心

具體分析:

cd數組,沒錯咱們要搞cd數組。看起來應該是jsfuck,打CTF常常會遇到。但這裏的話要怎麼去分解他呢?看到這個地方:

在這裏插入圖片描述

再仔細看看:f.reverse()[[-~[]]](cd[i])其中,reverse()是逆序的意思,能夠先去掉,就剩下:f[[-~[]]](cd[i])

這個的形式其實就是f[ ]( ),就是調用上面的f函數的形式,那麼最奇怪的點就在這裏[ ]裏的[-~[]],它是直接用的! 因而我試着直接看它是值是什麼:

在這裏插入圖片描述

它直接就是值爲1的數組。那麼直接看cd的值試試:

在這裏插入圖片描述

沒錯是一堆數組。用python看,裏面是有幾層數組:

在這裏插入圖片描述

爲何會這樣呢?js的什麼特性致使了?想了半天,想到了不少年前看到的一篇文章【www.freebuf.com/sectool/535…

在這裏插入圖片描述

好了,過了這一關,基本上算是轉折點,快接近終點了。

0.6. 第五關:列表裏的列表

難點:

f函數邏輯。

過關技巧:

看懂f函數邏輯,慢慢調試才知每部分的功能。

具體分析:

上一關咱們看到數組裏面還要數組,那麼咱們就要看各個數組對應的是什麼值。 通過調試,發現最多出現三層數組。咱們分別命令爲x、y、z層。其中:

x層直接爲字符串,只要拼接就好了。

y1層爲ascii碼。

y2層和z層爲對應當前url的第n個字符。這就是爲何上面第三關還不算成功的緣由。

在這裏插入圖片描述

再具體說明一下z層,下面這個函數能夠得到當前的頁面的url,因此每一個網站都不同的。因此這一層我的認爲是個至關棒的設計。

在這裏插入圖片描述

好比這裏訪問的是http://localhost/,那麼先過濾出來localhost/,而後若是cd裏這個z層數組值是4,那麼獲得的字符是a。因此最終,這個cd數組根據每一層的轉換,就能變爲:

在這裏插入圖片描述

而後拼接dc就是最終咱們要的結果了啦啦啦:

在這裏插入圖片描述
相關文章
相關標籤/搜索