Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
urless — 静的拡張子、不要なキーワード、ID、言語バリアント、パラメータを除去することで大規模なURLリストをフィルタリング・重複排除し、Web偵察用のクリーンなエンドポイントセットを生成します。 | Kitploit
ツール/GitHubGitHub/xnl-h4ck3r/urless
偵察情報収集ウェブセキュリティペネトレーションテストユーティリティとフレームワーク
GitHubxnl-h4ck3r/urless

urless

静的拡張子、不要なキーワード、ID、言語バリアント、パラメータを除去することで大規模なURLリストをフィルタリング・重複排除し、Web偵察用のクリーンなエンドポイントセットを生成します。

リポジトリを見る
391415ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

概要 - v2.7

これはURLリストを整理(de-clutter)するためのツールです。 出発点として、Somdev Sangwan氏の素晴らしいツール uro をベースにしました。ただし、いくつかの点を変更し、改善(GUIDへの対応など)を加え、よりカスタマイズ可能にしたいと考えました。

インストール

urless は Python 3 をサポートしています。

urless をデフォルト(グローバル)のPython環境にインストールします。

root@kitploit:~
pip install urless

または

root@kitploit:~
pip install git+https://github.com/xnl-h4ck3r/urless.git -v

アップグレードするには:

root@kitploit:~
pip install --upgrade urless

pipx

pipx を使用した、分離されたPython環境でのクイックセットアップ

root@kitploit:~
pipx install git+https://github.com/xnl-h4ck3r/urless.git

使い方

具体的に何をするのか?

基本的に、URLのリスト(ファイルから、またはSTDINからのパイプ)を渡すと、整理されたファイルまたはURLリストが出力されます。では、どのように整理されるのでしょうか? 以下で説明しますが、その前に使用される用語をいくつか紹介します:

  • FILTER-EXTENSIONS: これは、-fe で渡すか、config.yml の FILTER_EXTENSIONS で指定するか、またはそのどちらも存在しない場合にデフォルトのリスト .css,.ico,.jpg,.jpeg,.png,.bmp,.svg,.img,.gif,.mp4,.flv,.ogv,.webm,.webp,.mov,.mp3,.m4a,.m4p,.scss,.tif,.tiff,.ttf,.otf,.woff,.woff2,.bmp,.ico,.eot,.htc,.rtf,.swf,.image を指します。
  • FILTER-KEYWORDS: これは、-fk で渡すか、config.yml の FILTER_KEYWORDS で指定するか、またはそのどちらも存在しない場合にデフォルトのリスト blog,article,news,bootstrap,jquery,captcha,node_modules を指します。
  • LANGUAGE: これは、config.yml の LANGUAGE で指定できる言語コードのリストを指します。存在しない場合は、最も一般的なコードのデフォルトリスト en,en-us,en-gb,fr,de,pl,nl,fi,sv,it,es,pt,ru,pt-br,es-mx,zh-tw,js.ko が使われます。
  • :

