[英]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.