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

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

Shaitan-Devil 19.11.2009 18:34

Обзор уязвимостей Intraschool
 
Собрал несколько найденных мной уязвимостей.
Небольшая CMS.
http://sourceforge.net/projects/intraschool/
1) Sql-injection
В скрипте login/login.php
PHP код:

<?php
  
// /login/login.php:  Login process
  // author: Jonathan Roes <jroes@sosdg.org>
  
  
include '../includes/common.inc';

  
$username $_POST['username'];
  
$password $_POST['password'];
  
  if (isset(
$username$password))
  {
     if (
authUser($username$password))
     {
         
$_SESSION['username'] = $username;
         
$_SESSION['password'] = $password;
  
         
$tourl $_POST['tourl'];
         if (!isset(
$tourl)) {
             
header('Location: /login/home.php');
             exit;
         } else {
             
header('Location: ' $tourl);
         }
     }
  }
  
  
header('Location: /login/index.php?error=1');             
?>

1) Уязвимое Header. После редиректа, код будет продолжать выполняться.

nikp 19.11.2009 19:16

Цитата:

Сообщение от Shaitan-Devil
1) Уязвимое Location. После редиректа, код будет продолжать выполняться.
2) Данные не фильтруются.
Смотрим функцию authUser()
include/authUser
PHP код:

  $authQuery='
    SELECT userPasswd FROM '
._AUTH_DB_TABLE.' WHERE
      userId="'
.mysql_escape_string($userId).'" LIMIT 1
  '
;
  if (
$row['userPasswd']==md5($passwd)) { 


Фильтрация есть,
с $userId не сможешь выйти за кавычки.

bug1z 19.11.2009 19:25

Цитата:

1) Уязвимое Location. После редиректа, код будет продолжать выполняться.
Не вижу актуальности этой "уязвимости".

Цитата:

login/studentlogin.php

PHP код:

 if (!isset($_POST['studentid']) && !isset($_SESSION['studentid'])) {
      
// didn't enter anything!?
      
header('Location: /index.php');
      exit;
  } 

И снова, бажный Location.
Я наверное не совсем понимаю, ГДЕ ЗДЕСЬ УЯЗВИМОСТО???

Во первых: Location - это аргумент ф-и, дело не в нем.
Уязвимости имеет ф-я header(), но только в том случае, если после нее НЕ стоит exit или die, только в этом случае код продолжит свое выполнение и мы сможем подделать HTTP запрос.
Так ГДЕ ЗДЕСЬ УЯЗВИМОСТЬ?

Shaitan-Devil 19.11.2009 20:09

Сорри. Исправил. Буду искать еще.

m0Hze 21.11.2009 12:38

Цитата:

Сообщение от Shaitan-Devil
Собрал несколько найденных мной уязвимостей.
Небольшая CMS.
http://sourceforge.net/projects/intraschool/
1) Sql-injection
В скрипте login/login.php
PHP код:

<?php
  
// /login/login.php:  Login process
  // author: Jonathan Roes <jroes@sosdg.org>
  
  
include '../includes/common.inc';

  
$username $_POST['username'];
  
$password $_POST['password'];
  
  if (isset(
$username$password))
  {
     if (
authUser($username$password))
     {
         
$_SESSION['username'] = $username;
         
$_SESSION['password'] = $password;
  
         
$tourl $_POST['tourl'];
         if (!isset(
$tourl)) {
             
header('Location: /login/home.php');
             exit;
         } else {
             
header('Location: ' $tourl);
         }
     }
  }
  
  
header('Location: /login/index.php?error=1');             
?>

1) Уязвимое Header. После редиректа, код будет продолжать выполняться.

Где тут указана SQl-inj? Невижу уязвимого кода.
Какой код должен испоняться после header()?Там же конец файла :/


Время: 06:49