js 控制鼠標_JS逆向 | 面向小白之eval混淆

6a94af6f29cd05379ec4c3e663280080.png

所有文章首發在我的微信公眾號“逆向新手”,更多逆向系列請關注公眾號,謝謝!

聲明:本文只作學習研究,禁止用于非法用途,否則后果自負,如有侵權,請告知刪除,謝謝!

引言

eval混淆,其實就是利用了eval()函數的特性,它跟Python里的eval函數差不多,能把字符串解析成代碼來執行。如:

eval("var text = 123")  // 就是在執行括號里的代碼
console.log(text)  // 輸出 123

它的還原也很簡單,只需要把 eval 改成 console.log ,然后在瀏覽器的控制臺(Console標簽)輸出,即可還原出源代碼,如下所示:

ec5d1e9bd5453666503f444ca27a5c1f.png


不過據有些大佬說,碰到過即使改成console.log,也不會顯示出源代碼的eval混淆。反正我是沒碰到,碰到我也不會╮(╯▽╰)╭

接下來正式開始吧~

某市房產信息平臺

目標網站:

aHR0cDovLzYwLjE3My4yNTQuMTI2Lw

訪問網站,隨意點擊一個小區,會跳轉到一個隨機網址,但是在頁面源代碼中,卻看不到該網址信息,只能看到如下所示:

fcb5d7357a878468c06685c47f29b572.png


看到這里有個 οnclick=“reurl(this)” ,意思就是“在點擊時”觸發 reurl 函數,那我們就全局搜索(ctrl+shift+F) reurl 這個函數

675207c1f1957e7042f1956e6b9f0368.png


搜到的第一個文件為頁面代碼,所以很明顯就是第二個文件,進去再搜索(ctrl+F) reurl,看到只有一個結果,是一個eval混淆,那就照著上面說的還原下吧~

6158e69f339656e8dc690fb110a78b40.png


果然出來了一個 reurl 函數。不過這里我采用另一種辦法,能夠更快的定位,直接在console控制臺輸入 reurl 回車即可。

f4b7932b6342e14f18bc224b80a02f3b.png


如果代碼都在一行,可點擊左下角{}進行美化。接下來就是進入下斷點調試了,點擊前面的行數(即下斷點,數字上會出現藍色標簽),然后隨便點個小區,程序就會停在斷點處(即運行到這一行,但這行還沒運行)。這時候把鼠標放在 a.id 上面可知它就是前面圖【2】頁面上的id值。

e0e3d806ced1906a757cd850d3264d9d.png


先把這段代碼復制到本地js文件中,修改成本地可以運行的樣子,如下:

function reurl(id) {var a = "/item/" + recode(id)return a  // 這里的a即為我們要的網址鏈接
};

接著再把鼠標放在 recode 函數上面,點擊上方的鏈接,繼續跳轉到該函數中。

725fcadc8637cfaaaad564009af276ab.png


又看到兩個新的函數出現,nscaler 和 SetObjNum,一樣的,復制這段代碼到本地并稍作修改,繼續下斷點,然后按F8,讓程序往下運行,進入函數,扣扣扣就行啦。

某變IP

目標網站:

aHR0cHM6Ly93d3cuYmFpYmlhbmlwLmNvbS9ob21lL2ZyZWUuaHRtbA==

打開F12,刷新網頁,發現需要的數據都在free.html中,但查看網頁源代碼,發現IP字段被加密

c00e561a6d91badf142776b1b5f5222f.png


一樣可以在控制臺輸入或全局搜索FFcontraceptive(這個名稱會變,根據網頁提供的搜索)。這里采用全局搜索,搜到兩個文件,其中一個為free.html,都是源代碼加密的地方。那明顯在第二個中,打開看下

2be7ef96c694ba9f706741ac8ce0e8b9.png


可以看到這里調用了ddip函數,嘗試打斷點并刷新網頁,發現斷不上。因此在這文件中搜索ddip看下。

0a1bae970ffddc5e67ddf800c72d2189.png


總共只能搜索到兩個結果,但是這里看到有個eval,看來又是被混淆了,一樣的套路還原一下。

2fd8674fe7f767bcc41392991992ad32.png


將還原后的代碼保存到本地,同理將這段eval上面一段的eval還原,得到如下代碼:

8e3b54c487ce65106db92a1df5f38a2a.png


