Посмотрите мой скрипт на уязвимости
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Посмотрите мой скрипт на уязвимости - 2010-07-25 18:34:27.606666
|
|
|
oixel
Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
|
<?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->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 <strong>failed</strong>! Try again.");
exit();
}
exec_unstrike_user($username);
process_new_login('', false, '');
//echo "<h1>Logged in</h1>";
$vbulletin->url = 'http://forum.[target].com/login.php';
do_login_redirect();
}
eval('$content .= "' . fetch_template('[target]_login') . '";');
eval('print_output("' . fetch_template('[target]_shell') . '");');
?>
<?
###########################
# 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->userinfo['userid']) == 0) {
echo "<meta http-equiv=\"refresh\" content=\"0;url=[target]_login.php\">";
return;
}
$page_name = "Deactivated Items in Inventory";
$userID = $vbulletin->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->gotShop($userID);
$shop_arr = $obUsershop->viewShop($shopID);
$inv = $inventory->getItemID(intval($inventID));
$countItems = $obUsershop->countItems($shopID);
$arr = $obUser->getUser($shop_arr['userid']);
$username = $arr['username'];
// unlock pack
if(isset($unlock)) {
$packid = intval($_GET['packid']);
$inventid = intval($_GET['invid']);
if($obPack->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->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->redeemItem($inventid, $userID, $inventory, $items, $shopMoney) == 0) {
$msg = "Your item was redeemed";
$pmsg = "Hi, \n\nYo \n\n- [target]bot";
$obUser->sendUser($userID, 'Item redemption', $pmsg);
} else {
$msg = "An error has occured";
}
}
// Print all items
$arr = $inventory->getInventoryList($vbulletin->userinfo['userid']);
$bool = true;
$counter = 1;
foreach ($arr as $key => $val) {
if($val['active'] == 0) {
// define odd/even rows
if ($bool) $bool = false;
else $bool = true;
$invItem = $inventory->getItemID($val['inventid']);
$item = $items->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 >= time() || $val['lifetime'] == 0) {
$item_valid = true;
$expiry_d = date("Y-m-d H:i:s", $expiry_d);
$result = $inventory->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->session->vars['sessionurl_q'] => '[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') . '");');
}
?>
|
|
|
RE: Посмотрите мой скрипт на уязвимости - 2010-07-25 19:53:08.763333
|
|
|
codeismy.name
Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
|
eval('print_output(" ой как стрёмно. теоретически может привести к выполнению произвольного кода
|
|
|
RE: Посмотрите мой скрипт на уязвимости - 2010-07-25 20:55:28.606666
|
|
|
oixel
Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
|
как это проверить не подскажешь? P.S. посмотри этот еще . <?
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->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->getMoney($userid);
$item = $stock->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->getStocksByName($name);
foreach ($arr as $i => $q) {
$select_name = $q['name'];
$select_itemid = $q['itemid'];
$stock_select .= "<option value='$select_itemid'>$select_name</option>\n";
}
}
else {
}
}
$quantity_message = "";
if ($order == 'sell' && intval($itemid) != 0 && intval($userid) != 0) {
$port = $stock->getPortfolioItem($userid, $itemid);
if (empty($port)) {
$quantity_message = 'Your stock: 0';
}
else {
$ord = $stock->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->getBuyOrders($itemid) ;
if (!empty($arr)) {
foreach ($arr as $k => $v) {
$left_list .= getRow(array($v['size'], $v['price']));
}
}
else {
$left_list = getRow(array('-', '-'));
}
$right_header = getRow(array('Sell Price', 'Quantity'));
$arr = $stock->getSellOrders($itemid) ;
if (!empty($arr)) {
foreach ($arr as $k => $v) {
$right_list .= getRow(array($v['price'], $v['size']));
}
}
else {
$right_list = getRow(array('-', '-'));
}
}
$chart = new chartItemTradeHistory($itemid);
$chartimage = $chart->getImageURL(360, 110);
$navbits = array('shy.php' . $vbulletin->session->vars['sessionurl_q'] => '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') . '");');
?>
|
|
|
RE: Посмотрите мой скрипт на уязвимости - 2010-07-25 23:16:20.466666
|
|
|
codeismy.name
Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
|
да всё то же самое.. если это код стандартного вбюлетня то стоит им получше о безопасности позаботиться.. тут кстати та же проблема eval правдо менее критическая так как идёт ивал только шаблона.. но если шаблон написан криво, то это может создать потенциальную угроцу безопасности
|
|
|
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= ?
|
|
|
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
|
|
|
RE: Посмотрите мой скрипт на уязвимости - 2010-07-26 21:50:05.850000
|
|
|
codeismy.name
Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
|
та хз.. надо смотреть на конкретный пример. всё ж заисит не только от движка.. нои от кривости нук внедрения шаблона ну если включен регистр глобал то возможен взлом и через гет параметр так к примеру если взять самый первый скрипт то теоретически можно сделать так script.php?content=<?вредоносный код?>
|
|
|
RE: Посмотрите мой скрипт на уязвимости - 2010-07-26 22:18:05.383333
|
|
|
oixel
Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
|
?content=<?eval($_GET[e]);?> сделал такой запрос куда идти дальше? (на странице ничего не изменилось)
|
|
|
RE: Посмотрите мой скрипт на уязвимости - 2010-08-04 07:01:30.123333
|
|
|
oixel
Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
|
up
|
|
|
RE: Посмотрите мой скрипт на уязвимости - 2010-08-07 12:04:30.106666
|
|
|
oixel
Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
|
up
|
|
|
RE: Посмотрите мой скрипт на уязвимости - 2010-08-07 15:19:35.276666
|
|
|
ZneP
Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
|
$username = $_POST['username'];
$password = $_POST['password']; сделай экранирование спецсимволов
|
|
|
RE: Посмотрите мой скрипт на уязвимости - 2010-08-07 16:29:34.850000
|
|
|
oixel
Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
|
ввел \\\'popko\\\' ошибки не упоявилась(
|
|
|
RE: Посмотрите мой скрипт на уязвимости - 2010-08-07 18:28:20.090000
|
|
|
ZneP
Сообщений: 910
Оценки: 0
Присоединился: 2006-08-21 16:11:47
|
Само собой не появится ошибка. ты ввел уже с экранированием Попробуй ввести без слешей 'popko' Возможно экранирование делается в функции verify_authentication. Но лучше перепроверить
|
|
|
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
|
|
|
RE: Посмотрите мой скрипт на уязвимости - 2010-08-08 09:19:54.680000
|
|
|
oixel
Сообщений: 69
Оценки: 0
Присоединился: 2010-07-17 12:17:51.640000
|
ZneP в одном из скриптов при добавлении ' атоматически добавляет СЛЭШ . Из этого ничего не выжать? Скрипт редактирует новость
|
|
|
|
|