常見參數#
發現一個這樣的項目top25-parameter,統計了常規漏洞的一些利用參數,然後擴展了一下:
最常用的 25 個 xss 參數:
Top 25 Cross-Site Scripting (XSS) Parameters for @trbughunters
?q={payload}
?s={payload}
?search={payload}
?id={payload}
?lang={payload}
?keyword={payload}
?query={payload}
?page={payload}
?keywords={payload}
?year={payload}
?view={payload}
?email={payload}
?type={payload}
?name={payload}
?p={payload}
?month={payload}
?immagine={payload}
?list_type={payload}
?url={payload}
?terms={payload}
?categoryid={payload}
?key={payload}
?l={payload}
?begindate={payload}
?enddate={payload}
最常用的 25 個 ssrf 參數:
Top 25 Server-Side Request Forgery (SSRF) Parameters for @trbughunters
?dest={target}
?redirect={target}
?uri={target}
?path={target}
?continue={target}
?url={target}
?window={target}
?next={target}
?data={target}
?reference={target}
?site={target}
?html={target}
?val={target}
?validate={target}
?domain={target}
?callback={target}
?return={target}
?page={target}
?feed={target}
?host={target}
?port={target}
?to={target}
?out={target}
?view={target}
?dir={target}
最常用的 25 個文件包含參數:
Top 25 Local File Inclusion (LFI) Parameters for @trbughunters
?cat={payload}
?dir={payload]
?action={payload}
?board={payload}
?date={payload}
?detail={payload}
?file={payload}
?download={payload}
?path={payload}
?folder={payload}
?prefix={payload}
?include={payload}
?page={payload]
?inc={payload}
?locate={payload}
?show={payload}
?doc={payload}
?site={payload}
?type={payload}
?view={payload}
?content={payload}
?document={payload}
?layout={payload}
?mod={payload}
?conf={payload}
最常用的 25 個 sql 注入參數:
Top 25 SQL Injection Parameters for @trbughunters
?id=
?page=
?dir=
?search=
?category=
?file=
?class=
?url=
?news=
?item=
?menu=
?lang=
?name=
?ref=
?title=
?view=
?topic=
?thread=
?type=
?date=
?form=
?join=
?main=
?nav=
?region=
最常用的 25 個命令執行的參數:
?cmd=
?exec=
?command=
?execute=
?ping=
?query=
?jump=
?code=
?reg=
?do=
?func=
?arg=
?option=
?load=
?process=
?step=
?read=
?function=
?req=
?feature=
?exe=
?module=
?payload=
?run=
?print=
最常用的 25 個開放重定向跳轉的參數:
?next=
?url=
?target=
?rurl=
?dest=
?destination=
?redir=
?redirect_uri?,
?redirect_url=
?redirect=
?out=
?view=
?to=
?image_url=
?go=
?return=
?returnTo=
?return_to=
?checkout_url=
?continue=
?return_path=
如何應用#
實戰中,可以用到這些參數,一般流程是通過收集到目標域名 /ip 的 url 的參數,然後從 url 中去過濾出對應的關鍵詞,如http://www.xx.com/index.php?id=1
,那麼可以直接過濾出 id 參數,這樣的參數可能存在 sql 注入漏洞。? 後接的參數有很大的概率無過濾導致被控。
用到的程序是 gf,https://github.com/tomnomnom/gf。
1、go 語言編譯 gf:
go get -u github.com/tomnomnom/gf
2、編譯完後,就開始加載 json 的配置文件,如下面是 rce 的配置文件。
{
"flags": "-iE",
"patterns": [
"daemon=",
"upload=",
"dir=",
"download=",
"log=",
"ip=",
"cli=",
"cmd=",
"exec=",
"command=",
"execute=",
"ping=",
"query=",
"jump=",
"code=",
"reg=",
"do=",
"func=",
"arg=",
"option=",
"load=",
"process=",
"step=",
"read=",
"function",
"req=",
"feature=",
"exe=",
"module=",
"payload=",
"run=",
"print="
]
}
有了 json 文件,在測試 url 時就可以過濾出來,假如有個 url 是http://xxx.com/index.php?cmd=ls,那麼我就可以通過包含 rce 參數的 json 腳本過濾出來。
% cat test.txt
http://xxx.com/index.php?cmd=ls
% cat test.txt | gf rce
http://xxx.com/index.php?cmd=ls
3、下面就要配置讓 gf 這個程序自動識別放在~/.gf 文件下面的 json 腳本,輸入 gf 就能自動把 json 文件調用出來。如下圖,列出來的都是 json 文件:
4、配置 gf 自動加載 json 文件,按 tab 鍵自動補全。
把gf從 github 下載下來之後,有三個文件,分別對應是 bash、fish、zsh。
三個不同的文件對應於不同的 shell 環境,如我這裡用到的 zsh,那麼就需要配置~/.zshrc 配置文件,將下面的內容添加到~/.zshrc 文件:
autoload -Uz compinit
compinit
source /Users/xxx/macpentest/ 信息收集 /gf/gf-completion.zsh
通過上述設置基本設置完成,如果沒有的話需要退出終端重新打開,我這裡的環境用的是 zsh,如果你用的是 linux,那麼可能是 bash 文件,那麼你只要將上面的設置放到~/.bashrc 裡面即可。
4、設置完成後,就可以把所有的 json 文件放到.gf 文件夾下,json 文件從下面的鏈接中下載,下載完後,拷貝至~/.gf 中。
mkdir .gf
cp ~/Gf-Patterns/*.json ~/.gf
cp ~/gf/examples/*.json ~/.gf
5、到此設置完畢,通過 gf 鍵就可以自動把加載的 json 文件顯示出來。
如何收集 url#
收集 url 的方式其實很多中,通常是以批量的方式,先把所有的域名和子域名收集完成後,開始收集 url 中的參數。
下面的應用都可以用來收集 url:
掃描方式都很簡單。
使用案例,借用 Gf-Patterns 上的案例:
cat subdomains.txt | waybackurls | sort -u >> waybackdata | gf ssrf | tee -a ssfrparams.txt
cat subdomains.txt | waybackurls | sort -u >> waybackdata | gf ssrf | tee -a ssfrparams.txt