我們運行一下ddip函數,發現報錯$未定義。這里可以看到其實是用了base64的decode函數。還是在原來的js文件中搜索decode,可以找到base64就在這個自執行函數中生成

fe911f1c163cbfaa5ea2f914c23445de.png

將這段匿名函數整個復制下來,把最后的傳參jQuery改成

= {}; 即可運行:

1a09bfbc81d4efd7e1c14d18d1d4fd42.png


這兩個都沒什么難度,對于一些不懂的地方,可以多下斷點,然后鼠標懸停,或復制它到控制臺查看就行了,就是不斷調試的過程。

兩個網站的詳細代碼,均已上傳本人GitHub,可點擊此處跳轉。希望各位先自己練習試一下,不明白的再配合代碼理解哦~

歡迎關注我的微信公眾號“逆向新手”,謝謝!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534012.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534012.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534012.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mac mysql密碼錯誤_解決mac 下mysql安裝后root用戶登錄密碼錯誤問題

使用的mac OS 10.11 安裝mysql后訪問root/root用戶失敗,網上找了一些解決辦法,下面記錄下解決方法方便以后自己查詢概述(看懂下面就不用看了):停服務:sudo /usr/local/mysql/support-files/mysql.server stop安全模式…

python獲取軟件窗口句柄_Python獲取瀏覽器窗口句柄過程解析

句柄(handle)是C程序設計中經常提及的一個術語。它并不是一種具體的、固定不變的數據類型或實體,而是代表了程序設計中的一個廣義的概念。句柄一般是指獲取另一個對象的方法——一個廣義的指針,它的具體形式可能是一個整數、一個對…

mysql 副本 同步_副本機制與副本同步

1.管理其他副本的節點稱為Follower。每當Leader將新數據寫入本地存儲d的副本時,也會將數據更改寫入日志之中。每個Follower會從Leader那里獲取修改日志,并相應地更新數據到的本地副本之中,這樣,所有的在Follower上副本的修改順序會…

mongodb 輸出數組字段_MongoDb文檔操作、索引操作

學習主題:MongoDb學習目標:掌握mongodb文檔的更新掌握mongodb文檔的刪除掌握mongodb文檔的查找掌握mongodb文檔的條件操作符掌握mongodb中的索引操作Mongodb的更新方式Update()函數更新Save()函數更新Mongodb的update更新?Update用于更新已存…

表情符號mysql utf8mb4_mysql utf8mb4與emoji表情

一 什么是Emojiemoji就是表情符號;詞義來自日語(えもじ,e-moji,moji在日語中的含義是字符)表情符號現已普遍應用于手機短信和網絡聊天軟件。emoji表情符號,在外國的手機短信里面已經是很流行使用的一種表情。手機上如何使用emoji&…

html自適應_web前端入門到實戰:HTML 文檔流,設置元素浮動,導致父元素高度無法自適應的解決方法...

元素浮動定義float 屬性定義元素在哪個方向浮動。以往這個屬性總應用于圖像,使文本圍繞在圖像周圍,不過在 CSS 中,任何元素都可以浮動。浮動元素會生成一個塊級框,而不論它本身是何種元素。如果浮動非替換元素,則要指定…

idea 遠程調試_我的天!你竟然不會用IDEA遠程調試Tomcat...

# 準備工作明確的遠程服務器的IP地址,某些我是:192.168.92.128關掉服務器防火墻:service iptables stop# 本地遠程服務器配置添加遠程服務器,如下圖復制遠程服務器自動生成的JVM參數,等下有用,如下圖&#…

mysql異步查詢 java_基于 mysql 異步驅動的非阻塞 Mybatis

雖然 spring5 也推出了 WebFlux 這一套異步技術棧,這種極大提升吞吐的玩法在 node 里玩的風生水起,但 java 世界里異步依舊不是主流,Vertx 倒是做了不少對異步的支持,但是其對于數據訪問層的封裝依舊還是挺精簡的,傳統…

跨域獲取后臺數據undefined_同源策略amp;JSONP跨域

同源策略&JSONP跨域同源策略 對于同源的定義,MDN給出了這樣的解釋:如果兩個頁面的協議,端口(如果有指定)和主機都相同,則兩個頁面具有相同的源。如何確定兩個頁面是否同源,只要比較兩個頁面…

