Common Exploiting Problems
Uzak Sömürüde FD'ler
Bir uzaktan sunucuya system('/bin/sh')
çağrısı yapan bir sömürü gönderdiğinizde, bu sunucu sürecinde çalıştırılacak ve /bin/sh
stdin'den (FD: 0
) girdi bekleyecek ve stdout ve stderr'de (FD'ler 1
ve 2
) çıktıyı yazdıracaktır. Bu nedenle, saldırgan shell ile etkileşimde bulunamayacaktır.
Bunu düzeltmenin bir yolu, sunucu başlatıldığında FD numarası 3
(dinleme için) oluşturduğunu varsaymaktır ve ardından, bağlantınız FD numarası 4
'te olacaktır. Bu nedenle, stdin'i (FD 0) ve stdout'u (FD 1) FD 4'te (saldırganın bağlantısı) çoğaltmak için dup2
sistem çağrısını kullanmak mümkündür, böylece shell çalıştırıldığında onunla iletişim kurmak mümkün olacaktır.
Socat & pty
Not edin ki socat zaten stdin
ve stdout
'u sokete aktarır. Ancak, pty
modu DELETE karakterlerini içerir. Yani, bir \x7f
(DELETE
-) gönderirseniz, bu saldırınızın önceki karakterini siler.
Bunu aşmak için, gönderilen her \x7f
'nin önüne kaçış karakteri \x16
eklenmelidir.
Burada bu davranışın bir örneğini bulabilirsiniz.
Last updated