Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Посмотрите мой скрипт на уязвимости

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Посмотрите мой скрипт на уязвимости
Имя
Сообщение << Старые топики   Новые топики >>
Посмотрите мой скрипт на уязвимости - 2010-07-25 18:34:27.606666   
oixel

Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
&lt;?php chdir('/var/www/www.[target].com/htdocs/forum'); include_once('[target]shop/config.php'); require_once('includes/class_dm.php'); require_once('includes/class_dm_user.php'); require_once('includes/functions_login.php'); include_once('server_stats_generated.php'); $page_name = "Login to target"; $userID = $vbulletin-&gt;userinfo['userid']; if(isset($_POST['submit'])) { $username = $_POST['username']; $password = $_POST['password']; if(!verify_authentication($username, $password, md5($password), md5($password), false, true)) { die("Login &lt;strong&gt;failed&lt;/strong&gt;! Try again."); exit(); } exec_unstrike_user($username); process_new_login('', false, ''); //echo "&lt;h1&gt;Logged in&lt;/h1&gt;"; $vbulletin-&gt;url = 'http://forum.[target].com/login.php'; do_login_redirect(); } eval('$content .= "' . fetch_template('[target]_login') . '";'); eval('print_output("' . fetch_template('[target]_shell') . '");'); ?&gt; &lt;? ########################### # It would be nice if the activated items has a different coloured rows ########################### include_once('[target]shop/config.php'); include_once('[target]shop/class_items.php'); include_once('[target]shop/class_inventory.php'); include_once('[target]/functions_misc.php'); include_once('[target]shop/functions_inventory.php'); include_once('[target]shop/functions_money.php'); include_once('[target]shop/class_usershop.php'); include_once('[target]shop/class_users.php'); include_once('[target]shop/class_packs.php'); include_once('market/functions_remove.php'); include_once('server_stats_generated.php'); if (intval($vbulletin-&gt;userinfo['userid']) == 0) { echo "&lt;meta http-equiv=\"refresh\" content=\"0;url=[target]_login.php\"&gt;"; return; } $page_name = "Deactivated Items in Inventory"; $userID = $vbulletin-&gt;userinfo['userid']; $inventID = $_GET['removeItem']; $shopID = intval($_GET['shopID']); $us = $_GET['us']; $unlock = $_GET['unlock']; $redeem = $_GET['redeem']; $items = new storeItems; $inventory = new storeInventory; $obUsershop = new userShop; $obUser = new storeUsers; $obPack = new tbPacks; $gotShop = $obUsershop-&gt;gotShop($userID); $shop_arr = $obUsershop-&gt;viewShop($shopID); $inv = $inventory-&gt;getItemID(intval($inventID)); $countItems = $obUsershop-&gt;countItems($shopID); $arr = $obUser-&gt;getUser($shop_arr['userid']); $username = $arr['username']; // unlock pack if(isset($unlock)) { $packid = intval($_GET['packid']); $inventid = intval($_GET['invid']); if($obPack-&gt;unlockPack($packid, $userID, $items, $inventory, $inventid) == 0) { $msg = "Pack has been unlocked"; $pmsg = "Hey!\nYou have just unlocked your pack. Have fun!\n\n- [target]bot"; $obUser-&gt;sendUser($userID, 'Pack unlocked', $pmsg); } else { $msg = "An error has occured"; } } // redeem [target]credit item if(isset($redeem)) { // use packs class $inventid = intval($_GET['invid']); if($obPack-&gt;redeemItem($inventid, $userID, $inventory, $items, $shopMoney) == 0) { $msg = "Your item was redeemed"; $pmsg = "Hi, \n\nYo \n\n- [target]bot"; $obUser-&gt;sendUser($userID, 'Item redemption', $pmsg); } else { $msg = "An error has occured"; } } // Print all items $arr = $inventory-&gt;getInventoryList($vbulletin-&gt;userinfo['userid']); $bool = true; $counter = 1; foreach ($arr as $key =&gt; $val) { if($val['active'] == 0) { // define odd/even rows if ($bool) $bool = false; else $bool = true; $invItem = $inventory-&gt;getItemID($val['inventid']); $item = $items-&gt;getItem($val['itemid']); // $amtpaid = money_format('%(#10n', $val['amtpaid']); //$amtpaid = $val['amtpaid']; $amtpaid = number_format($val['amtpaid']); if($val['tradeable']) { $trade = true; } else { $trade = false; } $expiry_d = ''; // checks if the item is expired if (!empty($val['expiry_date'])) { $expiry_d = unixtimestamp($val['expiry_date']); if ($expiry_d &gt;= time() || $val['lifetime'] == 0) { $item_valid = true; $expiry_d = date("Y-m-d H:i:s", $expiry_d); $result = $inventory-&gt;dateDiff($expiry_d); $expiry_d = $result['result']; } else { $item_valid = false; } } } if($val['deleted'] == 0) { eval('$inventorylistcontent .= "' . fetch_template('[target]_inventorylist') . '";'); } } // Start Navbar $navbits = array('[target].php' . $vbulletin-&gt;session-&gt;vars['sessionurl_q'] =&gt; '[target]Shop'); //construct_usercp_nav('textures'); $navbits[''] = 'Inventory'; // Make Navbar $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";'); eval('$navbar = "' . fetch_template('navbar') . '";'); eval('$content .= "' . fetch_template('[target]_inventory') . '";'); if($_GET['us'] == 1) { eval('print_output("' . fetch_template('usershop_shell') . '");'); } else { eval('print_output("' . fetch_template('[target]_shell') . '");'); } ?&gt;
Post #: 1
RE: Посмотрите мой скрипт на уязвимости - 2010-07-25 19:53:08.763333   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
eval('print_output("
ой как стрёмно. теоретически может привести к выполнению произвольного кода
Post #: 2
RE: Посмотрите мой скрипт на уязвимости - 2010-07-25 20:55:28.606666   
oixel

Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
как это проверить не подскажешь?

P.S. посмотри этот еще .
&lt;? include_once('shyshop/config.php'); include_once('shymarket/class_stock.php'); include_once('shymarket/class_chart.php'); include_once('shymarket/functions_table.php'); include_once('shymarket/functions_stock.php'); include_once('shyshop/class_items.php'); include_once('server_stats_generated.php'); $money = new storeMoney; $items = new storeItems; $stock = new stock; $price = intval($_GET['price']); $name = $_GET['name']; $quantity = intval($_GET['quantity']); $itemid = intval($_GET['itemid']); $order = $_GET['order']; $userid = $vbulletin-&gt;userinfo['userid']; // on error messages we get a post back if (intval($itemid) == 0) { $itemid = intval($_POST['itemid']); } if (intval($quantity) == 0) { $quantity = intval($_POST['quantity']); } if (intval($price) == 0) { $price = intval($_POST['price']); } if ($order == '') { $order = $_POST['order']; } $m = $money-&gt;getMoney($userid); $item = $stock-&gt;getItem($itemid); $itemname = $item['itemname']; $subpage = 'shyExchange - Trade - ' . $itemname; $stock_select = ""; $price_message = ""; if ($order == 'buy') { $price_message = "Your current credit: " . $m['pocket']; if ($itemid == 0 && strcmp($name, "")) { $arr = $stock-&gt;getStocksByName($name); foreach ($arr as $i =&gt; $q) { $select_name = $q['name']; $select_itemid = $q['itemid']; $stock_select .= "&lt;option value='$select_itemid'&gt;$select_name&lt;/option&gt;\n"; } } else { } } $quantity_message = ""; if ($order == 'sell' && intval($itemid) != 0 && intval($userid) != 0) { $port = $stock-&gt;getPortfolioItem($userid, $itemid); if (empty($port)) { $quantity_message = 'Your stock: 0'; } else { $ord = $stock-&gt;getAvailableItems($userid, $itemid); if (empty($ord)) { $quantity_message = 'Your stock: 0'; } else { $quantity_message = "Your available stock: " . $ord['quantity']; $quantity = $ord['quantity']; } } } if (intval($itemid) != 0) { $left_header = getRow(array('Quantity', 'Buy Price')); $arr = $stock-&gt;getBuyOrders($itemid) ; if (!empty($arr)) { foreach ($arr as $k =&gt; $v) { $left_list .= getRow(array($v['size'], $v['price'])); } } else { $left_list = getRow(array('-', '-')); } $right_header = getRow(array('Sell Price', 'Quantity')); $arr = $stock-&gt;getSellOrders($itemid) ; if (!empty($arr)) { foreach ($arr as $k =&gt; $v) { $right_list .= getRow(array($v['price'], $v['size'])); } } else { $right_list = getRow(array('-', '-')); } } $chart = new chartItemTradeHistory($itemid); $chartimage = $chart-&gt;getImageURL(360, 110); $navbits = array('shy.php' . $vbulletin-&gt;session-&gt;vars['sessionurl_q'] =&gt; 'shy Exchange'); $navbits[''] = 'Trade'; $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";'); eval('$content .= "' . fetch_template('shy_exchange_trade') . '";'); eval('print_output("' . fetch_template('shy_exchange_shell') . '");'); ?&gt;
Post #: 3
RE: Посмотрите мой скрипт на уязвимости - 2010-07-25 23:16:20.466666   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
да всё то же самое.. если это код стандартного вбюлетня то стоит им получше о безопасности позаботиться..
тут кстати та же проблема eval правдо менее критическая так как идёт ивал только шаблона.. но если шаблон написан криво, то это может создать потенциальную угроцу безопасности
Post #: 4
RE: Посмотрите мой скрипт на уязвимости - 2010-07-26 08:41:43.703333   
oixel

Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000

quote:

ORIGINAL: codeismy.name

eval('print_output("
ой как стрёмно. теоретически может привести к выполнению произвольного кода

Ну скажи как это проверить?
Вот есть страница site.com/login.php . нужно сделать site.com/login.php?eval= ?
Post #: 5
RE: Посмотрите мой скрипт на уязвимости - 2010-07-26 08:51:48.516666   
oixel

Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
Если поможет , Linux www 2.6.22.14-72.fc6 #1 SMP Wed Nov 21 15:12:59 EST 2007 i686
server - Apache
php: 5.1.6 Safe-mod: OFF
Post #: 6
RE: Посмотрите мой скрипт на уязвимости - 2010-07-26 21:50:05.850000   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
та хз.. надо смотреть на конкретный пример. всё ж заисит не только от движка.. нои от кривости нук внедрения шаблона
ну если включен регистр глобал то возможен взлом и через гет параметр
так к примеру если взять самый первый скрипт то теоретически можно сделать так script.php?content=<?вредоносный код?>
Post #: 7
RE: Посмотрите мой скрипт на уязвимости - 2010-07-26 22:18:05.383333   
oixel

Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
?content=<?eval($_GET[e]);?> сделал такой запрос куда идти дальше? (на странице ничего не изменилось)
Post #: 8
RE: Посмотрите мой скрипт на уязвимости - 2010-08-04 07:01:30.123333   
oixel

Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
up
Post #: 9
RE: Посмотрите мой скрипт на уязвимости - 2010-08-07 12:04:30.106666   
oixel

Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
up
Post #: 10
RE: Посмотрите мой скрипт на уязвимости - 2010-08-07 15:19:35.276666   
ZneP

Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
$username = $_POST['username']; $password = $_POST['password']; сделай экранирование спецсимволов
Post #: 11
RE: Посмотрите мой скрипт на уязвимости - 2010-08-07 16:29:34.850000   
oixel

Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
ввел \\\'popko\\\' ошибки не упоявилась(
Post #: 12
RE: Посмотрите мой скрипт на уязвимости - 2010-08-07 18:28:20.090000   
ZneP

Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
Само собой не появится ошибка.
ты ввел уже с экранированием
Попробуй ввести без слешей 'popko'

Возможно экранирование делается в функции verify_authentication. Но лучше перепроверить
Post #: 13
RE: Посмотрите мой скрипт на уязвимости - 2010-08-08 09:16:39.946666   
oixel

Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
Ввел 'popko' ошибки так же не появилось

require_once('includes/class_dm.php');
require_once('includes/class_dm_user.php');
require_once('includes/functions_login.php'); скрипт подключает сорсы булки 3.8.2
Post #: 14
RE: Посмотрите мой скрипт на уязвимости - 2010-08-08 09:19:54.680000   
oixel

Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
ZneP в одном из скриптов при добавлении ' атоматически добавляет СЛЭШ . Из этого ничего не выжать?
Скрипт редактирует новость
Post #: 15
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Посмотрите мой скрипт на уязвимости







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.