PDA

Просмотр полной версии : RDS - ReduKToR Blog System


ReduKToR
02.01.2010, 23:19
ReduKToR Blog System Версия 0.9 alpha [path1]

Что нового в версии 0.9:
[+] - Mod_Rewrite
[+] - Добавлена возможность перехода к полной версии новости.(new)
[+] - Профиксены на сегодняшний день,все известные-найденные уязвимости в коде.
[+] - Добавленая шаблонизация*
[+] - Все настройки теперь можно изменить в файле core.php,а не лазить по файлам.
[+] - Изменен основной дизайн проекта.
*Читать пункт ниже.
[+]Установка:
- Создайте Базу данных в PHPmyAdmin
- Пропишите данные в файле CORE.PHP
- В адресной строке браузера пропишите http://ВАШ-САЙТ.ру/install.php
- После успешной установки удалите файл INSTALL.PHP из папки со скриптами
- Потом перейдите по адресу http://ВАШ-САЙТ.ру/admin/admin.php По умолчанию Логин:admin Пароль:1admin1
- Обязательно измените его,отредактировав сам файл core.php который находится в папке includes
- После успешного входы,вы можете начать добавлять новости и редактировать свежезарегистрированных пользователей

[+]Юзабилити:
- Все действия проиходят из панели администратора.
- Для редактирвоания фраз\параметров и т.д Необходимо Править сами файлы php
-Для смены шаблона,достаточно отредактировать файлы .tpl Который находятся в папке templates .

Внимание: Это не пиар скрипта,и не выепистость как некоторые думают.Я выложил скрипт, чтобы найти помощи,а именно, я очень прошу вас проверить скрипт на уязвимости, показать все недочеты и баги.


http://forum.antichat.ru/fusion/misc/navbits_finallink.gif Скачать 0.9alpha (http://www.sendspace.com/file/rva2fy)

ReduKToR
02.01.2010, 23:26
Deathdreams,ну если учитывать ,то что у меня знаний по php не так много,то ...

ПС.у меня тоде быдло код, без учтения всяких норм и стандартов, но работает!

Deathdreams
02.01.2010, 23:29
Строка 74 - подключение к мускулю. (index.php)
Зачем 2 раза подключатся, если в core.php уже создано подключение?

ReduKToR
02.01.2010, 23:30
[Raz0r],стеб не уместен,бро....
Я не к чему никого не побуждаю....Просто решил создать тему)
Я например не люблю эти здоровенные блоги,в которых много чего не понятно и не нужно

ReduKToR
02.01.2010, 23:33
DLE чистый
Ты меня смешишь пацан, а <?PHP и ?> я у дле случаем не спизидил?

warlok
02.01.2010, 23:36
если сам критику непереносиш то и неп***и что у других быдлокод.

ReduKToR
02.01.2010, 23:39
warlok,я переношу критику)Причем уже исправил недочет указанный во втором посте)

Причем заметь,я не отрицаю,что у меня код написал не по нормам......

Gifts
03.01.2010, 00:55
ReduKToR SQL inj, XSS, обход авторизации. И это только на первый взгляд

Deathdreams
03.01.2010, 01:01
Gifts
Да, Инъекции там везде и всюду.
Данные обрабатывать нужно.

ReduKToR
03.01.2010, 09:47
Gifts,ну так исправим......................

xxx-xxx
03.01.2010, 22:32
шаблонов нет =(

а это вообще ужос
mysql_query("INSERT INTO `blog`.`users` (`name` ,`password` ,`email` ,`homepage` ,`icq` ,`ip` ,`date`) VALUES ('".$_POST['name']."', '".$_POST['pass']."', '".$_POST['email']."', '".$_POST['homepage']."', '".$_POST['icq']."', '".$_SERVER['REMOTE_ADDR']."', '".date("d.m.Y")."');");

LStr1ke
03.01.2010, 22:56
Для "Бета 0.5" нормально ))))

