CTF4
簡單的題目就不予展示了
一些有意義的或者我確實有點問題的我展示一下
POST


主要是工具的使用吧,然后就是如何理解
畢竟上一題是?what=flag
這題是借助工具做的
alert

看源碼,即可
然后識別出來這是什么碼,去解碼
發(fā)現(xiàn)這是unicode碼
<!-- flag{657371b310fe2c7d35a47293dd3fd44c} -->

flag{657371b310fe2c7d35a47293dd3fd44c}
你必須讓他停下

打開之后一直閃動,右鍵查看源碼,F(xiàn)5刷新
一直刷到flag出現(xiàn)

flag{dac5582de451d538f908adc26c7aaace}
瑞士軍刀


然后使用kali的ncrack
把提示復(fù)制一下然后就有這些了

主要是了解ncstack這樣一個工具,以及一些命令
入門逆向

逆向題,評論說用ida來打開,我這里是kali,不知道怎么做,只能換windows試試
先下載ida軟件,生成后
打開然后把baby.exe導(dǎo)入
直接有了

?; 'f'
mov? ? ?byte ptr [esp+2Eh], 6Ch ; 'l'
mov? ? ?byte ptr [esp+2Dh], 61h ; 'a'
mov? ? ?byte ptr [esp+2Ch], 67h ; 'g'
mov? ? ?byte ptr [esp+2Bh], 7Bh ; '{'
mov? ? ?byte ptr [esp+2Ah], 52h ; 'R'
mov? ? ?byte ptr [esp+29h], 65h ; 'e'
mov? ? ?byte ptr [esp+28h], 5Fh ; '_'
mov? ? ?byte ptr [esp+27h], 31h ; '1'
mov? ? ?byte ptr [esp+26h], 73h ; 's'
mov? ? ?byte ptr [esp+25h], 5Fh ; '_'
mov? ? ?byte ptr [esp+24h], 53h ; 'S'
mov? ? ?byte ptr [esp+23h], 30h ; '0'
mov? ? ?byte ptr [esp+22h], 5Fh ; '_'
mov? ? ?byte ptr [esp+21h], 43h ; 'C'
mov? ? ?byte ptr [esp+20h], 30h ; '0'
mov? ? ?byte ptr [esp+1Fh], 4Fh ; 'O'
mov? ? ?byte ptr [esp+1Eh], 4Ch ; 'L'
mov? ? ?byte ptr [esp+1Dh], 7Dh ; '}'
可能是版本的問題這直接顯示出來了,我看別人的都沒有直接顯示啥的,本來是ASCii碼
66H 是 'f',6CH 是 'l',這樣子好定位到flag那邊
在ida中使用r可以查看ASCii對應(yīng)的值,比較方便
但是這個ida工具怎么用呢:
介紹:
signin

安卓逆向
使用GDA,github鏈接:https://github.com/charles2gan/GDA-android-reversing-Tool
文件解壓后是一個apk文件
現(xiàn)在使用GDA打開這個sign_in.apk
長這樣,然后看看是個什么情況吧



然后發(fā)現(xiàn)里面是java ,anriod的一些東西,碰巧我老師在上課也提過一句java跟anroid的好像是有聯(lián)系的后面去介紹
這里這個包太明顯了



0x7F0B0020 是標(biāo)識,只是一個地址
這個id是由R$string來管理。所以,我們才有思路就是在R文件里找到這里ID
可是這個字母并沒有變成數(shù)字,又怎么關(guān)聯(lián)到tostring里的呢,大部分是這個很長的字符串
我們先來試試吧
我們可以直接去搜索有關(guān)string,然后就能定位到這里


然后去找strings.xml文件找相匹配的碼
我怎么找不到救命

基本我就知道上面肯定錯了,主要是那串字符串怎么轉(zhuǎn)換成數(shù)字的問題,然后跟tostring匹配上
先往下面做
991YiZWOz81ZhFjZfJXdwk3X1k2XzIXZIt3ZhxmZ
我們現(xiàn)在去找一下解碼工具和倒敘工具
文字倒序工具,在線文字倒序 (qqxiuzi.cn)

Base64編碼/解碼器,在線解碼Base64 (sojson.com)

這兩個夠用的
那么如何處理0x7F0B0020這個呢,很難過,可能是工具的問題,因為看別人是有數(shù)字的
那就是說這個軟件可能無法通過解析這個地址
我們試試jadx行不行,也不能執(zhí)著于一個工具



java與anroid:
Android 是在java基礎(chǔ)之上的一門語言,Android是用來開發(fā)手機APP的,學(xué)Android 需要先學(xué)java基礎(chǔ)語法。
簡單地說,一種是操作系統(tǒng),一種是開發(fā)語言。具體來說,Android是一種基于Linux的開放源碼操作系統(tǒng),主要用于便攜設(shè)備(智能手機,平板電腦)。Java是一種面向?qū)ο蟮木幊陶Z言,它的最大的特點就是開源和免費,這因為如此,中國的大部分大型的軟件系統(tǒng)是用Java開發(fā)的。
Android的應(yīng)用層上的應(yīng)用程序是用Java編寫的,以Java作為開發(fā)語言,但是,Java并不等同于Android,因為Android SDK引用了Java SDK的大部分,少數(shù)部分被Android SDK所拋棄。所以,要想從事Android的開發(fā),就必須有Java基礎(chǔ)。另外,在Windows系統(tǒng)中可以搭建Android的Java開發(fā)環(huán)境,這樣就可以實現(xiàn)在Windows系統(tǒng)中測試Android項目了。
Android開發(fā)與JAVA兩者是相輔相成的。JAVA給Android提供了開發(fā)的語言環(huán)境,Android的開發(fā)通過JAVA語言去實現(xiàn)。
--摘
要學(xué)習(xí)逆向還是有一段路要走啊
ping

解壓出來是一個.pcap文件
我直接記事本打開是亂碼的
然后我用winhex看看
(winhex啟動真的有點問題可以看率winshark)


最后一個是 l
每個拼起來
flag{dc76a1eee6e3822877ed627e0a04ab4a}
但是這原理是什么呢,很好奇