在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
代码应该return类似于:
root:root root:admin admin:admin admin:root
而是 returning
root admin:root admin
哪些是数组中声明的值(usernames 和 passwords)。
我怎样才能实现我想要做的事情?然后必须将元组传递给 curl 以执行字典攻击。
通配符在这里不起作用。尝试
for i in $usernames
do for j in $passwords
do printf '%s:%s ' "$i:$j"
done
done
您将数组和循环的元素混淆了。你遍历数组。您在循环内使用循环变量。
for i in "${usernames[@]}"
do for j in "${passwords[@]}"
do printf '%s:%s ' "$i" "$j"
done
done
您看到的症状是因为 $usernames
单独引用数组的第一个元素,并且类似地引用另一个数组变量。
我正在用 Bash 4.4.23 编写一个简单的脚本,以对使用默认密码的各种 Web 服务器执行示范性的 字典攻击。
包含用户名和密码的数组声明在"for"个循环之上,如下:
for i in $usernames
do for j in $passwords
do printf '%s ' "${usernames[*]}:${passwords[*]}"
done
done
代码应该return类似于:
root:root root:admin admin:admin admin:root
而是 returning
root admin:root admin
哪些是数组中声明的值(usernames 和 passwords)。
我怎样才能实现我想要做的事情?然后必须将元组传递给 curl 以执行字典攻击。
通配符在这里不起作用。尝试
for i in $usernames
do for j in $passwords
do printf '%s:%s ' "$i:$j"
done
done
您将数组和循环的元素混淆了。你遍历数组。您在循环内使用循环变量。
for i in "${usernames[@]}"
do for j in "${passwords[@]}"
do printf '%s:%s ' "$i" "$j"
done
done
您看到的症状是因为 $usernames
单独引用数组的第一个元素,并且类似地引用另一个数组变量。