摘要:先說(shuō)環(huán)境實(shí)戰(zhàn)過(guò)程手頭上有一個(gè)加密過(guò)的項(xiàng)目和一個(gè)擴(kuò)展的動(dòng)態(tài)連接庫(kù)。根據(jù)數(shù)據(jù)更改里面的文件。主要的時(shí)間是在試探加密參數(shù)上,很幸運(yùn)的是文件也沒(méi)有加殼。在破解的過(guò)程中也了解了加密的缺陷性,所以才有了下一篇文章通用加密文件還原方法。
先說(shuō)環(huán)境:
Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-52-generic x86_64) PHP 5.5.9-1ubuntu4.19 (cli)實(shí)戰(zhàn)過(guò)程
手頭上有一個(gè)加密過(guò)的項(xiàng)目和一個(gè)php擴(kuò)展的動(dòng)態(tài)連接庫(kù)(jinhou.so)。
PHP代碼類似如下的樣子:
根據(jù)上面分析到的已知條件有:
加密方式類似 eval 的加密方式。
jhgo 包含執(zhí)行代碼跟解密代碼。
jinhou.so 里面包含 jhgo 函數(shù)。
首先非常粗暴的用 VIM 打開(kāi) jinhou.so 看看有沒(méi)有什么關(guān)鍵的信息。
很不幸,明文寫著解決方案的出處。https://github.com/eixom/zoee...
看了代碼理論上這個(gè)擴(kuò)展暴露出來(lái)有兩個(gè)方法,一個(gè)執(zhí)行加密文件的方法和一個(gè)解密文件的方法。但實(shí)際上只有一個(gè)方法暴露出來(lái),那么還有一個(gè)被狡猾的提供者刪除了。
當(dāng)然源碼我們都有了也就不計(jì)較那么多了。
試著用官方源碼編譯下然后decode一下發(fā)現(xiàn)還是不行。
再仔細(xì)研究了一下,發(fā)現(xiàn)
里面有一串很神奇的字符串: 82dsa7dsas32112389uy7aydh8h2h2i412 心想是不是他的加密Key。再翻代碼果真是。在 https://github.com/eixom/zoeeyguard/blob/master/src/guard.h 文件里面。
原來(lái)的是 28dsa7dsas12312389uy7aydh8h1h2i312。改完之后發(fā)現(xiàn)還是不行。
果真我還是Too Young Too Simple啊。
程序員心理角度分析下:一般沒(méi)人會(huì)去改代碼,基本上都是動(dòng)動(dòng)參數(shù)而已。是不是還有其他參數(shù)改動(dòng)了?可是其他參數(shù)都是數(shù)組格式的這可頭疼了。
/* private key */ #define PRIVATE_KEY "28dsa7dsas12312389uy7aydh8h1h2i312" #define PRIVATE_KEY_LEN sizeof(PRIVATE_KEY) /* order */ static const unsigned char OBFUSCATED_ORDER[] = { 13, 6, 5, 7, 1, 15, 14, 20 , 9, 16, 19, 4, 18, 10, 2, 8 , 12, 3, 11, 0, 17 }; #define ORDER_SIZE sizeof(OBFUSCATED_ORDER) / sizeof(* OBFUSCATED_ORDER) /* alphabet for base64 */ static const unsigned char OBFUSCATED_ALPHABET[] = { "s", "4", "N", "E", "k", "X", "c", "u" , "J", "2", "U", "o", "O", "w", "K", "v" , "h", "H", "C", "/", "D", "q", "l", "R" , "B", "r", "5", "Z", "S", "Q", "6", "W" , "3", "L", "j", "8", "1", "z", "0", "G" , "n", "e", "y", "b", "I", "d", "i", "P" , "A", "9", "7", "+", "m", "V", "M", "Y" , "F", "g", "f", "p", "a", "T", "t", "x" }; #define ALPHABET_SIZE 64
這個(gè)時(shí)候得請(qǐng)出大殺器了:IDA Pro v6.8,反編譯神器。左邊是正常版本,右邊是jinhou.so。
根據(jù)數(shù)據(jù)更改guard.h里面的文件。重新編譯下,果真成功解密出來(lái)了。
事后總結(jié)1、 這次破解沒(méi)花費(fèi)多少時(shí)間,主要感謝加密方案跟加密代碼已經(jīng)明文告訴我們。
2、 主要的時(shí)間是在試探加密參數(shù)上,很幸運(yùn)的是.so文件也沒(méi)有加殼。
3、 在破解的過(guò)程中也了解了PHP加密的缺陷性,所以才有了下一篇文章:通用PHP加密文件還原方法。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/30487.html
摘要:前面一篇文章實(shí)戰(zhàn)還原加密文件說(shuō)到我發(fā)現(xiàn)了加密文件方式的不足,所以才有了這篇文章。加密分為兩種方式執(zhí)行一種是有擴(kuò)展。第二種代表的有和松哥的。來(lái)個(gè)例子這次咱們拿松哥的來(lái)下手。松哥的代碼寫得非常漂亮,知道解密耗費(fèi)時(shí)間還寫了個(gè)。 只是技術(shù)交流,并沒(méi)有惡意,請(qǐng)不要濫用此技術(shù)。如果有疑問(wèn)歡迎跟我交流。 前面一篇文章 實(shí)戰(zhàn)還原PHP加密文件 說(shuō)到我發(fā)現(xiàn)了PHP加密文件方式的不足,所以才有了這篇文章。...
摘要:前言首先聲明這不是,具體齊博版本就不說(shuō)了,后面應(yīng)該有人也發(fā)現(xiàn)這個(gè)漏洞并且發(fā)出來(lái)了。那時(shí)候?qū)Ξ?dāng)時(shí)的齊博系列進(jìn)行完整的分析和代碼審計(jì),漏洞不少,挑幾個(gè)有意思的發(fā)出來(lái)。任意長(zhǎng)度最終密文則為由于網(wǎng)絡(luò)傳輸字符關(guān)系,齊博這里對(duì)進(jìn)行了一次操作。 前言 首先聲明這不是0day,具體齊博版本就不說(shuō)了,后面應(yīng)該有人也發(fā)現(xiàn)這個(gè)漏洞并且發(fā)出來(lái)了。 本文為篤行日常工作記錄,文章是大概14年國(guó)慶節(jié)寫的,一直未公開(kāi)...
摘要:的機(jī)器學(xué)習(xí)庫(kù)的機(jī)器學(xué)習(xí)庫(kù),包括算法交叉驗(yàn)證神經(jīng)網(wǎng)絡(luò)等內(nèi)容。在即將到來(lái)的大會(huì)上,她將和大家分享在機(jī)器學(xué)習(xí)領(lǐng)域的全新可能。入門總結(jié)入門相關(guān),如安裝配置基本使用等。 基于 Swoole 開(kāi)發(fā) PHP 擴(kuò)展 Swoole-1.9.7 增加了一個(gè)新特性,可以基于 Swoole 使用 C++ 語(yǔ)言開(kāi)發(fā)擴(kuò)展模塊,在擴(kuò)展模塊中可以注冊(cè) PHP 內(nèi)置函數(shù)和類。現(xiàn)在可以基于 Swoole 來(lái)編寫 PHP ...
摘要:簡(jiǎn)單字符串緩存實(shí)戰(zhàn)完整實(shí)戰(zhàn)種設(shè)計(jì)模式設(shè)計(jì)模式是面向?qū)ο蟮淖罴褜?shí)踐成為專業(yè)程序員路上用到的各種優(yōu)秀資料神器及框架成為一名專業(yè)程序員的道路上,需要堅(jiān)持練習(xí)學(xué)習(xí)與積累,技術(shù)方面既要有一定的廣度,更要有自己的深度。 微型新聞系統(tǒng)的開(kāi)發(fā)(PHP 5.4 + MySQL 5.5) 微型新聞系統(tǒng)的開(kāi)發(fā)(PHP 5.4 + MySQL 5.5) 九個(gè)很有用的 PHP 代碼 php 代碼 國(guó)內(nèi)值得關(guān)注的...
摘要:本期月報(bào)我們分享使用證書(shū)做數(shù)據(jù)庫(kù)備份加密的最佳實(shí)踐。加密差異備份數(shù)據(jù)庫(kù)差異備份加密,備份操作前,我們插入一條數(shù)據(jù),以供后續(xù)的測(cè)試數(shù)據(jù)校驗(yàn)。因?yàn)閿?shù)據(jù)庫(kù)備份文件已經(jīng)加密。 摘要 在SQL Server安全系列專題月報(bào)分享中,我們已經(jīng)分享了:如何使用對(duì)稱密鑰實(shí)現(xiàn)SQL Server列加密技術(shù)、使用非對(duì)稱密鑰實(shí)現(xiàn)SQL Server列加密、使用混合密鑰實(shí)現(xiàn)SQL Server列加密技術(shù)、列加密...
閱讀 2836·2021-11-24 09:39
閱讀 4119·2021-10-27 14:19
閱讀 2055·2021-08-12 13:25
閱讀 2343·2019-08-29 17:07
閱讀 1121·2019-08-29 13:44
閱讀 1073·2019-08-26 12:17
閱讀 469·2019-08-23 17:16
閱讀 2055·2019-08-23 16:46