【安卓逆向】CTF實(shí)戰(zhàn)分析

?既然這篇文章提到了CTF 我就先來科普一下 ?What is CTF???


賽事介紹:

CTF是一種流行的信息安全競賽形式缅叠,其英文名可直譯為“奪得Flag”孝宗,也可意譯為“奪旗賽”绳锅。其大致流程是飒焦,參賽團(tuán)隊(duì)之間通過進(jìn)行攻防對抗、程序分析等形式悼沿,率先從主辦方給出的比賽環(huán)境中得到一串具有一定格式的字符串或其他內(nèi)容等舔,并將其提交給主辦方,從而奪得分?jǐn)?shù)糟趾。為了方便稱呼慌植,我們把這樣的內(nèi)容稱之為“Flag”甚牲。


賽事起源:

CTF起源于1996年DEFCON全球黑客大會,以代替之前黑客 們通過互相發(fā)起真實(shí)攻擊進(jìn)行技術(shù)比拼的方式蝶柿。發(fā)展至今丈钙,已 經(jīng)成為全球范圍網(wǎng)絡(luò)安全圈流行的競賽形式。


競賽模式:

?CTF競賽模式具體分為以下三類:

? ? ? 一交汤、解題模式(Jeopardy)

在解題模式CTF賽制中雏赦,參賽隊(duì)伍可以通過互聯(lián)網(wǎng)或者現(xiàn)場網(wǎng)絡(luò)參與,這種模式的CTF競賽與ACM編程競賽芙扎、信息學(xué)奧賽比較類似星岗,以解決網(wǎng)絡(luò)安全技術(shù)挑戰(zhàn)題目的分值和時(shí)間來排名,通常用于在線選拔賽戒洼。題目主要包含逆向俏橘、漏洞挖掘與利用、Web滲透施逾、密碼敷矫、取證、隱寫汉额、安全編程等類別曹仗。

? ? ?二、攻防模式(Attack-Defense)

在攻防模式CTF賽制中蠕搜,參賽隊(duì)伍在網(wǎng)絡(luò)空間互相進(jìn)行攻擊和防守怎茫,挖掘網(wǎng)絡(luò)服務(wù)漏洞并攻擊對手服務(wù)來得分,修補(bǔ)自身服務(wù)漏洞進(jìn)行防御來避免丟分妓灌。攻防模式CTF賽制可以實(shí)時(shí)通過得分反映出比賽情況轨蛤,最終也以得分直接分出勝負(fù),是一種競爭激烈虫埂,具有很強(qiáng)觀賞性和高度透明性的網(wǎng)絡(luò)安全賽制祥山。在這種賽制中,不僅僅是比參賽隊(duì)員的智力和技術(shù)掉伏,也比體力(因?yàn)楸荣愐话愣紩掷m(xù)48小時(shí)及以上)缝呕,同時(shí)也比團(tuán)隊(duì)之間的分工配合與合作。?

? ? 三斧散、混合模式(Mix)

結(jié)合了解題模式與攻防模式的CTF賽制供常,比如參賽隊(duì)伍通過解題可以獲取一些初始分?jǐn)?shù),然后通過攻防對抗進(jìn)行得分增減的零和游戲鸡捐,最終以得分高低分出勝負(fù)栈暇。采用混合模式CTF賽制的典型代表如iCTF國際CTF競賽。


CTF的江湖:

我們一般習(xí)慣把ctf分成四類:

? ? ? ?1.題目來源是滲透實(shí)戰(zhàn)或安全研究的paper

? ? ? ? ? ?? 國內(nèi):BCTF(blue lotus)箍镜、0CTF(0ops)源祈、HITCON(hitcon\217)

? ? ? ? ? ?? 國際:DEFCON煎源、CODEGATE、PlaidCTF新博、Boston Key Party CTF


? ? ? ?2.題目來源是各類有趣的漏洞薪夕,舉辦者一般是賽棍

? ? ? ? ?? 國內(nèi):HCTF(HDUISA)、CCTF(0xFA)赫悄、XDCTF(XDSEC)原献、SCTF(三葉 草)、ALICTF(alibaba)埂淮、360


? ? 3.舉辦者一般是賽棍姑隅,但往往并不擅長于舉辦比賽

? ? ? ?? 國內(nèi):SSCTF(四葉草)、RCTF(ROIS)倔撞、華山杯讲仰、ISG、信息安全國 賽痪蝇、XCUNA(高校網(wǎng)安聯(lián)賽)


? ? ? 4.舉辦者一般是技術(shù)從業(yè)者鄙陡,并不懂CTF

? ? ? ? ?? 國內(nèi):WHCTF、新XDCTF躏啰、首都安全日等...


那么科普完畢 我們接下來就實(shí)戰(zhàn)一波


我這里就拿國內(nèi)一家安全公司出的一個(gè)入門級app的題目做分析

??要求如下:

? ? ? ? ?1.有殼就脫殼 ??2.拿到此題的Flag



首先拿到一個(gè)app用工具查一下 這里提示沒有殼


那么我們安裝一下看一下軟件頁面


