Common Exploiting Problems
Uzaktan Sömürüde FD'ler
Örneğin bir uzak sunucuya bir sömürü gönderirken, sunucuda system('/bin/sh')
çağrıldığında, bu tabii ki sunucu işlemi içinde yürütülecek ve /bin/sh
stdin'den (FD: 0
) giriş bekleyecek ve çıktıyı stdout ve stderr'de (FD'ler 1
ve 2
) yazdıracaktır. Bu nedenle saldırgan kabukla etkileşimde bulunamayacaktır.
Bunu düzeltmenin bir yolu, sunucunun başlatıldığında FD numarası 3
(dinleme için) oluşturduğunu ve ardından bağlantınızın FD numarasının 4
olacağını varsaymaktır. Bu nedenle, dup2
sistem çağrısını kullanarak stdin'i (FD 0) ve stdout'u (FD 1) saldırgan bağlantısının FD 4'ünde (saldırganın bağlantısının olduğu) çoğaltmak mümkün olacak ve böylece kabukla iletişim kurulabilecektir. Çünkü kabuk yürütüldüğünde.
Buradan örnek sömürüye ulaşın:
Socat & pty
Socat zaten stdin
ve stdout
'u sokete aktarır. Ancak, pty
modu SİLME karakterlerini içerir. Bu nedenle, bir \x7f
( SİLME
-) gönderirseniz, exploitinizin önceki karakterini silecektir.
Bunu atlatmak için, herhangi bir gönderilen \x7f
'den önce kaçış karakteri \x16
eklenmelidir.
Burada bu davranışın bir örneğini bulabilirsiniz.
Last updated