#01 敏感路径泄露X1
/core/lib/core/App.class.php 第14行
class App extends Pfa { /* initialization */ public function __construct() { error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING); set_error_handler(array('App', 'app_error')); //[RUNTIME] App::build(); // pre-compile //[/RUNTIME] Url::dispatch(); // URL dispatch and define CTRLR_NAME, ACTN_NAME
其中 Pfa 父类没有验证是否存在 导致直接访问
http://localhost/core/lib/core/App.class.php
会导致爆出绝对路径
此问题在cms中多处存在请务必详查对于父类的继承相关代码
#02 敏感路径泄露X2
/core/tpl/page_trace.php 第17行
<div id="pfa_page_trace" style="padding:10px;margin:10px;color:#666;line-height:18px;background:#fff;border:1px solid #e5e5e5;"> <p style="padding:0;margin:0;border-bottom:1px solid #ccc;font-size:14px;color:#f60;"><?php echo L('_PAGE_TRACE_INFO_') ?></p> <p style="padding:0 margin:5px 0 0;overflow:auto;height:300px;text-align:left;font-size:12px;"> <?php foreach($_trace as $key=>$info){echo $key . ' : ' . $info . "<br />\r\n";}?> </p> </div>
文件并未define function文件 并直接调用函数导致报错
#03 SQL injection
/core/lib/ext/AServer.class.php 第14-111行的定义类AServer时 第16-37行代码如下
public static function get_ip() { $ip = ''; if(!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); if($ip) { array_unshift($ips, $ip); $ip = ''; } for($i = 0; $i < count($ips); $i++) { if(!preg_match("/^(10|172\.16|192\.168)\./i", $ips[$i])) { $ip = $ips[$i]; break; } } } $ip = $ip ? $ip : $_SERVER['REMOTE_ADDR']; $long = sprintf("%u", ip2long($ip)); return $long ? $ip : '0.0.0.0'; }
对于HTTP_CLIENT_IP和HTTP_X_FORWARDED_FOR都木有过滤 所以导致可以进行注入。
由于木有火狐就先不进行测试了 具体应用在/admin.php进行登录时会记录IP 对于IP却没有过滤,Ps:sqlmap使用要加--level=3