1. 程式人生 > 其它 >初識Fastjson漏洞(環境搭建及漏洞復現)

初識Fastjson漏洞(環境搭建及漏洞復現)

Lsof是遵從Unix哲學的典範,它只完成一個功能,並且做的相當完美——它可以列出某個程序開啟的所有檔案資訊。開啟的檔案可能是普通的檔案、目錄、NFS檔案、塊檔案、字元檔案、共享庫、常規管道、命名管道、符號連結、Socket流、網路Socket、UNIX域Socket,以及其它更多型別。因為“一切皆檔案”乃為Unix系統的重要哲學思想之一,因此可以想象lsof命令的重要地位。


lsof [options] filename

lsof  /path/to/somefile:顯示開啟指定檔案的所有程序之列表
lsof -c string:顯示其COMMAND列中包含指定字元(string)的程序所有開啟的檔案;此選項可以重複使用,以指定多個模式;
lsof -p PID:檢視該程序打開了哪些檔案;程序號前可以使用脫字元“^”取反;
lsof -u USERNAME:顯示指定使用者的程序開啟的檔案;使用者名稱前可以使用脫字元“^”取反,如“lsof -u ^root”則用於顯示非root使用者開啟的所有檔案;
lsof -g GID:顯示歸屬gid的程序情況
lsof +d /DIR/:顯示指定目錄下被程序開啟的檔案
lsof +D /DIR/:基本功能同上,但lsof會對指定目錄進行遞迴查詢,注意這個引數要比grep版本慢:
lsof -a:按“與”組合多個條件,如lsof -a -c apache -u apache
lsof -N:列出所有NFS(網路檔案系統)檔案
lsof -d FD:顯示指定檔案描述符的相關程序;也可以為描述符指定一個範圍,如0-2表示0,1,2三個檔案描述符;另外,-d還支援其它很多特殊值,如:
	mem: 列出所有記憶體對映檔案;
	mmap:顯示所有記憶體對映裝置;
	txt:列出所有載入在記憶體中並正在執行的程序,包含code和data;
	cwd:正在訪問當前目錄的程序列表;
	
lsof -n:不反解IP至HOSTNAME
lsof -i:用以顯示符合條件的程序情況
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
	46:IPv4或IPv6
	protocol:TCP or UDP
	hostname:Internet host name
	hostaddr:IPv4地址
	service:/etc/service中的服務名稱(可以不只一個)
	port:埠號 (可以不只一個)

例如: 檢視22埠現在執行的情況
[root@www ~]# lsof -i :22
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd     1390 root    3u  IPv4  13050      0t0  TCP *:ssh (LISTEN)
sshd     1390 root    4u  IPv6  13056      0t0  TCP *:ssh (LISTEN)
sshd    36454 root    3r  IPv4  94352      0t0  TCP www.magedu.com:ssh->172.16.0.1:50018 (ESTABLISHED)


上述命令中,每行顯示一個開啟的檔案,若不指定條件預設將顯示所有程序開啟的所有檔案。lsof輸出各列資訊的意義如下:
	COMMAND:程序的名稱
	PID:程序識別符號
	USER:程序所有者
	FD:檔案描述符,應用程式通過檔案描述符識別該檔案。如cwd、txt等
	TYPE:檔案型別,如DIR、REG等
	DEVICE:指定磁碟的名稱
	SIZE:檔案的大小
	NODE:索引節點(檔案在磁碟上的標識)
	NAME:開啟檔案的確切名稱