일부 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
이것은 엄청나게 아 pain습니다 . 나는 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
?
&
명령이 백그라운드에서 실행되도록합니다. 그것은 더 빠르거나 아무것도하지 않았습니다. 사용중인 쉘을 읽으십시오 (bash라고 가정합니다) 매뉴얼.