十六、想蹭網絡先破解wifi密碼
題目給了我們一個數據包,且提示我們flag爲wifi密碼,
第一步:
打開文件,WIFI連接認證的重點在WPA的四次握手包,即eapol協議的包,過濾一下:
剛好四個包
第二步
既然是密碼,還給了我們數據包,那麼我們開始爆破,首先需要一個字典
因爲手機號爲11位,給了我們7位,故我們使用一下python代碼生成字典
代碼如下:
import string
s = string.digits
f = open('1.txt', 'w')
for i in s:
for j in s:
for k in s:
for o in s:
f.write("1391040"+i+j+k+o+'\n')
第三步
使用aircrack-ng進行爆破。
首先進行安裝aircrack-ng,我在kali下進行操作。無法鎖定的原因是我之前使用終端時,可能強制退出,還有命令在執行,那麼我們就強制解除,命令如下
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
然後進行安裝aircrack-ng
命令如下
apt-get install aircrack-ng
安裝好用,進行爆破,得出密碼
aircrack-ng -a2 wifi.cap -w password.txt
aircrack-ng使用
aircrack-ng -w 字典文件 目標
破解KEY,漫長的過程.漫不漫長取決於兩個方面:一是網管的聰明程度(能否設置出複雜的密碼),二是電腦的速度.
usage:aircrack-ng[options]<.cap/.ivsfile(s)>
Commonoptions:
-a<amode>:暴破(1/WEP,2/WPA-PSK)
-e<essid>:選擇essid爲目標
-b<bssid>:選擇ap的mac爲目標,就是破解識別的關鍵字
-q:使用安靜模式,無數出模式
-C<macs>:將所有的AP合併爲一個虛擬的
–help:顯示這個幫助
十七、linux2
根據題目提示,flag爲key{},那麼使用winhex打開文件,並搜索key發現flag.
十八、賬號被盜了
點擊getf lag,發現沒有管理員權限,那麼我們就想到cookie,使用抓包工具將cookie的值,改成ture,即可得到一個網站然而發現該網站我怎麼也進去,打擾了。
十九、細心的大象
1、下載圖片,使用winhex打開沒發現什麼有用的信息
2、用binwalk查看圖片是否包含其他文件,成功分離出一個壓縮文件
3、發現該壓縮文件裏有個圖片是加密的,於是我們尋找密碼
4、在用winhex看一下大象的圖片,還是沒發現重要信息,我們打開文件的屬性,去看看文件的詳細信息裏面有什麼信息,發現一串類似於base64加密的東西。
5、把該串信息當作密碼輸入,發現失敗了,base64解密後,再輸入,可以得到以下圖片
使用winhex打開修改圖片的高爲500,就可以在圖片裏看到flag了
二十、爆照
1、首先對文件進行分析,發現1個壓縮包,壓縮包裏有一個動態圖和8個文件。更具文件的大小可以發現88、888、8888比較特殊。flag應該在這3張圖片裏。
使用winhex打開可以依次打開這3個文件可以發現這3個文件都是jpg文件。修改後綴名爲jpg
可以發現88文件有個二維碼,掃描得bilibili
888文件是個圖片,查看文件詳細信息可以發現一段base64加密的數據,解密得silisili
8888文件修改後綴名得到一張圖片,詳細信息沒有有用信息,使用binwalk分析下,發現了一個壓縮包。壓縮包裏有一個二維碼圖片,掃描得panama
故該題flag爲{bilibili_silisili_panama}
二十一、貓片(安恆)
根據題目提示,這樣應該是LBS隱寫
1、下載附件修改後綴名爲png
2、使用stegsolve打開,使用其DATA extract功能進行分析,根據提示爲LSB,BGR隱寫,經過下圖操作,保存爲png文件。
3、發現圖片打不開,使用winhex打開查看,進行下圖操作,然後保存,發現是半張二維碼
4、進行圖片高度的修改,可以得到一張完整的二維碼,掃描下載flag.rar壓縮包
打開文件,有上面的錯誤,flag文件裏的內容,有點氣,費盡腦子,發現無可奈何,於是開始查各種資料。
發現是ntfs文件數據流隱寫,就說題目的提示爲什麼ntfs沒用到。
使用ntfsstreamsEditor工具查找數據流,然後導出(注意這邊一個坑:flag.rar這個壓縮文件一定要用winrar來解壓才能找得到數據流)
發現導出的數據流文件是python反編譯文件。直接扔到在線我就進行python反編譯 ,https://tool.lu/pyc/
得到以下結果
import base64
def encode():
flag = '*************'
ciphertext = []
for i in range(len(flag)):
s = chr(i ^ ord(flag[i]))
if i % 2 == 0:
s = ord(s) + 10
else:
s = ord(s) - 10
ciphertext.append(str(s))
return ciphertext[::-1]
ciphertext = [
'96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']
進行解密腳本的編寫
def decode():
ciphertext = [
'96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']
ciphertext.reverse() # 加密中使用ciphertext[::-1]進行取反,故使用reverse取反,
flag = ''
for i in range(len(ciphertext)): # 加密中使用的是flag的長度,而ciphertext與flag長度一樣
if i % 2 == 0:
s = int(ciphertext[i]) - 10 # 加密中s的值其實就是int(ciphertext[i])
else:
s = int(ciphertext[i]) + 10
s = chr(i ^ s) # 加密中爲i和flag異或,那麼i與s異或即可的到flag
flag += s
return flag
if __name__ == '__main__':
flag = decode()
print(flag)