/** * Reliably set PHP_SELF as a filename .. platform safe */ function setPhpSelf() { $base = ( array( 'SCRIPT_NAME', 'PHP_SELF' ) ); foreach ( $base as $index => $key ) { if ( array_key_exists( $key, $_SERVER ) && !empty( $_SERVER[$key] ) ) { if ( false !== strpos( $_SERVER[$key], '.php' ) ) { preg_match( '@[a-z0-9_]+\.php@i', $_SERVER[$key], $matches ); if ( is_array( $matches ) && ( array_key_exists( 0, $matches ) ) && ( substr( $matches[0], -4, 4 ) == '.php' ) && ( is_readable( $matches[0] ) ) ) { return $matches[0]; } } } } return 'index.php'; } // end method $PHP_SELF = setPhpSelf();
// Register needed Post / Get Variables if ($HTTP_GET_VARS['ref']) $affiliate_id=(int)$HTTP_GET_VARS['ref']; if ($HTTP_POST_VARS['ref']) $affiliate_id=(int)$HTTP_POST_VARS['ref']; if ($HTTP_GET_VARS['affiliate_banner_id']) $banner_id = (int)$HTTP_GET_VARS['affiliate_banner_id']; if ($HTTP_POST_VARS['affiliate_banner_id']) $banner_id = (int)$HTTP_POST_VARS['affiliate_banner_id']; if ($HTTP_GET_VARS['affiliate_pbanner_id']) $prod_banner_id = (int)$HTTP_GET_VARS['affiliate_pbanner_id']; if ($HTTP_POST_VARS['affiliate_pbanner_id']) $prod_banner_id = (int)$HTTP_POST_VARS['affiliate_pbanner_id'];
RewriteEngine on RewriteCond %{QUERY_STRING} ^[^=]*$ RewriteCond %{QUERY_STRING} %2d|\- [NC] RewriteRule .? . [F,L] # Diverse xtc Hackversuche abweisen. RewriteCond %{QUERY_STRING} ^(.*)action=(http|https|ftp)://(.*)$ [NC] RewriteRule ^.* - [F] RewriteCond %{QUERY_STRING} ^(.*)coID=(http|https|ftp)://(.*)$ [NC] RewriteRule ^.* - [F] RewriteCond %{QUERY_STRING} ^(.*)XTCsid=(http|https|ftp)://(.*)$ [NC] RewriteRule ^.* - [F] RewriteCond %{QUERY_STRING} ^(.*)action=https://(.*)$ [NC] RewriteRule ^.* - [F]
reset($_POST); while (list($key, $value) = each($_POST)) { if (!is_array($_POST[$key])) { $_postVar = preg_replace("/[^ a-zA-Z0-9@%:öäüß\{\}_\.-]/i", "", urldecode($_POST[$key] $_postVar = preg_replace("/hex|insert into|select |update /i", "", $_postVar); $_POST[$key] = $_postVar; $HTTP_POST_VARS[$key] = $_postVar; } else { // better use a callback function unset($_POST[$key]); } // no arrays expectedDas gleiche dann nochmlas für $_GET einsetzten. Allerdings sind hier keine multi-dim-arrays erlaubt. Bei komplexeren Modifiktionen der Shops (sprachen etc) empfiehlt es sich hier noch einen Workaround zu programmieren. Auch ist die Einschränkung der Sonderzeichen mit Vorsicht zu geniessen. Da es bei dem Einsatz von fck-Editor zu unschönen Fromatierungen kommen kann.
$whos_online_query = xtc_db_query("select customer_id, full_name, ip_address, time_entry, time_last_click, last_page_url, session_id from " . TABLE_WHOS_ONLINE ." order by time_last_click desc"); while ($whos_online = xtc_db_fetch_array($whos_online_query)) { +> $whos_online['last_page_url'] = htmlentities($whos_online['last_page_url']);
#!/bin/bash # # clean image and tmp - folders by AdOptimize # # Alle Ordner die sich innerhalb diesen Ordners befinden werden als BilderOrdner angesehen. Hier sind nur Bilder erlaubt. # Folglich kann man alle anderen Dateien, die sich nicht als Bild identifizieren lassen löschen _imageFolder="images"; # # Diese Folder beinhalten Dateien, welche nur temporaer gebraucht werden und nach einer Ablaufzeit X geloescht werden koennen. # _tmpFoldersLivingTime=8; _tmpFolders="templates_c cache tmp"; # # clean imageFolders # --> Das Script haben wir bisher in diesem Umfang noch nicht eingesetzt, so dass wir uns die Zeit nehmen muessen verschiedene Einzelscript die bei uns im Einsatz sind hier zu vereinigen. Bitte um etwas Geduld bei der Verfollstaendigung dieser Seite oder geben Sie uns direkt den Auftrag Ihren Webserver abzusichern. info@adoptimize.de
find -user www-data -type d -perm /u+wDie da aufgeführten Folder sind zu überprüfen ob es auch sinnig ist diese so mit den Schreibrechten zu versehen. Die Insepktion der Folder kann und sollte natuerlich noch auf Guppen erweitert werden.
find -type d -exec ls -ld {} \; | grep drwxrwxr oder find -type d -exec ls -ld {} \; | grep drwxrwxrwx
order allow,deny deny from all
1. Nach der Zeile: $_GET[$vars[$i]] = htmlspecialchars($vars[$i +1]); if(get_magic_quotes_gpc()) $_GET[$vars[$i]] = addslashes($_GET[$vars[$i]]); einfügen. 2. Nach der Zeile: $_GET[$key] = htmlspecialchars($value); if(get_magic_quotes_gpc()) $_GET[$key] = addslashes($_GET[$key]); einfügenIn der Datei includes/modules/metatags.php, fügen Sie ein (int) vor dem _GET['coID'] - Parameter ein, so dass immer nur echte Zahlen übergeben werden.
Aus: $categories_meta_query = xtDBquery("SELECT categories_meta_keywords, categories_meta_description, categories_meta_title, categories_name FROM " . TABLE_CATEGORIES_DESCRIPTION . " WHERE categories_id='" . $_cPath . "' and language_id='" . (int)$_SESSION['languages_id'] . "'"); wird $categories_meta_query = xtDBquery("SELECT categories_meta_keywords, categories_meta_description, categories_meta_title, categories_name FROM " . TABLE_CATEGORIES_DESCRIPTION . " WHERE categories_id='" . (int)$_cPath . "' and language_id='" . (int)$_SESSION['languages_id'] . "'"); und aus: $contents_meta_query = xtDBquery("SELECT content_heading FROM " . TABLE_CONTENT_MANAGER . " WHERE content_group='" . $_GET['coID'] . "' and languages_id='" . (int)$_SESSION['languages_id'] . "'"); wird $contents_meta_query = xtDBquery("SELECT content_heading FROM " . TABLE_CONTENT_MANAGER . " WHERE content_group='" . (int)$_GET['coID'] . "' and languages_id='" . (int)$_SESSION['languages_id'] . "'");Hinweis: An den stellen wo immer Zahlenwerte gefragt sind, sollten die übergebenen Werte mit (int) auch zu echte Zahlen konvertiert werden.
$blz_query = xtc_db_query("SELECT * from banktransfer_blz WHERE blz = '" . $blz . "'"); muss mit $blz_query = xtc_db_query("SELECT * from banktransfer_blz WHERE blz = '" . xtc_db_input($blz) . "'"); abgesichert werden.
$_SESSION['billto'] = xtc_db_prepare_input($_POST['address']); in $_SESSION['billto'] = (int)($_POST['address']); geändert werden.
if (strpos($email,"\0")!==false) {return false;}
#!/bin/bash # find infected files and remove the virus # # VORSICHT das script ist mächtig und kann mächtig viel kaputt machen es gibt noch ein paar # besondere Fälle, welches das script noch nicht behebt. Deshalb undbindet vorab testen und # vorher nachher vergleichen # # die infizierten files sind in diesem Fall mit 68c8c7 umgeben gewesen # der teil welcher den virus kennzeichnete war in dieser Form im Quellcode # # <!-- 68c8c7 --> ...bla ..<!--/68c8c7--> # #68c8c7# ...bla ..#/68c8c7 # /*68c8c7*/ ...bla ../*/68c8c7*/ # # Das Script entfernt alles zwischen den oben genannten elementen _infected=`grep -ril '68c8c7' ./` for file in $_infected; do if [[ "$file" =~ "hacked_files" ]]; then echo "backde up files $file"; else # posix hack wegen letzter line die keinen # zeilenumbruch hat und deshalb im loop verloren geht echo -e "\n" >> $file; LINEOUT=""; close=1; while IFS='' read -r LINE; do if [[ "$LINE" =~ "68c8c7" ]]; then if [[ "$LINE" =~ "/68c8c7" ]]; then close=1; else close=0; fi #if [[ "${LINE}" =~ ".68c8c7.*68c8c7." ]]; then # echo "one Liner" #else # echo "two Liner" #fi CLEANLINE=`echo ${LINE} | sed -E 's/68c8c7.*68c8c7/ ADOPTIMIZE REMOVER /';` LINEOUT=`echo -e "$LINEOUT \n $CLEANLINE"`; else if [ $close -eq 1 ]; then LINEOUT=`echo -e "${LINEOUT}\n${LINE}\n"` fi fi; done <"$file"; echo "${LINEOUT}" > $file.hack mv $file.hack $file; ## ende backup files unberuehrt lassen fi done;
Zeichenerklärung |
![]() |
|
Hinweis: | ![]() |
![]() |
Verweies innerhalb der Seite: | ![]() |
![]() |
Link auf eine Erklärung im Detail: | ![]() |
![]() |
Verweies auf eine andere Webseite: | ![]() |
![]() |
We optimize your success |
ERP- & Marketing Software + Beratung |
Google Adwords, Yahoo & Affiliates |