banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

通常のテストにおけるURLパラメータテスト

一般的パラメータ#

このようなプロジェクトを見つけました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 ファイルです:

%E5%B8%B8%E8%A7%84%E6%B5%8B%E8%AF%95%E4%B8%ADurl%E5%8F%82%E6%95%B0%E6%B5%8B%E8%AF%95%20bfbbd4b8eb864ed3aa12113d45e5a6fd/Untitled%205.png

4、gf が JSON ファイルを自動的に読み込むように設定し、タブキーで自動補完します。

gfを GitHub からダウンロードすると、bash、fish、zsh に対応する 3 つのファイルがあります。

%E5%B8%B8%E8%A7%84%E6%B5%8B%E8%AF%95%E4%B8%ADurl%E5%8F%82%E6%95%B0%E6%B5%8B%E8%AF%95%20bfbbd4b8eb864ed3aa12113d45e5a6fd/Untitled%206.png

3 つの異なるファイルは異なるシェル環境に対応しています。私が使用しているのは zsh なので、~/.zshrc 設定ファイルを設定する必要があります。以下の内容を~/.zshrc ファイルに追加します:

autoload -Uz compinit
compinit
source /Users/xxx/macpentest/ 情報収集 /gf/gf-completion.zsh

%E5%B8%B8%E8%A7%84%E6%B5%8B%E8%AF%95%E4%B8%ADurl%E5%8F%82%E6%95%B0%E6%B5%8B%E8%AF%95%20bfbbd4b8eb864ed3aa12113d45e5a6fd/Untitled%207.png

上記の設定が基本的に完了したら、ターミナルを終了して再度開く必要があります。私の環境は zsh ですが、Linux を使用している場合は bash ファイルを使用する可能性があるため、上記の設定を~/.bashrc に追加すればよいです。

4、設定が完了したら、すべての JSON ファイルを.gf フォルダに配置します。JSON ファイルは以下のリンクからダウンロードできます。ダウンロードが完了したら、~/.gf にコピーします。

  • A wrapper around grep, to help you grep for things

  • For basic researches, top 25 vulnerability parameters that can be used in automation tools or manual recon. 🛡️⚔️🧙

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
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。