Vlad&slav
04.01.2010, 14:09
Я на локалке запустил, даж зарегаться не смог :D Почемуто 2 раза поле с регистрацией+кидает не на главную сайта а на гл локалхоста.
Идея мне нрав. Если закрыть уязвимости будет норм.

ps. Я код через выравниватель (Клац (http://moduls.allzona.net/align/)) пропустил, получилось красивей

ReduKToR
05.01.2010, 16:59
Обновил первый пост.Просьба всех прочитать.


За поправки\комментарии всем большое спасибо!
Огромный респект человеку с ником: Deathdreams
Также Ctacok,b3 и другим....

Gifts
05.01.2010, 22:06
ReduKToR Вы получаете садомазохистское удовольствие, когда ваши поделки поливают дерьмом? Прежде чем срать "обновленными" версиями - проверьте, хотя б, что скрипты хоть минимально работают. Например, в админку - тупо не зайти. Защита, которую, видимо, вам посоветовали поставить - делает скрипты еще более уязвимыми. Потому что SQL-inj теперь возможна с ВКЛЮЧЕННЫМИ magic_quotes. То же самое с XSS - они вообще всегда теперь работают

ReduKToR
10.01.2010, 10:47
UPDATE......New version. view post #1

Gifts
10.01.2010, 16:17
ReduKToR http://forum.antichat.ru/thread30641.html Прочитать внимательно 1 и 19 посты. ВНИМАТЕЛЬНО. Сходить сделать чаю/покурить/пописать. Прочитать еще раз. Попытаться понять. Повторять последние два пункта до полного понимания.

Потом собраться с силами и отягощенные новыми знаниями - переписать весь код, убрать долбанную "фильтрацию" (я кстати ошибся, ее можно обойти при любой установке magic_quotes).

З.Ы. И попробуйте писать красивый код, отступы отсутствие лишних инклудов, лишних точек в путях и так далее

m0Hze
10.01.2010, 17:55
Я промолчу про фильтрацию,она непоколебима.
Ты меня раззодорил,я даже сел и написал замену своему Вп на блоге,скоро запущу,вот только систему модулей продумаю :o

m0Hze
10.01.2010, 18:07
Небольшая рецензия,может поможет когда нибудь.
File: members.php

$userid = intval($_GET['userid']);

Может быть стоит сначала проверить установлена ли переменная?А уже после делать запросы.

File: search.php

echo "<input type='text' size=48 name='search' value='" . (isset($_POST['search'])?$_POST['search']:'') . "'>";

Помоему это xss.Демотивирует,да?
...

$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search);
$result = mysql_query("SELECT * FROM news WHERE publish='1' AND MATCH(announce) AGAINST('$search')");

Кеп в ахуе.


File: news.php

$news = intval($_GET['news']);

Ну и правильно! На*** нужно вообще ети проверки на иссет,емпти? Кто это придумал? Тоже так считаю.

File: login.php

$query = "SELECT password FROM users WHERE name='".$_POST['name']."'";

Тут я даже удивился.Вроде бы везде ты заюзал "фильтрацию",а тут вдруг хуяг и блинд инжект.
Далее,если мы тупы,и не смогли провести тут инъекцию,он нам кагбе дает второй шанс.

$_SESSION['login'] = $_POST['name'];
$_SESSION['password'] = $_POST['password'];

Возрвращаемся в news.php

$query = "UPDATE session SET putdate = NOW(),

user = '$_SESSION[user]'

WHERE id_session = '$id_session'";

mysql_query($query);

Пиу-пиу.
File: index.php

if (isset($_GET['act'])) {
if ($_GET['act'] = 'add') {
if (empty($_POST['name']) || empty($_POST['text'])) {
die('<div class=error>Обнаруженны пустые поля!</div>');
} else {
$name = htmlspecialchars($_POST['name']);
$text = htmlspecialchars($_POST['text']);
$id = intval($_POST['id']);

$name = mysql_real_escape_string($name);
$text = mysql_real_escape_string($text);
$id = mysql_real_escape_string($id);
$name = iconv("UTF-8", "WINDOWS-1251", $name);
$text = iconv("UTF-8", "WINDOWS-1251", $text);
$ip = $_SERVER['REMOTE_ADDR'];
$date = date("m.d.y H:i:s"); // 03.12.01 17:16:17
$query = "INSERT INTO `comments`(`id`,`name`,`text`,`ip`,`date`) VALUES('$id','$name','$text','$ip','$date')";

Блио, я один считаю что htmlspecialchars(), обычно юзают на оут-те данных? И ладно бы она помогала от скуль,так она даже ' не тронет кагбе, ога да?

Вердикт: Смешать с говном,подать на стол.

Gifts
10.01.2010, 19:29
m0Hze Многовато пафоса и ничего значимого, кроме раскрытия путей вы и не нашли. Очень интересно, как вы проведете инъекцию в login.php. Насчет xss в search.php - не уверен, конечно, что не будет работать, но тоже интересно

htmlspecialchars в index.php защищает от XSS при выводе, конечно неправильно портить данные в БД - но пусть.

ReduKToR Ваша стандартная проблема - ваша поделка - не работает. Где-то лишние точки в относительных путях, где-то BOM запись в начале файла, не дающая использовать сессии

ReduKToR
10.01.2010, 19:49
m0Hze,ты лолка парень............
Gifts,можешь в асю мне стукануть?!)есть пару вопросов.......

m0Hze
10.01.2010, 21:00
m0Hze Многовато пафоса и ничего значимого, кроме раскрытия путей вы и не нашли. Очень интересно, как вы проведете инъекцию в login.php. Насчет xss в search.php - не уверен, конечно, что не будет работать, но тоже интересно

htmlspecialchars в index.php защищает от XSS при выводе, конечно неправильно портить данные в БД - но пусть.

ReduKToR Ваша стандартная проблема - ваша поделка - не работает. Где-то лишние точки в относительных путях, где-то BOM запись в начале файла, не дающая использовать сессии
В чем проблема проведения инъекта в login.php?
В том что:

$array = array(
'union' => strrev('union'),
'select' => strrev('select'),
'+' => 'plus',
'document.cookie' => '',
'alert' => '',
"'" => "");


foreach($_POST as $key => $value){

$_POST[$key] = urldecode($value);

$_POST[$key] = strtr($value, $array);

}
?
Сейчас установлю,и постараюсь показать наглядно.

Gifts
10.01.2010, 21:05
m0Hze Угу, полное отсутствие кавычек - не позволит выйти за пределы запроса с одним только параметром. От двух параметров - да, там можно сделать что угодно при любой установке магических_кавычек

m0Hze
10.01.2010, 21:25
В чем проблема проведения инъекта в login.php?
В том что:

$array = array(
'union' => strrev('union'),
'select' => strrev('select'),
'+' => 'plus',
'document.cookie' => '',
'alert' => '',
"'" => "");


foreach($_POST as $key => $value){

$_POST[$key] = urldecode($value);

$_POST[$key] = strtr($value, $array);

}
?
Сейчас установлю,и постараюсь показать наглядно.
Ска, незаметил что кавычка фильтруеться :(
"'" незаметил,признаю свою ошибку Ж(
Но фильтр все равно бяка,например uni'on = union, UniOn = union, seleunionct = select, :(
Кагбе тут я извиняюсь,но я докапаюсь до правды :o
Пысы, некошерно пользовать <?, мой вебсервер их не понемает =(
=( До,гифт прав,раскрытия онли.Ковычку неудалось подмеить даже двойным кодированием :(
Пойду поем для разнообразия.

[Life]
10.01.2010, 21:44
я думаю что для бетки это норм.

Gifts
10.01.2010, 22:13
m0Hze Плохо смотрите, есть там инъекция, работающая при любой установке кавычек и дающая нам активную XSSку и читалку файлов, например. Причем именно благодаря фильтру

ReduKToR
11.01.2010, 07:42
Gifts,может подскажешь где?
я бы ее устранил)
[Life],это альфа)