ctf misc 學習總結大合集


0x00 ext3php

linux掛載光盤,可用7zip解壓或者notepad搜flag,base64解碼
放到kali
掛載到/mnt/目錄 html

mount 630a886233764ec2a63f305f318c8baa /mnt/
cd /mnt/
ls

尋找 find | grep 'flag'find -name 'flag*'
查看 cat ./O7avZhikgKgbF/flag.txtjava


eg:查找key.txt這些文件裏是否存在
grep -r ‘key.txt’
顯示在1文件,看文件類型 root@kali:/mnt# file 1
1: gzip compressed data, was "key.txt", last modified: Wed Oct 1 06:00:52 2014, from Unix, original size 30.
解壓並顯示gzip下的文本內容 root@kali:/mnt# gunzip < 1
SECCON{@]NL7n+-s75FrET]vU=7Z}python

war文件unzip -c dw.war
linux

0x01 pdfgit

pdfinfo fa4bcaa5554447cea4c69c9b75a43283.pdf (pdf屬性,也可直接Adobe Reader查看)

pdftotext fa4bcaa5554447cea4c69c9b75a43283.pdf(查看pdf隱藏文本,也可Adobe Reader導出文本???)
使用pdf.js(可Google裝插件便可用)打開github

火狐(打開pdf.js的路徑/web/viewer.html導入)我把pdfjs放到apache上的htdocs目錄
file:///C:/www/Apache24/htdocs/pdfjs-2.2.228-dist/web/viewer.html
控制檯輸入:document.documentElement.textContent
web

0x02 shell命令shell

解base64 root@kali:~/文檔# express

echo -n "Tm9wZSAsIG5vdCBoZXJlIDspCg==" | base64 -d -

Nope , not here ;)

echo -n "BABA BBB BA BBA ABA AB B AAB ABAA AB B AA BBB BA AAA BBAABB AABA ABAA AB BBA BBBAAA ABBBB BA AAAB ABBBB AAAAA ABBBB BAAA ABAA AAABB BB AAABB AAAAA AAAAA AAAAB BBA AAABB" **| tr** AB .-

-.-. --- -. --. .-. .- - ..- .-.. .- - .. --- -. ... --..-- ..-. .-.. .- --. ---... .---- -. ...- .---- ..... .---- -... .-.. ...-- -- ...-- ..... ..... ....- --. ...--

 

0x03 文件塊頭損壞


rar 能用(文件頭52617221),查找在rar裏png前的文件頭
查看相關資料:https://blog.csdn.net/vevenlcf/article/details/51538837
if HEAD_TYPE==0x74(代表是文件頭)

0x04 ps:雙圖層、二維碼增長,合併

打開png發現兩個不一樣幀?改爲gif發現仍是空白,binwalk沒有隱藏文件
stegSolove打開只有一半的二維碼保存,用在線ps看看

把隱藏的圖層複製到另外一文件保存gif
再stegSolove打開也是半個二維碼
重疊三個圖片。在線連接:https://pixlr.com/express/
二維碼左下方向

左上

右上

0x05 jar包在線反編譯,酷

http://www.javadecompilers.com
eg:找到PlaneGameFrame.java

0x06 JPK使用

c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2

使用JPK(16進制轉化爲7位2進制binary)再二進制轉ASCII



如來十三掌
獲得base64碼:MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9
可是要先進行ROT13而後再base64解碼:

0x07 WIRESHARK篇

jpg開頭FFD8結尾FFD9
png開頭8950結尾6082
gif開頭4749結尾003B
bmp開頭424D
gz開頭1f8b
zip開頭504B
mp3開頭4944
pdf開頭2550
rar開頭5261
word開頭D0CF
ctrl+f顯示字符串、分組字節流,搜索flag,追蹤tcp流
導出圖片之類的,追蹤HTTP流,找到要複製的內容點擊原始數據,把搜索開頭結尾完整複製出16進制數據粘貼到winhex,選擇ascii-hex。保存便可打開

0x08 圖片

foremost
winhex
binwalk
圖片信息outguess
安裝

git clone https://github.com/crorvick/outguess
cd outguess/
./configure && make && make install

使用

outguess -r xxxx.jpg 11.txt