一打開就是如此 ??兩個(gè)編輯框 ?然后點(diǎn)擊登陸就跳轉(zhuǎn)到另一個(gè)頁面提示”Waiting fot you!”


既然如此 ?打開jadx-gui工具反編譯一波 從java層入手


首先找到他的”AndroidManifest.xml”?里面有個(gè)”activity”標(biāo)簽里面就是他的活動頁面的信息



可以看到這里有3個(gè)活動頁面信息

<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER"/>

有這兩個(gè)屬性的值上面的活動頁面就是我們的入口頁面(一開打軟件所顯示的頁面信息)


既然如此我們之前看到過有個(gè)登陸的按鈕在一啟動的活動下 ??

那么我們到此活動頁面看一下按鈕下的邏輯事件(“com.tencent.testvuln.MainActivity”)


來到這個(gè)類里面找到按鈕點(diǎn)擊事件 也就是onClick事件下



首先一個(gè)switch語句獲取view.id 進(jìn)入第一個(gè)分支也就是 case R.id.button1


然后接著判斷我們輸入的內(nèi)容是不是為空 或者說輸入的長度是否為0 ?如果條件成立就進(jìn)行一個(gè)彈窗提示我們輸入的內(nèi)容”不能為空”


然后定義兩個(gè)string類型的變量接收我們輸入的內(nèi)容

Obj是第一個(gè)編輯框的內(nèi)容 ?obj2是第二個(gè)編輯框的內(nèi)容


然后startActivity跳轉(zhuǎn)到另一個(gè)活動頁面也就是”SecondActivity”并將我們輸入的內(nèi)容也傳遞過來 ?然后在onCreate初始化函數(shù)進(jìn)行判斷


這一塊兒的邏輯就很清晰了


if (Encryto.doRawData(this, stringExtra + stringExtra2).equals("VEIzd/V2UPYNdn/bxH3Xig=="))


所有的比較邏輯都是在這里了


調(diào)用一個(gè)Encryto類下的doRawData將this 以及stringExtra + stringExtra2).equals("VEIzd/V2UPYNdn/bxH3Xig=="傳遞進(jìn)去


我們現(xiàn)在跟蹤到doRawData方法

發(fā)現(xiàn)System.loadLibrary("JNIEncrypt"); ??加載了這樣一個(gè)so庫 ?此方法也是由native關(guān)鍵詞所修飾的


那么打開此app的lib文件夾發(fā)現(xiàn)也只有一個(gè)so文件庫


拿出我們的ida工具反編譯一波先

發(fā)現(xiàn)并沒有java_ 靜態(tài)注冊的方法那么我們也只能找到JNI_OnLoad動態(tài)注冊的位置

來到了

RegisterNatives就是注冊的函數(shù) 他的第三個(gè)參數(shù)就是我們要找到的方法體 ?第四個(gè)參數(shù)就是他注冊的個(gè)數(shù)



然后我們一步步跟蹤到了這里 ?發(fā)現(xiàn)采用了一個(gè)AES/ECB/PKCS5Padding的加密方式


Key勒就擺在面前的”thisisatestkey==”


然后我們來解密一波

將VEIzd/V2UPYNdn/bxH3Xig== ?解密得出”aimagetencent”


第三個(gè)頁面這里會解密一個(gè)9YuQ2dk8CSaCe7DTAmaqAA==值

將9YuQ2dk8CSaCe7DTAmaqAA== ?解密得出”Cas3_0f_A_CAK3”


以上版權(quán)歸博主所有趁矾,如有轉(zhuǎn)載請聯(lián)系作者,或+群:692903341

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末给僵,一起剝皮案震驚了整個(gè)濱河市毫捣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌帝际,老刑警劉巖蔓同,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蹲诀,居然都是意外死亡斑粱,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門脯爪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來珊佣,“玉大人,你說我怎么就攤上這事披粟。” “怎么了冷冗?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵守屉,是天一觀的道長。 經(jīng)常有香客問我蒿辙,道長拇泛,這世上最難降的妖魔是什么滨巴? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮俺叭,結(jié)果婚禮上恭取,老公的妹妹穿的比我還像新娘。我一直安慰自己熄守,他們只是感情好蜈垮,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著裕照,像睡著了一般攒发。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上晋南,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天惠猿,我揣著相機(jī)與錄音,去河邊找鬼负间。 笑死偶妖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的政溃。 我是一名探鬼主播趾访,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼玩祟!你這毒婦竟也來了腹缩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤空扎,失蹤者是張志新(化名)和其女友劉穎藏鹊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體转锈,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盘寡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撮慨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竿痰。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖砌溺,靈堂內(nèi)的尸體忽然破棺而出影涉,到底是詐尸還是另有隱情,我是刑警寧澤规伐,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布蟹倾,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鲜棠。R本人自食惡果不足惜肌厨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望豁陆。 院中可真熱鬧柑爸,春花似錦、人聲如沸盒音。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽里逆。三九已至进胯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間原押,已是汗流浹背胁镐。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诸衔,地道東北人盯漂。 一個(gè)月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像笨农,于是被迫代替她去往敵國和親就缆。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容