Simen1 Skrevet 31. januar 2012 Del Skrevet 31. januar 2012 Er du klar over at man kan lage kloner av programmer hvis man kjenner til alt av kilde kode ? Hvordan har du tenkt til at en som kjenner kildekoden til pcAnywhere skal få kompilert og installert en modifisert utgave på offerets maskin? Lenke til kommentar
Occi Skrevet 31. januar 2012 Del Skrevet 31. januar 2012 Er du klar over at man kan lage kloner av programmer hvis man kjenner til alt av kilde kode ? Da lager man et program som lurer serveren til å tro at det er det ekte programmet som kjører . Den enste forskjellen er her at klonen oppfører seg alt annet en normalt . Du kan kun klone klienten i så fall, hvis ikke også den foregår på serversiden via f. eks en nettside. Uansett så foregår behandlingen av data vanligvis på serverens side, da har det ingenting å si om klienten din er korrupt om sjekken ikke kan endres. Selv om du kjenner kildekoden til serveren som du kan logge deg inn på, så betyr ikke det at du kan endre den. Lenke til kommentar
sinnaelgen Skrevet 31. januar 2012 Del Skrevet 31. januar 2012 (endret) Er du klar over at man kan lage kloner av programmer hvis man kjenner til alt av kilde kode ? Hvordan har du tenkt til at en som kjenner kildekoden til pcAnywhere skal få kompilert og installert en modifisert utgave på offerets maskin? Det er fult mulig hvis ofret selv blir lurt til å gjøre det. de flest laster jo bare ned og installerer programmer Du kan kun klone klienten i så fall, hvis ikke også den foregår på serversiden via f. eks en nettside. Uansett så foregår behandlingen av data vanligvis på serverens side, da har det ingenting å si om klienten din er korrupt om sjekken ikke kan endres. Selv om du kjenner kildekoden til serveren som du kan logge deg inn på, så betyr ikke det at du kan endre den. Hvis man kjenner kilde koden til et hver program ( også server ) så er det fullt mulig å lage egne utgaver. i og for seg så var jeg inne på det tidligere hvis bare deler av systemet er haket ( modifisert program) så er det omtrent like vanskelig å bryte seg inn som det er med originalen Endret 1. februar 2012 av den andre elgen Lenke til kommentar
tommyb Skrevet 1. februar 2012 Del Skrevet 1. februar 2012 Det er fult mulig hvis ofret selv blir lurt til å gjøre det. de flest laster jo bare ned og installerer programmer Dette er universalt umulig å sikre seg mot. Det eneste som kan hjelpe i noen grad mot dette er å være i et diktatorisk sperret miljø som iOS eller W8 Metro, altså er fordelen langt mindre enn bakdelen. Lenke til kommentar
Simen1 Skrevet 1. februar 2012 Del Skrevet 1. februar 2012 Manuelle "virus" som f.eks en postit-lapp på tastaturet med påskriften "skriv format C: og trykk enter" var jo festlige saker en gang i tida, men hvor mange gikk egentlig på det? Om det er den type "virus" du tenker på så er det ikke maskinvaren eller programvaren som er problemet. Lenke til kommentar
sinnaelgen Skrevet 1. februar 2012 Del Skrevet 1. februar 2012 (endret) Manuelle "virus" som f.eks en postit-lapp på tastaturet med påskriften "skriv format C: og trykk enter" var jo festlige saker en gang i tida, men hvor mange gikk egentlig på det? Om det er den type "virus" du tenker på så er det ikke maskinvaren eller programvaren som er problemet. Likevel er det en potensiell fare med dem Endret 1. februar 2012 av den andre elgen Lenke til kommentar
Gjest Slettet-t8fn5F Skrevet 1. februar 2012 Del Skrevet 1. februar 2012 politien ?? Lenke til kommentar
sinnaelgen Skrevet 1. februar 2012 Del Skrevet 1. februar 2012 politien ?? en usynlig skrivefeil fremsatt av ordlisten som mistolket det jeg skrev i sta Lenke til kommentar
xibriz Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Vi er alle enige om at Social Engineering er den letteste måten å få adgang til ett system den andre elgen: jeg skulle ønske at du hadde slike skills som du snakker om. Da skulle jeg satt opp en innlogging på en web-side og gitt deg all kildekoden, så kunne du holdt på til du ble blå i ansiktet. Lenke til kommentar
sinnaelgen Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Vi er alle enige om at Social Engineering er den letteste måten å få adgang til ett system den andre elgen: jeg skulle ønske at du hadde slike skills som du snakker om. Da skulle jeg satt opp en innlogging på en web-side og gitt deg all kildekoden, så kunne du holdt på til du ble blå i ansiktet. Det spørs hvilket programmeringsspråk du pålegger meg å bruke. Derimot så er du neppe i stand til å gi meg alle koden som brukes for å få det til ( slik jeg har nevnt det lenger oppe ). Innlogging på en web-side krever nok mere kilde kode en den du kan få tak i. husk at det jeg mer er absolutt all koden , ikke det man tror som er alle nødvendig kode Lenke til kommentar
Matsemann Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Du tar fortsatt feil, elgen. At du har kildekoden endrer ikke hva som kjøres på serveren. At du kan se hvordan passordene behandles er irrelevant så lenge det gjøres på en sikker måte. 1 Lenke til kommentar
007CD Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Du tar fortsatt feil, elgen. At du har kildekoden endrer ikke hva som kjøres på serveren. At du kan se hvordan passordene behandles er irrelevant så lenge det gjøres på en sikker måte. Dette stemmer, fordi passord burde bli hashet, det vil si at du får en lang pen streng med bokstaver og tall. Den er også enveis, så du kan ikke bruke hashen for å få frem passordet på noen som helst måte. Man kan derimot brute force og forsøke å kjøre forskjellige kombinasjoner og se om man får samme hash, men er det ett langt passord så har du jobb for det neste årtusenet. 1 Lenke til kommentar
Gjest Slettet-t8fn5F Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Kildekoden for å logge seg inn på en php-nuke side. Versågo kjør debatt... <?php /*************************************************************************** * login.php * ------------------- * begin : Saturday, Feb 13, 2001 * copyright : © 2001 The phpBB Group * email : [email protected] * * $Id: login.php,v 1.47.2.24 2006/04/22 20:28:42 grahamje Exp $ * * ***************************************************************************/ /*************************************************************************** * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * ***************************************************************************/ if ( !defined('MODULE_FILE') ) { die("You can't access this file directly..."); } $module_name = basename(dirname(__FILE__)); require("modules/".$module_name."/nukebb.php"); // // Allow people to reach login page if // board is shut down // define("IN_LOGIN", true); define('IN_PHPBB', true); include($phpbb_root_path . 'extension.inc'); include($phpbb_root_path . 'common.'.$phpEx); // // Set page ID for session management // $userdata = session_pagestart($user_ip, PAGE_LOGIN, $nukeuser); init_userprefs($userdata); // // End session management // // session id check if (!empty($HTTP_POST_VARS['sid']) || !empty($HTTP_GET_VARS['sid'])) { $sid = (!empty($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : $HTTP_GET_VARS['sid']; } else { $sid = ''; } if( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) || isset($HTTP_POST_VARS['logout']) || isset($HTTP_GET_VARS['logout']) ) { if( ( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) ) && (!$userdata['session_logged_in'] || isset($HTTP_POST_VARS['admin'])) ) { $username = isset($HTTP_POST_VARS['username']) ? phpbb_clean_username($HTTP_POST_VARS['username']) : ''; $password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : ''; $sql = "SELECT user_id, username, user_password, user_active, user_level, user_login_tries, user_last_login_try FROM " . USERS_TABLE . " WHERE username = '" . str_replace("\\'", "''", $username) . "'"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql); } if( $row = $db->sql_fetchrow($result) ) { if( $row['user_level'] != ADMIN && $board_config['board_disable'] ) { header($header_location . append_sid("index.$phpEx", true)); exit; } else { // If the last login is more than x minutes ago, then reset the login tries/time if ($row['user_last_login_try'] && $board_config['login_reset_time'] && $row['user_last_login_try'] < (time() - ($board_config['login_reset_time'] * 60))) { $db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_login_tries = 0, user_last_login_try = 0 WHERE user_id = ' . $row['user_id']); $row['user_last_login_try'] = $row['user_login_tries'] = 0; } // Check to see if user is allowed to login again... if his tries are exceeded if ($row['user_last_login_try'] && $board_config['login_reset_time'] && $board_config['max_login_attempts'] && $row['user_last_login_try'] >= (time() - ($board_config['login_reset_time'] * 60)) && $row['user_login_tries'] >= $board_config['max_login_attempts'] && $userdata['user_level'] != ADMIN) { message_die(GENERAL_MESSAGE, sprintf($lang['Login_attempts_exceeded'], $board_config['max_login_attempts'], $board_config['login_reset_time'])); } if( md5($password) == $row['user_password'] && $row['user_active'] ) { $autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0; $admin = (isset($HTTP_POST_VARS['admin'])) ? 1 : 0; $session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, $autologin, $admin); // Reset login tries $db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_login_tries = 0, user_last_login_try = 0 WHERE user_id = ' . $row['user_id']); if( $session_id ) { $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx"; redirect(append_sid($url, true)); } else { message_die(CRITICAL_ERROR, "Couldn't start session : login", "", __LINE__, __FILE__); } } // Only store a failed login attempt for an active user - inactive users can't login even with a correct password elseif( $row['user_active'] ) { // Save login tries and last login if ($row['user_id'] != ANONYMOUS) { $sql = 'UPDATE ' . USERS_TABLE . ' SET user_login_tries = user_login_tries + 1, user_last_login_try = ' . time() . ' WHERE user_id = ' . $row['user_id']; $db->sql_query($sql); } $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : ''; $redirect = str_replace('?', '&', $redirect); if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r")) { message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.'); } $template->assign_vars(array( 'META' => '<meta http-equiv=\"refresh\" content=\"3;url=' . append_sid("login.$phpEx?redirect=$redirect") . '\">') ); $message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], '<a href=\"' . append_sid("login.$phpEx?redirect=$redirect") . '\">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>'); message_die(GENERAL_MESSAGE, $message); } } } else { $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : ""; $redirect = str_replace("?", "&", $redirect); if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r")) { message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.'); } $template->assign_vars(array( 'META' => '<meta http-equiv=\"refresh\" content=\"3;url=' . append_sid("login.$phpEx?redirect=$redirect") . '\">') ); $message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], '<a href=\"' . append_sid("login.$phpEx?redirect=$redirect") . '\">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>'); message_die(GENERAL_MESSAGE, $message); } } else if( ( isset($HTTP_GET_VARS['logout']) || isset($HTTP_POST_VARS['logout']) ) && $userdata['session_logged_in'] ) { // session id check if ($sid == '' || $sid != $userdata['session_id']) { message_die(GENERAL_ERROR, 'Invalid_session'); } if( $userdata['session_logged_in'] ) { session_end($userdata['session_id'], $userdata['user_id']); } if (!empty($HTTP_POST_VARS['redirect']) || !empty($HTTP_GET_VARS['redirect'])) { $url = (!empty($HTTP_POST_VARS['redirect'])) ? htmlspecialchars($HTTP_POST_VARS['redirect']) : htmlspecialchars($HTTP_GET_VARS['redirect']); $url = str_replace('&', '&', $url); redirect(append_sid($url, true)); } else { redirect(append_sid("index.$phpEx", true)); } } else { $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx"; redirect(append_sid($url, true)); } } else { // // Do a full login page dohickey if // user not already logged in // if( !$userdata['session_logged_in'] || (isset($HTTP_GET_VARS['admin']) && $userdata['session_logged_in'] && $userdata['user_level'] == ADMIN)) { $page_title = $lang['Login']; include("modules/$module_name/includes/page_header.php"); $template->set_filenames(array( 'body' => 'login_body.tpl') ); $forward_page = ''; if( isset($HTTP_POST_VARS['redirect']) || isset($HTTP_GET_VARS['redirect']) ) { $forward_to = $HTTP_SERVER_VARS['QUERY_STRING']; if( preg_match("/^redirect=([a-z0-9\.#\/\?&=\+\-_]+)/si", $forward_to, $forward_matches) ) { $forward_to = ( !empty($forward_matches[3]) ) ? $forward_matches[3] : $forward_matches[1]; $forward_match = explode('&', $forward_to); if(count($forward_match) > 1) { for($i = 1; $i < count($forward_match); $i++) { if( !ereg("sid=", $forward_match[$i]) ) { if( $forward_page != '' ) { $forward_page .= '&'; } $forward_page .= $forward_match[$i]; } } $forward_page = $forward_match[0] . '?' . $forward_page; } else { $forward_page = $forward_match[0]; } } } Header("Location: modules.php?name=Your_Account&redirect=$forward_page"); $username = ( $userdata['user_id'] != ANONYMOUS ) ? $userdata['username'] : ''; $s_hidden_fields = '<input type="hidden" name="redirect" value="' . $forward_page . '" />'; $s_hidden_fields .= (isset($HTTP_GET_VARS['admin'])) ? '<input type="hidden" name="admin" value="1" />' : ''; make_jumpbox('viewforum.'.$phpEx); $template->assign_vars(array( 'USERNAME' => $username, 'L_ENTER_PASSWORD' => (isset($HTTP_GET_VARS['admin'])) ? $lang['Admin_reauthenticate'] : $lang['Enter_password'], 'L_SEND_PASSWORD' => $lang['Forgotten_password'], 'U_SEND_PASSWORD' => append_sid("profile.$phpEx?mode=sendpassword"), 'S_HIDDEN_FIELDS' => $s_hidden_fields) ); $template->pparse('body'); include("modules/$module_name/includes/page_tail.php"); } else { header($header_location . append_sid("index.$phpEx", true)); exit; } } ?> Lenke til kommentar
sinnaelgen Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 (endret) Du tar fortsatt feil, elgen. At du har kildekoden endrer ikke hva som kjøres på serveren. At du kan se hvordan passordene behandles er irrelevant så lenge det gjøres på en sikker måte. Og dere har bare fått med dere omtrent bare halvparten av det jeg skriver. ( for her snakker dere bare om klient delen ) PHP er et av de språken jeg ikke kjenner. For å få det avklart . så er det snakk om kilde koden til: klient server alle subrutinene og eventuelt andre hjelpe programmer Endret 2. februar 2012 av den andre elgen Lenke til kommentar
Matsemann Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Nei, vi skjønner utmerket godt hva du sier. Poenget er at du tar feil. For at du skal ha rett må det være veldig grove sikkerhetshull eller en dum bruker involvert. Altså er ikke åpen kildekode problemet. 1 Lenke til kommentar
007CD Skrevet 3. februar 2012 Del Skrevet 3. februar 2012 Og finner du en snarvei som gjør at du får hashing til å bli toveis... Vell da har du revolusjonert datamaskiner allerede, du har mer enn doblet harddisk kapasiteten og laget ett stort sikkerhetshull (Trenger bare å lagre enn hash for filen som tar betydlig mindre plass) Med andre ord, det er ikke mulig idag, og jeg tror ikke du vil se at det er mulig matematisk heller. 3 Lenke til kommentar
xibriz Skrevet 3. februar 2012 Del Skrevet 3. februar 2012 Kildekoden for å logge seg inn på en php-nuke side. Versågo kjør debatt... <?php /*************************************************************************** * login.php * ------------------- * begin : Saturday, Feb 13, 2001 * copyright : © 2001 The phpBB Group * email : [email protected] * * $Id: login.php,v 1.47.2.24 2006/04/22 20:28:42 grahamje Exp $ * * ***************************************************************************/ /*************************************************************************** * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * ***************************************************************************/ if ( !defined('MODULE_FILE') ) { die("You can't access this file directly..."); } $module_name = basename(dirname(__FILE__)); require("modules/".$module_name."/nukebb.php"); // // Allow people to reach login page if // board is shut down // define("IN_LOGIN", true); define('IN_PHPBB', true); include($phpbb_root_path . 'extension.inc'); include($phpbb_root_path . 'common.'.$phpEx); // // Set page ID for session management // $userdata = session_pagestart($user_ip, PAGE_LOGIN, $nukeuser); init_userprefs($userdata); // // End session management // // session id check if (!empty($HTTP_POST_VARS['sid']) || !empty($HTTP_GET_VARS['sid'])) { $sid = (!empty($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : $HTTP_GET_VARS['sid']; } else { $sid = ''; } if( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) || isset($HTTP_POST_VARS['logout']) || isset($HTTP_GET_VARS['logout']) ) { if( ( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) ) && (!$userdata['session_logged_in'] || isset($HTTP_POST_VARS['admin'])) ) { $username = isset($HTTP_POST_VARS['username']) ? phpbb_clean_username($HTTP_POST_VARS['username']) : ''; $password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : ''; $sql = "SELECT user_id, username, user_password, user_active, user_level, user_login_tries, user_last_login_try FROM " . USERS_TABLE . " WHERE username = '" . str_replace("\\'", "''", $username) . "'"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql); } if( $row = $db->sql_fetchrow($result) ) { if( $row['user_level'] != ADMIN && $board_config['board_disable'] ) { header($header_location . append_sid("index.$phpEx", true)); exit; } else { // If the last login is more than x minutes ago, then reset the login tries/time if ($row['user_last_login_try'] && $board_config['login_reset_time'] && $row['user_last_login_try'] < (time() - ($board_config['login_reset_time'] * 60))) { $db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_login_tries = 0, user_last_login_try = 0 WHERE user_id = ' . $row['user_id']); $row['user_last_login_try'] = $row['user_login_tries'] = 0; } // Check to see if user is allowed to login again... if his tries are exceeded if ($row['user_last_login_try'] && $board_config['login_reset_time'] && $board_config['max_login_attempts'] && $row['user_last_login_try'] >= (time() - ($board_config['login_reset_time'] * 60)) && $row['user_login_tries'] >= $board_config['max_login_attempts'] && $userdata['user_level'] != ADMIN) { message_die(GENERAL_MESSAGE, sprintf($lang['Login_attempts_exceeded'], $board_config['max_login_attempts'], $board_config['login_reset_time'])); } if( md5($password) == $row['user_password'] && $row['user_active'] ) { $autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0; $admin = (isset($HTTP_POST_VARS['admin'])) ? 1 : 0; $session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, $autologin, $admin); // Reset login tries $db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_login_tries = 0, user_last_login_try = 0 WHERE user_id = ' . $row['user_id']); if( $session_id ) { $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx"; redirect(append_sid($url, true)); } else { message_die(CRITICAL_ERROR, "Couldn't start session : login", "", __LINE__, __FILE__); } } // Only store a failed login attempt for an active user - inactive users can't login even with a correct password elseif( $row['user_active'] ) { // Save login tries and last login if ($row['user_id'] != ANONYMOUS) { $sql = 'UPDATE ' . USERS_TABLE . ' SET user_login_tries = user_login_tries + 1, user_last_login_try = ' . time() . ' WHERE user_id = ' . $row['user_id']; $db->sql_query($sql); } $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : ''; $redirect = str_replace('?', '&', $redirect); if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r")) { message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.'); } $template->assign_vars(array( 'META' => '<meta http-equiv=\"refresh\" content=\"3;url=' . append_sid("login.$phpEx?redirect=$redirect") . '\">') ); $message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], '<a href=\"' . append_sid("login.$phpEx?redirect=$redirect") . '\">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>'); message_die(GENERAL_MESSAGE, $message); } } } else { $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : ""; $redirect = str_replace("?", "&", $redirect); if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r")) { message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.'); } $template->assign_vars(array( 'META' => '<meta http-equiv=\"refresh\" content=\"3;url=' . append_sid("login.$phpEx?redirect=$redirect") . '\">') ); $message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], '<a href=\"' . append_sid("login.$phpEx?redirect=$redirect") . '\">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>'); message_die(GENERAL_MESSAGE, $message); } } else if( ( isset($HTTP_GET_VARS['logout']) || isset($HTTP_POST_VARS['logout']) ) && $userdata['session_logged_in'] ) { // session id check if ($sid == '' || $sid != $userdata['session_id']) { message_die(GENERAL_ERROR, 'Invalid_session'); } if( $userdata['session_logged_in'] ) { session_end($userdata['session_id'], $userdata['user_id']); } if (!empty($HTTP_POST_VARS['redirect']) || !empty($HTTP_GET_VARS['redirect'])) { $url = (!empty($HTTP_POST_VARS['redirect'])) ? htmlspecialchars($HTTP_POST_VARS['redirect']) : htmlspecialchars($HTTP_GET_VARS['redirect']); $url = str_replace('&', '&', $url); redirect(append_sid($url, true)); } else { redirect(append_sid("index.$phpEx", true)); } } else { $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx"; redirect(append_sid($url, true)); } } else { // // Do a full login page dohickey if // user not already logged in // if( !$userdata['session_logged_in'] || (isset($HTTP_GET_VARS['admin']) && $userdata['session_logged_in'] && $userdata['user_level'] == ADMIN)) { $page_title = $lang['Login']; include("modules/$module_name/includes/page_header.php"); $template->set_filenames(array( 'body' => 'login_body.tpl') ); $forward_page = ''; if( isset($HTTP_POST_VARS['redirect']) || isset($HTTP_GET_VARS['redirect']) ) { $forward_to = $HTTP_SERVER_VARS['QUERY_STRING']; if( preg_match("/^redirect=([a-z0-9\.#\/\?&=\+\-_]+)/si", $forward_to, $forward_matches) ) { $forward_to = ( !empty($forward_matches[3]) ) ? $forward_matches[3] : $forward_matches[1]; $forward_match = explode('&', $forward_to); if(count($forward_match) > 1) { for($i = 1; $i < count($forward_match); $i++) { if( !ereg("sid=", $forward_match[$i]) ) { if( $forward_page != '' ) { $forward_page .= '&'; } $forward_page .= $forward_match[$i]; } } $forward_page = $forward_match[0] . '?' . $forward_page; } else { $forward_page = $forward_match[0]; } } } Header("Location: modules.php?name=Your_Account&redirect=$forward_page"); $username = ( $userdata['user_id'] != ANONYMOUS ) ? $userdata['username'] : ''; $s_hidden_fields = '<input type="hidden" name="redirect" value="' . $forward_page . '" />'; $s_hidden_fields .= (isset($HTTP_GET_VARS['admin'])) ? '<input type="hidden" name="admin" value="1" />' : ''; make_jumpbox('viewforum.'.$phpEx); $template->assign_vars(array( 'USERNAME' => $username, 'L_ENTER_PASSWORD' => (isset($HTTP_GET_VARS['admin'])) ? $lang['Admin_reauthenticate'] : $lang['Enter_password'], 'L_SEND_PASSWORD' => $lang['Forgotten_password'], 'U_SEND_PASSWORD' => append_sid("profile.$phpEx?mode=sendpassword"), 'S_HIDDEN_FIELDS' => $s_hidden_fields) ); $template->pparse('body'); include("modules/$module_name/includes/page_tail.php"); } else { header($header_location . append_sid("index.$phpEx", true)); exit; } } ?> Uten å vite hvordan DB-objektet behandler spørringen, så ser koden veldig sårbar ut for injection. Lenke til kommentar
Gjest Slettet-t8fn5F Skrevet 3. februar 2012 Del Skrevet 3. februar 2012 Uten å vite hvordan DB-objektet behandler spørringen, så ser koden veldig sårbar ut for injection. Den var det, men skal være fikset på siden 2006 eller 2007 eller deromkring. Lenge siden vi har hatt angrep. Kanskje jeg må sette opp en site igjen for å sjekke. Med denne koden. Lenke til kommentar
xibriz Skrevet 3. februar 2012 Del Skrevet 3. februar 2012 Uten å vite hvordan DB-objektet behandler spørringen, så ser koden veldig sårbar ut for injection. Den var det, men skal være fikset på siden 2006 eller 2007 eller deromkring. Lenge siden vi har hatt angrep. Kanskje jeg må sette opp en site igjen for å sjekke. Med denne koden. Det hadde vært artig å prøve seg på den login-koden du postet her ja Til elgen: Skriv litt kode som kjører på serveren Lenke til kommentar
sinnaelgen Skrevet 3. februar 2012 Del Skrevet 3. februar 2012 Uten å vite hvordan DB-objektet behandler spørringen, så ser koden veldig sårbar ut for injection. Den var det, men skal være fikset på siden 2006 eller 2007 eller deromkring. Lenge siden vi har hatt angrep. Kanskje jeg må sette opp en site igjen for å sjekke. Med denne koden. Det hadde vært artig å prøve seg på den login-koden du postet her ja Til elgen: Skriv litt kode som kjører på serveren Problemet er nok at dere ikke ser mulighetene på samme måte som meg. Så i stedet for å fokusere på fulltilgang på koden ( da kan man lage en modifisert utgave som gjerne bryter de innebygde sikkerhetssperrene ) så spør jeg heller om i hvilken grad man har tilgang til den fullstendig koden ? Det er denne modifisere utgaven jeg har vektlagt hittil Selv om det kan ta tid så er det mulig lage programmer som forsøker å finne de originale innhogg dataene , når man vet hvordan konverteringen gjøres samt at man har de konverterte dataene. programmet gjetter bare seg frem med prøve og feil metoden , helt til dataene er blitt identiske Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå