Lucene search

K
seebugRootSSV:94994
HistorySep 17, 2014 - 12:00 a.m.

TinyShop修复不当再次注入(全版本)

2014-09-1700:00:00
Root
www.seebug.org
20

简要描述:

在修复http://www.wooyun.org/bugs/wooyun-2014-068153漏洞时候,处理不当,治标不治本。

详细说明:

public static function getIP()
	{
		if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
		elseif (isset($_SERVER["HTTP_CLIENT_IP"])) $ip = $_SERVER["HTTP_CLIENT_IP"];
		elseif (isset($_SERVER["REMOTE_ADDR"])) $ip = $_SERVER["REMOTE_ADDR"];
		elseif (getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR");
		elseif (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP");
		elseif (getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");
		else $ip = "Unknown";
		return $ip;
	}

之前漏洞中对getip并未做修改,而是对/controller/controller_class.php文件中添加了ip判断,但是使用getip的还有另外一个点(仅剩下此处了)
在protected\classes\Log.php中

public static function op($manager_id,$action,$content)
	{
		$logs = array('manager_id'=>$manager_id,'action'=>$action,'content'=>$content,'ip'=>Chips::getIP(),'url'=>Url::requestUri(),'time'=>date('Y-m-d H:i:s'));
		$model = new Model('log_operation');
		$model->data($logs)->insert();
	}

因此所有使用log::op操作的函数都存在注入。

漏洞证明:

<img src=“https://images.seebug.org/upload/201409/111055556697c79245538971bf0c381d9b4e27df.png” alt=“4444.png” width=“600”>

<img src=“https://images.seebug.org/upload/201409/111056086ed218059fd09dad36db7c9422ec4401.png” alt=“555.png” width=“600”>