Bazı CTF zorluklarını çevrimiçi olarak çözerken, bir sunucuyu kaba kuvvetlendirmem gereken bir durumla karşılaştım. Bu yazdığım kod:
#!/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
Bu inanılmaz derecede acı vericiydi . 1000'den 9999'a kadar kombinasyonları denemem gerekiyordu ve bu her 10 deneme için yaklaşık 5 saniye sürdü. Sonra, bir tavsiyenin ardından, bu satırın sonuna bir '&' koydum:
echo "a fixed string" $i | nc localhost *port here* >> /tmp/me/dump.txt &
Ve saniyeler içinde 100'lü kombinasyon denedi. Çok şaşırmıştım. Birisi bana mantığı açıklayabilir mi? '&' Ne yaptı?
for i in {1000..9999}
waitYine de sonuna bir a eklemelisiniz .
nc -z localhost 1000-2000?
&komutun arka planda çalışmasını sağlar, hepsi bu. Daha hızlı ya da hiçbir şey yapmadı. Kullandığınız kabukları okuyun (sanırım bash) kılavuzu.