在在线解决CTF挑战时,遇到了需要暴力破解服务器的情况。这是我写的代码:
#!/bin/bash
for i in {0..9}{0..9}{0..9}{0..9}
do
echo "Now trying code.."
echo $i
echo "a fixed string" $i | nc localhost *port here* >> /tmp/me/dump.txt
done
这是令人难以置信的,痛苦的缓慢。我需要尝试从1000到9999的组合,每10次尝试大约需要5秒钟。然后,按照建议,在此行的末尾添加一个“&”:
echo "a fixed string" $i | nc localhost *port here* >> /tmp/me/dump.txt &
并且,它在几秒钟内尝试了数百种组合。我很惊讶。有人可以向我解释逻辑吗?“&”是做什么的?
for i in {1000..9999}
wait
在末尾添加一个。
nc -z localhost 1000-2000
吗?
&
使命令在后台运行,仅此而已。它并没有使其变得更快或任何东西。阅读您正在使用的任何shell(我假设bash)手册。