複数URLの自動ダブスキャン

複数URLの自動ダブスキャン

私はこのスクリプトを動作させるためにいくつかの問題があり、問題が何であるかを知っている人がいるかどうか疑問に思います。 URLのリストを入力として受け取り、サブディレクトリを検索して別のファイルに出力する必要があります。

for i in $(urls.txt); do echo $i; fn=$(echo $i | sed "s/\///g"); echo $fn; dirb $i /usr/share/wordlists/dirb/small.txt > $fn; done

スクリプトは新しいファイルからスラッシュを正しく削除しますが、エラー(スウェーデン語で翻訳されています)「:そのファイルまたはディレクトリはありません」と表示されます。おそらく> $ fnセクションから来たようです。

for i in $(urls.txt); do echo $i; fn=$(echo $i | sed "s/\///g"); echo $fn; dirb $i /usr/share/wordlists/dirb/small.txt -o $fn; done

dirbの独自の出力を使用しようとしたときに同様のエラーが発生しました。

"OUTPUT_FILE httpwww.website.com
(!) FATAL: Error opening output file: httpwww.website.com"

1行に関するいくつかの注意:
1)URLのリストを繰り返します
。 2) 端末に URL を出力します。
3) url を使用して URL からファイル名を生成します。sed
4) 端末にファイル名を出力します。
5)dirbを介してURLを実行し、次のようにします。ファイル名で出力

仮定された出力ファイル名は問題ないようですが、機能しません。なぜこれを知っている人がいますか?

答え1

bashまたは仮定ksh93

  1. URLのリストを繰り返します。
  2. URLを端末に出力

    while read -r url; do
      printf 'URL: "%s"\n' "$url"
    done <urls.txt
    
  3. A-Za-z0-9URLから不要な文字を削除してファイル_名を作成します(URLにない文字の変更、連続した文字の削除)_

  4. 端末へのファイル名の出力

    while read -r url; do
      printf 'URL: "%s"\n' "$url"
    
      outfile="$( tr -s -c 'A-Za-z0-9' '_' <<<"$url" )"
      printf 'File: "%s"\n' "$outfile"
    done <urls.txt
    
  5. dirbファイルとして直接使用して出力する

    while read -r url; do
      printf 'URL: "%s"\n' "$url"
    
      outfile="$( tr -s -c 'A-Za-z0-9' '_' <<<"$url" )"
      printf 'File: "%s"\n' "$outfile"
    
      dirb "$url" /usr/share/wordlists/dirb/small.txt -o "$outfile"
    done <urls.txt
    

私のバージョンは、スラッシュを削除するよりもファイル名を削除します。

また、echo $iファイル名globbingが呼び出されます(テストに使用されますi='*')。

urls.txtあなたのファイルには例がないので、これについてもっと詳しく言うのは難しいです。

関連情報