自动 dirb 扫描多个 URL

自动 dirb 扫描多个 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)循环遍历 url 列表
2)将 url 输出到终端
3)使用 url 从 url 生成文件名sed
4)将文件名输出到终端
5)通过 dirb 运行 url 并尝试将其输出到文件名

假定的输出文件名对我来说看起来不错,但不起作用。有谁知道这是为什么?

答案1

假设bashksh93

  1. 循环遍历 URL 列表
  2. 将 URL 输出到终端

    while read -r url; do
      printf 'URL: "%s"\n' "$url"
    done <urls.txt
    
  3. 通过从 URL 中删除不需要的字符(将不在 中的字符更改为 、删除连续的 )来创建A-Za-z0-9文件__

  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将调用文件名通配(使用 进行测试i='*')。

由于我没有您urls.txt文件中的示例,因此很难对此进行更多说明。

相关内容