ls
stegsolve合併兩張圖片analyse->combiner。常有會隱藏信息在lsb,stegsolve根據查看各圖有效位詳情(選擇單獨或三個)rgb的最低有效位0位。

注意l與1太難辨認了
圖片也可網上找到原圖
放到tweakpng 工具中,發現它的檢驗值是錯的
使用checkpng -v 檢查圖片結構是否存在問題,發現有一些異常的IDAT塊。

有這麼多工具不如網上找個工具包,eg:https://ctf-wiki.github.io/ctf-tools/collections/

先base64解碼獲得ggQ@gQ1fqh0ohtjpt_sw{gfhgs#}
一看格式,無非是凱撒+柵欄,解題關鍵是flag格式ssctf{},因此先凱撒獲得
ssC@sC1rct0atfvbf_ei{srtse#}

16進制轉字符串
666c61677b68656c6c6f5f776f726c647d

看到git-upload-pack字樣,.nijiakadaye、config字樣,很大多是git泄露,嘗試下瀏覽器訪問http://60.191.205.87/.nijiakadaye

0x09 githack神器

git clone https://github.com/BugScanTeam/GitHack
cd GitHack
python GitHack.py http://60.191.205.87/.nijiakadaye/
cd dist/60.191.205.87

#而後就是git命令看看歷史提交記錄

git log -u
diff --git a/ssctf/phps/templaCes/flag.txt b/ssctf/php/templates/flag.txt

文件沒後綴,先用binwalk和file來觀看
用winhex打開文件,發現有pk,也就是壓縮包的標識頭

U2FsdGVkX1+VpmdLwwhbyNU80MDlK+8t61sewce2qCVztitDMKpQ4fUl5nsAZOI7bE9uL8lW/KLfbs33aC1XXw==
有+有==(狗頭)
U2Fsd頭,按照你的過往經驗,通常是aes加鹽
http://tool.chinaz.com/Tools/textencrypt.aspx
![在這裏插入圖片描述]()
也可不填密碼就是不加鹽試試

0x10 zip明文攻擊

0x11 水平鏡像反轉圖片

convert -flop reverse.jpg reversed.jpg

-flip #垂直
gif圖片幀分離

convert ggg.gif hh.jpg

橫向合成,用montage

montage flag*.png -tile x1 -geometry +0+0 a.png

-tile是拼接時每行和每列的圖片數,這裏用x1,就是隻一行
-geometry是首選每一個圖和邊框尺寸,咱們邊框爲0,圖照原始尺寸便可
*的意思指的全部的.png
tcpxtract能夠把因此的html圖片那些給提取出來
tcpxtract -f 55.pcap Found file of type "png" in session

python反編譯--在線https://tool.lu/pyc/
盲水印見BlindWaterMark(兩個看不到的圖片則可能存在哦)

python2 bwm.py decode day1.png day2.png flag.png

0x12 xortool工具的使用

pip2 install xortool
xortool 1 #查看1文件密鑰長度最多是
xortool 1 -l 13 -c 20 #*-l就是指定密鑰長度,-c表示出現頻率最高的字符。根據經驗,好比文本內容通常是空格(20),二進制文件通常是00*

#得出key

import os

c = open("1",'rb').read()
key = "GoodLuckToYou"
def xor(c,k):
keylen = len(k)
res = ""
for pos,c in enumerate(c):
res +=chr(ord(c) ^ ord(k[pos % keylen]))
return res 
print xor(c,key)

jar包雙擊不可用只能cmd上運行
修改註冊表
搜索regedit
HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command——"E:\java\jre\bin\javaw.exe" -jar "%1」

參考、學習文章:
[https://cloud.tencent.com/developer/article/1100387]
[https://www.bodkin.ren/index.php/archives/702/]
[CTF中的雜項小結]
[https://www.jianshu.com/p/02fdd5edd9fc]
[https://blog.csdn.net/u010391191/article/details/80818785]
[zlib解壓]
[https://www.bodkin.ren/index.php/archives/622/]
[Volatility內存取證]
[https://blog.csdn.net/qingchenldl/article/details/78447003]
[https://www.freebuf.com/column/152545.html]
[https://blog.csdn.net/yalecaltech/article/details/90574874]
[wireshark取證分析]
[https://www.freebuf.com/column/199838.html]

相關文章
相關標籤/搜索