処理内容は以下の通りです:

  • URLにポート80または443が明示的に指定されている場合、それをURLから削除します(例: http://example.com:80/test -> http://example.com/test)
  • URLにFILTER-EXTENSIONSのいずれかが含まれる場合、出力から削除されます。
  • URLにパラメータがない場合 または -dp/--disregard-params 引数が渡された場合:
    • URLにFILTER-KEYWORDSまたはUNWANTED-CONTENTが含まれる場合、削除されます。
    • URLのクエリ文字列に、設定ファイルの REMOVE_PARAMS(または -rp/--remove-params 引数で上書きされたもの)で指定された不要なパラメータが含まれる場合、処理前にすべてのURLから削除されます。
    • -rcid/--regex-custom-id が渡され、URLパスにカスタムIDが含まれる場合、カスタムID正規表現に一致するものが1つだけ含まれます(そのIDだけが異なる複数のURLがある場合)。
    • URLパスにGUIDが含まれる場合、GUIDだけが異なる複数のURLがあるとき、GUIDの1つだけが含まれます。
    • URLパスに整数IDが含まれる場合、整数IDだけが異なる複数のURLがあるとき、整数IDの1つだけが含まれます。
    • -lang 引数が渡され、URLに言語コード(例: en-gb)が含まれる場合、言語コードだけが異なる複数のURLがあるとき、言語コードの1つだけが含まれます。
  • それ以外の場合、URLにパラメータ(またはフラグメント #)があり かつ / 引数が渡されていない場合:

使用例

基本的な使い方

root@kitploit:~
cat target_urls.txt | urless

または

root@kitploit:~
urless -i target_urls.txt

出力の取得

root@kitploit:~
cat target_urls.txt | urless > output.txt

または

root@kitploit:~
urless -i target_urls.txt -o output.txt

config.yml

config.yml ファイルには、必要に応じて更新できるキーがあります:

  • FILTER_KEYWORDS - 特定の状況でURLがチェックされるキーワードのカンマ区切りリスト(例: blog,article,news など)。
  • FILTER_EXTENSIONS - すべてのURLがチェックされるファイル拡張子のカンマ区切りリスト(例: .css,.jpg,.jpeg など)。URLがこれらの文字列のいずれかを含む場合、出力から除外されます。
  • LANGUAGE - -lang 引数が渡されたときにすべてのURLがチェックされる言語コードのカンマ区切りリスト(例: en-gb,fr,nl など)。異なる言語コードを持つ複数のURLがある場合、URLの1つのバージョンのみが出力されます。
  • REMOVE_PARAMS - 処理前にすべてのURLから削除される大文字小文字を区別するパラメータ名のカンマ区切りリスト(例: cachebuster,cacheBuster)。

カスタム正規表現

現在、パス部分がグローバル一意識別子(GUID)および整数IDであるかどうかの自動正規表現チェックがありますが、-rcid / --regex-custom-id 引数を使用すると、カスタムIDを識別するための正規表現を提供できます。例えば、ターゲットが特定のID形式(GUIDや整数ではない)を持っている場合、そのための正規表現を指定でき、URLの残りが同じであれば、出力にはそのうちの1つだけが返されます。例:

  • ターゲットが U-65241X のような形式のユーザーIDを持っているとします。
  • そして、次のような複数のURLがあるとします:
    root@kitploit:~
    https://target.com/blah/U-61723A/settings
    https://target.com/blah/U-63352B/settings
    https://target.com/blah/U-61351A/profile
    https://target.com/blah/U-61723A/settings
    https://target.com/blah/U-64135C/profile
    
  • urless を呼び出して -rcid 'U-[0-9]{5}[A-Z]' を渡すと、出力は次のようになります:
    root@kitploit:~
    https://target.com/blah/U-61723A/settings
    https://target.com/blah/U-64135C/profile
    

重要な正規表現に関する注意事項:

  • 正しい正規表現を書くのは難しい場合があり、正しくないと、予測不能で誤った出力になる可能性があります。
  • -rcid 引数に渡すときは、常に正規表現をシングルクォートで囲んでください。
  • GUIDまたは整数ID用のカスタム正規表現を追加する必要はありません。これらはすでに処理されています。
  • 正規表現はパスの部分全体をハイライトする必要があります。つまり、正規表現がパスの先頭のみを識別する場合は、正規表現の末尾に [^(\?|\/|#|$)]* を追加すると、パス部分の末尾までの他のすべての文字が対象になります。
  • 正規表現の先頭に ^、末尾に $ を追加して、スラッシュ間のパスの部分全体を表すようにできます。ただし、これらを省略した場合は自動的に追加されます。
  • 正規表現が目的のセクションのみを識別するようにしてください。そうしないと、予期しない結果になる可能性があります。正規表現をテストするには、入力ファイルを使用して、例えば cat input.txt | grep -E 'U-[0-9]{5}[A-Z]' を実行し、式が正しいかどうかを確認できます(関心のある部分だけをハイライトし、カスタムIDであるパスの部分全体をハイライトする必要があります)。
  • Regex101 を使用してテストすることもできます。TEST STRING セクションにサンプルURLを入力して、正しいかどうかを確認してください。REGEX FLAGS の global と multiline が選択されていることを確認してください。
  • 他の値を同じものとして扱わずにカスタムIDを正しく識別する正規表現を提供できない場合もあります。例えば、https://target.com/blah/xnl/settings のようなURLがあり、xnl がユーザー名である場合、ユーザー名用の正規表現を作成することはできません。他の可能なパス値と区別するために十分に一意な形式ではないためです。

問題が発生した場合

何か問題が発生した場合や改善のアイデアがある場合は、遠慮なくGithubでIssueを立ててください。問題がある場合は、実行した正確なコマンドと問題の詳細な説明を提供していただけると助かります。可能であれば、-v を付けて問題を再現し、表示されたエラーメッセージをお知らせください。

TODO

なし - 機能強化の提案があれば、遠慮なくGithubのIssueを立ててください。

最後に...

幸運を、そして良いハンティングを! このツール(または他のツール)が本当に気に入った場合、または素晴らしいバウンティを見つけるのに役立った場合は、コーヒーをごちそうしてください! ☕(カフェインが必要なんです!)

🤘 /XNL-h4ck3r

ko-fi.comでコーヒーを買ってください

ツールをダウンロード
引数長い引数説明
-i--input整理(de-clutter)するURLのリストを含むファイル。
-o--output整理されたURLリストを出力するファイル(デフォルト: output.txt)。別のプログラムにパイプした場合、出力は代わりにSTDOUTに書き込まれます。
-fk--filter-keywordsパラメータがない場合にリンクを除外するための、カンマ区切りのキーワードリスト。config.yml で指定された FILTER_KEYWORDS リストを上書きします。
-fe--filter-extensions除外するファイル拡張子のカンマ区切りリスト。config.yml で指定された FILTER_EXTENSIONS リストを上書きします。
-rp--remove-params大文字小文字を区別するパラメータのカンマ区切りリストで、すべてのURLから削除します。config.yml で指定された REMOVE_PARAMS リストを上書きします。例えば、キャッシュバスターのパラメータを削除するのに便利です。**
-ks--keep-slash入力URLの末尾にある末尾スラッシュは削除されません。そのため、末尾スラッシュ付きと無しの同一URLが出力される可能性があります。
-khw--keep-human-writtenデフォルトでは、パス部分に3つ以上のダッシュ(-)を含むURLは、人間が書いたコンテンツ(例: ブログ記事)と見なされ、興味深くないため削除されます。この引数を渡すと、それらは出力に保持されます。
-kym--keep-yyyymmデフォルトでは、パスに /YYYY/MM(YYYYは年、MMは月)を含むURLは、ブログ/ニュースコンテンツと見なされ、興味深くないため削除されます。この引数を渡すと、それらは出力に保持されます。
-rcid--regex-custom-id注意して使用してください! ターゲットが使用するカスタムID用の正規表現。値は引用符で囲んで渡してください。詳細については下記のセクションを参照してください。
-iq--ignore-querystringクエリ文字列(URLフラグメント # を含む)を削除し、出力をユニークなパスだけにします。
-fnp--fragment-not-paramURLフラグメント # をパラメータと同じように扱いません。例えば、リンクにフィルタキーワードとフラグメント(またはパラメータ)がある場合、通常はリンクが保持されますが、この引数が渡され、リンクにフィルタワードとフラグメントがある場合は、リンクは削除されます。また、この引数が渡され、-iq / --ignore-querystring が使用された場合、リンクにクエリ文字列がなければフラグメントは削除されません。
-lang--language渡されると、パスの一部として異なる言語コードを持つ複数のURLがある場合、URLの1つのバージョンのみが出力されます。コードは config.yml の LANGUAGE セクションで指定されます。
-c--configYML設定ファイルへのパス。渡されない場合、デフォルトの設定ディレクトリ(例: ~/.config/urless/)で config.yml ファイルを探します。
-dp--disregard-paramsURLにパラメータがある場合に行われない特定のフィルタリングがあります。デフォルトでは、すべての可能なパラメータを確認したいからです。この引数が渡されると、パラメータの有無に関係なくフィルタリングが行われます。
-nb--no-bannerツールのバナー出力を非表示にします(urlessに入力をパイプする場合はデフォルトで非表示になります)。
--version現在のバージョン番号を表示します。
-v--verbose詳細(verbose)出力
UNWANTED-CONTENT
  • URLパスの一部が3つ以上のダッシュ(-)を含むが、GUIDではない場合。これは人間が書いたコンテンツを示します(例: how-to-hack-the-planet)。-khw 引数が渡された場合、これは削除されません。
  • URLに /YYYY/MM/ が含まれる場合(例: 年、月)。これは通常、ブログなどの静的コンテンツです。-kym 引数が渡された場合、これは削除されません。
-dp
--disregard-params
  • 同じパラメータを持つ複数のURLがある場合、ユニークなパラメータ値を持つURLのみが含まれます。
  • パラメータはあるが値がない(またはフラグメントのみの)URLがある場合、それらは含まれます。