簡體   English   中英

在BASH中循環以獲取用戶名和密碼元組

[英]For loop in BASH to get username and password tuple

我正在用Bash 4.4.23編寫一個簡單的腳本,以對使用默認密碼的各種Web服務器執行演示性字典攻擊

包含用戶名和密碼的數組在“ for”循環的上方聲明,如下所示:

for i in $usernames
do for j in $passwords
    do printf '%s ' "${usernames[*]}:${passwords[*]}"
done
done

該代碼應返回如下內容:

root:root root:admin admin:admin admin:root

但相反,它正在返回

root admin:root admin

數組中聲明的值( 用戶名密碼 )。

我如何才能實現自己的目標? 然后必須將元組傳遞給curl才能執行字典攻擊。

您將數組和循環遍歷的元素混合在一起。 您遍歷數組。 您可以在循環內部使用循環變量。

for i in "${usernames[@]}"
  do for j in "${passwords[@]}"
    do printf '%s:%s ' "$i" "$j"
  done
done

您看到的症狀是因為$usernames僅引用數組的第一個元素,並且類似地引用其他數組變量。

通配符在這里不起作用。 嘗試

for i in $usernames
do for j in $passwords
    do printf '%s:%s ' "$i:$j"
done
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM