#遇到一小堆網頁,文本,圖片的那種文件夾,能夠打開全部的文本搜flag或key或者key{ #misc裏的莫爾斯電碼圖片轉文本,注意空格的使用啊 1.一串數字 {{8,2,22,97,38,15,0,40,0,75,4,5,7,78,52,12,50,77,91,8}, {49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48,4,56,62,0}, {81,49,31,73,55,79,14,29,93,71,40,67,53,88,30,3,49,13,36,65}, {52,70,95,23,4,60,11,42,69,24,68,56,1,32,56,71,37,2,36,91}, {22,31,16,71,51,67,63,89,41,92,36,54,22,40,40,28,66,33,13,80}, {24,47,32,60,99,3,45,2,44,75,33,53,78,36,84,20,35,17,12,50}, {32,98,81,28,64,23,67,10,26,38,40,67,59,54,70,66,18,38,64,70}, {67,26,20,68,2,62,12,20,95,63,94,39,63,8,40,91,66,49,94,21}, {24,55,58,5,66,73,99,26,97,17,78,78,96,83,14,88,34,89,63,72}, {21,36,23,9,75,0,76,44,20,45,35,14,0,61,33,97,34,31,33,95}, {78,17,53,28,22,75,31,67,15,94,3,80,4,62,16,14,9,53,56,92}, {16,39,5,42,96,35,31,47,55,58,88,24,0,17,54,24,36,29,85,57}, {86,56,0,48,35,71,89,7,5,44,44,37,44,60,21,58,51,54,17,58}, {19,80,81,68,5,94,47,69,28,73,92,13,86,52,17,77,4,89,55,40}, {4,52,8,83,97,35,99,16,7,97,57,32,16,26,26,79,33,27,98,66}, {88,36,68,87,57,62,20,72,3,46,33,67,46,55,12,32,63,93,53,69}, {4,42,16,73,38,25,39,11,24,94,72,18,8,46,29,32,40,62,76,36}, {20,69,36,41,72,30,23,88,34,62,99,69,82,67,59,85,74,4,36,16}, {20,73,35,29,78,31,90,1,74,31,49,71,48,86,81,16,23,57,5,54}, {1,70,54,71,83,51,54,69,16,92,33,48,61,43,52,1,89,19,67,48}} 解法: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Security.Cryptography; namespace Test { class Program { static void Main(string[] args) { int[,] a ={{8,2,22,97,38,15,0,40,0,75,4,5,7,78,52,12,50,77,91,8}, {49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48,4,56,62,0}, {81,49,31,73,55,79,14,29,93,71,40,67,53,88,30,3,49,13,36,65}, {52,70,95,23,4,60,11,42,69,24,68,56,1,32,56,71,37,2,36,91}, {22,31,16,71,51,67,63,89,41,92,36,54,22,40,40,28,66,33,13,80}, {24,47,32,60,99,3,45,2,44,75,33,53,78,36,84,20,35,17,12,50}, {32,98,81,28,64,23,67,10,26,38,40,67,59,54,70,66,18,38,64,70}, {67,26,20,68,2,62,12,20,95,63,94,39,63,8,40,91,66,49,94,21}, {24,55,58,5,66,73,99,26,97,17,78,78,96,83,14,88,34,89,63,72}, {21,36,23,9,75,0,76,44,20,45,35,14,0,61,33,97,34,31,33,95}, {78,17,53,28,22,75,31,67,15,94,3,80,4,62,16,14,9,53,56,92}, {16,39,5,42,96,35,31,47,55,58,88,24,0,17,54,24,36,29,85,57}, {86,56,0,48,35,71,89,7,5,44,44,37,44,60,21,58,51,54,17,58}, {19,80,81,68,5,94,47,69,28,73,92,13,86,52,17,77,4,89,55,40}, {4,52,8,83,97,35,99,16,7,97,57,32,16,26,26,79,33,27,98,66}, {88,36,68,87,57,62,20,72,3,46,33,67,46,55,12,32,63,93,53,69}, {4,42,16,73,38,25,39,11,24,94,72,18,8,46,29,32,40,62,76,36}, {20,69,36,41,72,30,23,88,34,62,99,69,82,67,59,85,74,4,36,16}, {20,73,35,29,78,31,90,1,74,31,49,71,48,86,81,16,23,57,5,54}, {1,70,54,71,83,51,54,69,16,92,33,48,61,43,52,1,89,19,67,48}}; int max = -100000; for (int i = 0; i < 20; i++) for (int j = 0; j < 17; j++) { int k = a[i, j] * a[i, j + 1] * a[i, j + 2] * a[i, j + 3]; if (k > max) max = k; } for (int i = 0; i < 20; i++) for (int j = 0; j < 17; j++) { int k = a[j, i] * a[j + 1, i] * a[j + 2, i] * a[j + 3, i]; if (k > max) max = k; } for (int i = 0; i < 17; i++) for (int j = 0; j < 17; j++) { int k = a[i, j] * a[i + 1, j + 1] * a[i + 2, j + 2] * a[i + 3, j + 3]; if (k > max) max = k; } for (int i = 19; i >2; i--) for (int j = 0; j < 17; j++) { int k = a[i, j] * a[i - 1, j + 1] * a[i - 2, j + 2] * a[i - 3, j + 3]; if (k > max) max = k; } Console.WriteLine(max); Console.ReadLine(); } } } 獲得IL0V3Pr0Gr4m@#!! #空白表示 %00,%0a,%0d,%0a%0d,%0b,%0c,%a0,null,none #圖片隱寫術# ################################################################################################ 1. Stegsolve a) Stegsolve打開-analyse-file format可查看相關信息 i. http://bobao.360.cn/ctf/learning/138.html web 1 b) 對於lsb圖片隱藏 一樣是用stegsolve打開-data extract-嘗試Bit Planes-preview查看相關信息 2.對圖片的微處理 A )一些文件用16進制打開後能夠看出來是圖片,但圖片查看器缺沒法打開,也許是缺乏png頭。加上png頭後即可以打開. B )嘗試修改圖片分辨率,查看flag是否被覆蓋 i.http://bobao.360.cn/ctf/learning/137.html 強網杯 c ) 合併的圖片文件 對於合成的圖片根據文件頭可分辨內容 Jpg gif89a Png png 標誌:IHDR 文件頭16進制:89 50 4e 47 0d 0a 1a 0a Rar PK 各種文件頭及類型:http://ctf.idf.cn/index.php?g=&m=article&a=index&id=30 D )base64編碼後的文件 Data:image/png;base64…….. Base64編碼後的png圖片,直接放到瀏覽器上回車獲得圖片 http://tool.chinaz.com/qrcode/ E)有些圖片直接用記事本打開看不到內容,但在linux下用cat filename就會獲得意想不到的結果。 3. binwalk binwalk -e 自動導出,猥瑣流啊!功能強大啊!我靠 Binwalk是一個固件的分析工具,旨在協助研究人員對固件非分析,提取及逆向工程用處。簡單易用,徹底自動化腳本,並經過自定義簽名,提取規則和插件模塊,還重要一點的是能夠輕鬆地擴展。可用來檢測是否有合併的文件。而且能夠提取數據。 #使用的時候注意查看不一樣文件所在的開頭數字,彆着急,慢慢來嘛 >binwalk 2.png >結果以下: DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 0 0x0 PNG image, 266 x 205, 8-bit/color RGBA, non-interlaced 80 0x50 Zlib compressed data, default compression, uncompressed size >= 98304 100097 0x18701 RAR archive data 說明這小小的圖片還有個.rar壓縮包在裏面,那就用dd命令提取出來: dd if=2.png of=2.rar bs=1 skip=100097 if=輸入文件名,of=輸出文件名,bs=數據塊大小(bytes),skip=跳過數據塊數。 原文連接:http://blog.csdn.net/shinukami/article/details/45980395 ####winhex裏修改圖片的長度和寬度也能實現隱寫啊 4.dmp文件隱寫 在線分析網站:http://www.osronline.com/page.cfm?name=analyze Ctf地址:http://bobao.360.cn/ctf/learning/153.html 5.右鍵查看詳情。 Linux下會看到比win多的東西。在linux下打開圖片。點擊細節。 還須要查看exif頭等 6.視頻隱寫 fMP4及其餘fmpeg能夠把一幀幀的視頻分割爲一張張的圖片。具體怎麼使用能夠在linux下man ffmpeg。 Avi:MSU VideoStego 7.pdf隱寫 wbStego4open 8.音頻隱寫 #coolpro #Audacity #MP3Stego #用winhex打開文件,發現文件尾部十六進制所有都是35,用windex對文件進行xor運算,最後把文件保存爲mp3格式,獲得的mp3用coolpro打開,反轉播放,讀出的內容即爲flag #視頻隱寫 #### PEN_AND_APPLE E:\a題庫\三葉草極客大挑戰第七季\三葉草MISC\PEN_AND_APPLE 這道題有些腦洞,不過也是一種很常見的隱寫技術,後來提示與win的type命令有關,能夠找到相關資料,type命令能夠用於ntfs文件寫入,經過工具「`alternatestreamview「`掃描文件獲得以下所示 9.vmdk隱寫 採用Dsfok-tools來對數據進行隱藏,一般這個工具是用來編輯vmdk文件中的描述符。 http://drops.wooyun.org/tips/12614 10.可執行文件 對於可執行文件的數據隱藏能夠使用Hydan http://drops.wooyun.org/tips/12614 11.NTFS文件系統ida隱藏 http://drops.wooyun.org/tips/12614 ##有思路就去試試,說不定就成功了! 12.雙圖隱寫--stegsolve咯 #二維碼 遇到二維碼先掃啊,微信,qq,瀏覽器,實在不行上命令行,再不行就反色,binwalk,stegsolve走一波 #gif 動態二維碼 丟到Namo GIF Animator 裏,若是顯示不全記得從-查看-動畫屬性裏修改長度和寬度 #圖片隱寫 https://zhuanlan.zhihu.com/p/23127122 本專欄內容豐富,很長姿式 0.有時候百度google識圖也能用上 winhex下jpg開頭是FF D8 結尾是FF D9 winhex下png開頭是89 50 1.改成txt格式,也許有flag 2.改成zip或rar格式,解壓也許會有,用圖片查看器更改色溫,飽和度,亮度,色溫等等。屬性查看圖片備份信息。丟到stegsolve裏左右點擊看看有啥東西 3.windows下用命令行stegdetect檢查是否加密,JPHS破解Jphide加密 H:\ctf\StegDetect-0.4-for-Windows-master>stegdetect.exe -tjopi -s 10.0 H9QJnHU.jpg 或者H:\ctf\StegDetect-0.4-for-Windows-master>stegdetect -s 3.0 at.jpg 用來檢測該圖片用的哪一種加密方式 H9QJnHU.jpg與stegdetect同目錄 檢測出來若爲jphide加密,則使用stegbreak破解 H:\ctf\StegDetect-0.4-for-Windows-master>stegbreak -r rules.ini -f password.txt -t p at.jpg 必須得用這種格式,password.txt爲字典 Loaded 1 files... at.jpg : jphide[v5](a) a爲at.jp的jphide密碼 Processed 1 files, found 1 embeddings. Time: 0 seconds: Cracks: 1, Inf c/s 若返回pssword中的最後一個密碼,則說明破爆破失敗 4.kali下binwalk查看圖片內是否有藏得其餘東西 # binwalk x.png x.png位於kali的主文件夾 DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 0 0x0 PNG image, 902 x 550, 8-bit/color RGB, non-interlaced 711661 0xADBED PNG image, 1000 x 562, 8-bit/color RGBA, non-interlaced 711752 0xADC48 Zlib compressed data, compressed, uncompressed size >= 98304 2132968 0x208BE8 Zlib compressed data, default compression, uncompressed size >= 1458 能夠看出x.png裏面還存在一張png的圖片 而後咱們能夠使用dd命令分離出隱藏文件: # dd if=x.jpg of=x-1.jpg skip=711752 bs=1 記錄了1421497+0 的讀入 記錄了1421497+0 的寫出 1421497字節(1.4 MB)已複製,5.11977 秒,278 kB/秒 輸出的圖片也在kali的主目錄下,kali下有些圖片顯示不出來,能夠拿到windows下查看。 能夠參考 dd命令詳解 ,這裏if是指定輸入文件,of是指定輸出文件,skip是指定從輸入文件開頭跳過711752個塊後再開始複製,bs設置每次讀寫塊的大小爲1字節 。 5.pngcheck.exe -v secret-1.png 利用pngcheck查看png是否存在IDAT異常,由於IDAT是png圖片中儲存圖像像數數據的塊 #打開word文檔全選--更改字體顏色---有可能猥瑣地找到flag #MP3Stego Decode.exe -X -P 9158753624 apple.mp3 #mp3stego爆破腳本 #coding=utf-8 import os import subprocess for a in open('maple.txt'): #密碼字典 command='decode -X -P %s mp3.mp3 '% a.strip() print command p = subprocess.Popen(command, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell = True) if "unexpected end of cipher message."not in p.communicate()[1]: print p.communicate() print command Break #winhex打開先搜一波flag,key #RGB點畫二維碼 文本: 255,255,255 255,0,255 ..... #coding=utf-8 from PIL import Image import re if __name__ == '__main__': x = 280 #寬 y = 280 #高 i = 0 j = 0 c = Image.new("RGB", (x,y)) file_object = open('hint.txt') for i in range(0, x): for j in range(0, y): line = file_object.next() lst = line.split(",") c.putpixel((i, j), (int(lst[0]), int(lst[1]), int(lst[2]))) c.show() c.save("c.png") #01畫二維碼 #wireshark 0.過濾http,https,等協議 1.binwalk一下,看是否藏有其餘文件,若是遇到加密zip,能夠winhex打開搜搜密碼,或者爆破 2.wireshark打開,無需過濾,直接 文件-導出-HTTP-saveall。。。就能看見一個flag.rar #固件分析 小夥子遇到固件分析提不要怕 binwalk -e xxx.bin 自動提取文件,進入獲得的文件夾目錄,發現decode.py 運行獲得falg #腳本類 小明要參加一個高技能比賽,要求每一個人都要可以快速口算四則運算,2秒鐘以內就可以獲得結果,可是小明就是一個小學生沒有通過特殊的培訓,那小明可否經過快速口算測驗呢? 這一題主要是考你如何利用編程,獲取算式信息並計算其結果並提交。不可能用人工口算快速獲得結果的,不要被題目所迷惑。 直接上代碼(我使用的是python編寫) #!/usr/bin/env python #-*- coding:utf_8 -*- import re try: import requests except ImportError: raise SystemExit('\nimport module error ,please pip install requests!') s = requests.Session() header = {'Cookie': 'PHPSESSID=21043f4dd0550ef63816741ae089ea7f'} url = 'http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php' r = s.get(url, headers=header) c = r.content #regstr = re.compile(r'[0-9]+[*+]+[0-9]+[*+]+[0-9]+[*+]+\([0-9+]+\)') #上面這樣寫的正則表達式有點囉嗦,看下面更簡單的 regstr = re.compile(r'[0-9+*()]+[)]') try: obj = regstr.findall(c) if obj: result = eval(obj[0]) data = {'v':result} r = s.post(url,data=data,headers= header) print r.content finally: print 'ok!!!' #或者這樣 #!/usr/bin/env python # -*- coding: gbk -*- # -*- coding: utf-8 -*- # Date: 2014/11/25 # Created by 獨自等待 # 博客 http://www.waitalone.cn/ import re try: import requests except ImportError: raise SystemExit('\n[!] requests模塊導入錯誤,請執行pip install requests安裝!') print '\n網絡信息安全攻防學習平臺腳本關第2題\n' s = requests.Session() url = 'http://1.hacklist.sinaapp.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php' r = s.get(url) res = unicode(r.content, 'utf-8').encode('gbk') # print res num = re.findall(re.compile(r'<br/>\s+(.*?)='), res)[0] print '當前獲取到須要口算的表達式及計算結果爲:\n\n%s=%d\n' % (num, eval(num)) r = s.post(url, data={'v': eval(num)}) print re.findall(re.compile(r'<body>(.*?)</body>'), r.content)[0] #bin文件 conf.bin 看來是路由器配置文件 上工具 routerpassview,打開bin文件,搜索關鍵字-- #圖片異或XOR 根據圖片名稱"xor",可知是異或,寫腳本 f = open('flag.png') enc = f.read() f.close() f = open('xor.png') xor = f.read() f.close() s = r'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"$\'()*+,-./:;<=>?@[\\]^`{|}~\'"_%' flag = '' for i in range(100): for c in s: if ord(xor[i]) ^ ord(c) == ord(enc[i]): flag += c print flag
隱寫的一些常見的考點php
https://zhuanlan.zhihu.com/p/23127122 本專欄內容豐富,很長姿式 0.有時候百度google識圖也能用上 winhex下jpg開頭是FF D8 結尾是FF D9 winhex下png開頭是89 50 1.改成txt格式,也許有flag 2.改成zip或rar格式,解壓也許會有,用圖片查看器更改色溫,飽和度,亮度,色溫等等。屬性查看圖片備份信息。丟到stegsolve裏左右點擊看看有啥東西 3.windows下用命令行stegdetect檢查是否加密,JPHS破解Jphide加密 H:\ctf\StegDetect-0.4-for-Windows-master>stegdetect.exe -tjopi -s 10.0 H9QJnHU.jpg 或者H:\ctf\StegDetect-0.4-for-Windows-master>stegdetect -s 3.0 at.jpg 用來檢測該圖片用的哪一種加密方式 H9QJnHU.jpg與stegdetect同目錄 檢測出來若爲jphide加密,則使用stegbreak破解 H:\ctf\StegDetect-0.4-for-Windows-master>stegbreak -r rules.ini -f password.txt -t p at.jpg 必須得用這種格式,password.txt爲字典 Loaded 1 files... at.jpg : jphide[v5](a) a爲at.jp的jphide密碼 Processed 1 files, found 1 embeddings. Time: 0 seconds: Cracks: 1, Inf c/s 若返回pssword中的最後一個密碼,則說明破爆破失敗 4.kali下binwalk查看圖片內是否有藏得其餘東西 # binwalk x.png x.png位於kali的主文件夾 DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 0 0x0 PNG image, 902 x 550, 8-bit/color RGB, non-interlaced 711661 0xADBED PNG image, 1000 x 562, 8-bit/color RGBA, non-interlaced 711752 0xADC48 Zlib compressed data, compressed, uncompressed size >= 98304 2132968 0x208BE8 Zlib compressed data, default compression, uncompressed size >= 1458 能夠看出x.png裏面還存在一張png的圖片 而後咱們能夠使用dd命令分離出隱藏文件: # dd if=x.jpg of=x-1.jpg skip=711752 bs=1 記錄了1421497+0 的讀入 記錄了1421497+0 的寫出 1421497字節(1.4 MB)已複製,5.11977 秒,278 kB/秒 輸出的圖片也在kali的主目錄下,kali下有些圖片顯示不出來,能夠拿到windows下查看。 能夠參考 dd命令詳解 ,這裏if是指定輸入文件,of是指定輸出文件,skip是指定從輸入文件開頭跳過711752個塊後再開始複製,bs設置每次讀寫塊的大小爲1字節 。 5.pngcheck.exe -v secret-1.png 利用pngcheck查看png是否存在IDAT異常,由於IDAT是png圖片中儲存圖像像數數據的塊