python 除數不能為零的報錯有哪些_【社區精選40】Python錯誤處理及代碼調試方法(文末贈書中獎名單)...

本文整理自愛數據學院中的問答更多精彩問答,進入下方社區網站查看http://www.lovedata.cn/invitation社區精選話題 第40期Python錯誤處理及代碼調試方法一次寫完代碼程序并能夠正常運行的概率很小很小,總會有各種各樣的錯誤bug需要處理。有的報錯簡單&a…

利用python批量查詢企業信息_python實現批量獲取指定文件夾下的所有文件的廠商信息...

本文實例講述了python實現批量獲取指定文件夾下的所有文件的廠商信息的方法。分享給大家供大家參考。具體如下:功能代碼如下:import os, string, shutil,reimport pefileimport codecs, sysimport wximport struct#輸出中打印Unicode字符#sys.stdout co…

mac mysql prefpane_【MySQL數據庫開發之一】Mac下配置安裝數據庫-MySQL

本站文章均為那么從今天開始陸續會更新數據庫和Hibernate框架的博文,也是Himi學習的歷程記錄,希望大家能共同討論和研究;OK,本篇簡單介紹安裝吧,首先到MySQL官方網站:如上圖:點擊DOWNLOAD &…

系統新模塊增加需要哪些步驟_想要吸引人流,兒童樂園需要增加哪些新設備呢...

兒童樂園是現今最火爆的一個投資項目,因為它的主要消費群體是孩子,而現在的家長們對孩子們的寵愛,基本都會答應讓孩子們去兒童樂園里面玩耍。但是兒童樂園的投資經營者也會遇見一些小問題,例如兒童樂園添加設備要怎么選擇呢&#…

php mysql 圖像_php-向/從MySQL數據庫插入/查看圖像

我在DB中插入圖像時遇到問題.該表具有以下結構:> id-> INT(3)->自動增量>名稱-> VARCHAR(30)> extension-> VARCHAR(10)[可能太短]> img-> MEDIUMBLOB插入圖像的PHP代碼為:if($_FILES[file][error]0){$result is_uploaded_f…

照片打印預覽正常打印空白_小米發布口袋照片打印機,可無墨打印3寸背膠照片...

9月11日消息,小米推出一款小米口袋照片打印機。與之前的小米米家照片打印機相比,這款新品更加小巧便攜,體積接近充電寶大小,凈重僅181g,便于隨身攜帶。小米口袋照片打印機采用ZINK無墨技術打印,即使用嵌入紙…

c中獲取python控制臺輸出_在真實的tim中用C捕獲控制臺python打印

我正在嘗試從C創建一個python進程,并從python腳本獲取打印結果。在這就是我的C代碼:namespace ConsoleApp1{public class CreateProcess{public String PythonPath { get; set; }public String FilePath { get; set; }public String Arguments { get; se…

python三大編程語言_程序員最需要的三種編程語言

隨著科學技術的進步和新技術的進步,編程語言的種類越來越多,變化是程序員需要跟蹤和學習許多語言 然而,有太多的語言無法一一掌握 在目前的形式中,最需要掌握的三種編程語言是 現在判斷還不晚 坦白說,找工作很容易 它可…

MySQL優化調優有沒有做過_MySQL 調優/優化的 100 個建議

MySQL是一個強大的開源數據庫。隨著MySQL上的應用越來越多,MySQL逐漸遇到了瓶頸。這里提供 101 條優化 MySQL 的建議。有些技巧適合特定的安裝環境,但是思路是相通的。我已經將它們分成了幾類以幫助你理解。MySQL監控MySQL服務器硬件和OS(操作系統)調優&…

python語句print(type([1、2、3、4))_Python 學習第一天

一、學習內容1.print:表示輸出print (“hello world”)單行注釋:#多行注釋:“““ ”””2.運算符注意:才表示等于,!表示不等于3.位運算符~按位取反:~104.變量和賦值teacher“老馬的…

mysql核心參數_MySQL技術體系之核心參數

本文主要基于MySQL 5.7版本的數據庫環境,總結my.cnf文件中核心參數的配置使用,讓更多的人對MySQL技術體系有更全面、更專業的深度了解。一、客戶端核心參數1、port端口號,默認33062、socketSocket文件地址,默認以.sock為文件名稱后…