javascript
助力小白常见JS逆向乱杀喂饭教程——Url加密
專欄作者:戰俘巡航,爬蟲工程師,具有豐富的Python數據采集經驗。
最近,讀者希望公眾號能出一些JS逆向的干貨教程,所以,安排!
首先不知道能寫多少簡單易懂的逆向內容供小白們吸收學習,目前先不講混淆相關的哈,先姑且稱這是V0.1的喂飯教程!Js沒基礎的補一補基礎,瀏覽器調試不會的看之前的文章里面推薦的瀏覽器介紹哈,別問,問就是我的收藏也沒了。
01
掃盲階段
問1:加密干啥用的?
答:不防你防誰。
?
問2:加密用在哪里?
答:看文章下面?區分下加密出現的地方。
?
問3:加密難嗎?
答:如果你是一個合格的pythoner就覺得不難(只管調用,不管實現原理)。
?
問4:加密有哪些?
答:對稱加密和非對稱加密(就像只有男人和女人一樣),后面會詳細說的。
?
問5:加密需要js底子嗎?
答:人家js寫的,你會的話總沒錯(技多不壓身,但是壓腦子)。
?
.......
當然,還需簡單區分下加密出現的地方(只限于小白級別):
02
Url加密
本文先從Url加密開始講哈,Url加密常見于訪問一級界面后,二級界面跳轉詳情頁時url進行加密,可以用selenium進行爬取,但是慢!舉個栗子(base64工具網站解密下):
aHR0cDovL2dnenkuendmd2IudGouZ292LmNuL3F1ZXJ5Q29udGVudC1qeXh4LmpzcHg/dGl0bGU9JmluRGF0ZXM9JmV4dD0mZXh0MT0mb3JpZ2luPSZjaGFubmVsSWQ9ODMmYmVnaW5UaW1lPSZlbmRUaW1lPQ==首頁可以看到都是正常的網址:
然后我們點擊一頁進入瞧一瞧,看一看:
哎哎哎,怎么就成這個亞子了???
?
經過反復查看之后,你肯定覺得:這就是加密(tnnd,遇到反爬了,俺也不會呀)!!!
?
這種情況就url加密,熟悉了網站之后,我們再來猜一下他是在哪里進行加密的。為什么要進行這個分析,其實是為了判斷它是在html里面加密的,還是在xhr請求的時候進行加密的。
?
來了來了!!!注意注意!!!
1.?首先進入網站首頁的時候很慢,你去查看其他的網站,比如百度之類的就很快,這里就比較可疑。
2.?點擊詳情頁的時候很快,先當作正常操作。
3.?查看下詳情頁在F12面板中的請求信息,發現在type欄是document,initator是Other,其實到這里一般有點經驗的就看出來了在哪里進行的加密。
?
這個時候怎么辦呢,先回去看看主頁面的標題列表。
在url的父級元素以及和url這個a標簽元素中并沒有出現 js函數,下面來看解決辦法:
是不是有個remove,挨個刪,刪一個點一下網站,哪個刪了不能跳轉了那就是到位置上了,但是明眼人一眼就看出來了click,remove后面跟著一個CAXX...js:2這樣的,點擊下click,會出來一堆元素,再點下a標簽后面的VMXX:1,就能進入加密函數。
?
進入之后看到了一堆js代碼,先格式化下。
點擊花括號,開始分析代碼,不懂js沒關系,我幫你。
?
大體上好像是這樣,我們在32行下斷點看看(新手建議16行下斷點一行行的進行調試哈,方便看的懂邏輯)。
右鍵點擊行號,出現藍色箭頭代表成功(更新的谷歌或者其他瀏覽器略顯不同),點擊網頁上的文章就能看到這邊已經斷下,并且32行網上已經給出了值。
不出提示的,在這個界面按兩下ctrl就能出來了,uuu就是網站的鏈接。到此呢,我們已經成功找到了這個網站的加密,并且知道了是AES加密,在上面的圖片中也分析了AES加密的結構:
CryptoJS.AES.encrypt(加密內容,密鑰){ 模式:?CryptoJS.mode.xxxx, 填充:?CryptoJS.pad.xxxx }?
你以為我為了湊字數來分析下這個結構嗎,不不不,在這個結構中可以提取出一些東西,比如:
?
這些東西有什么用呢?這些東西叫做特征碼,請再次進入F12界面:
?
?
然后把上面的特征碼放在搜索欄中搜索下,看看結果:
相信到這里你已經可以手撕AES加密了(手動滑稽~)
?
問:怎么實現這樣的加密?
答:會js的套個js 的AES加密庫。
?
問:不會js怎么辦?
答:上GitHub,上面的大佬早已經封裝好了。請盡情調用吧~
Ps:實現了加密,爬人家一頁兩頁的就行了哈,來學技能的不是讓你搞人家站的。
推薦閱讀 誤執行了rm -fr /*之后,除了跑路還能怎么辦?!程序員必備58個網站匯總大幅提高生產力:你需要了解的十大Jupyter Lab插件總結
以上是生活随笔為你收集整理的助力小白常见JS逆向乱杀喂饭教程——Url加密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安利十二个常用的IPython魔法命令
- 下一篇: gradle idea java ssm