### 简要描述:
之前的都是找程序员的疏忽,这个位置是绕过程序的防注入。
### 详细说明:
环境:
GPC = On
```
public static function sql($str) //过滤函数
{
if (!get_magic_quotes_gpc()){ //gpc off 就转义,把之前那个奇葩的漏洞补了
//不使用主要是因为,先有mysql的连接
//$str = mysql_real_escape_string($str);
$str = addslashes($str);
}
$str = preg_replace('/([^a-z]+)(select|insert|update|delete|union|into|load_file|outfile|tiny_)/i', ' $2', $str); //这个过滤是可以绕过的
return $str;
}
```
仔细找发现过滤函数中存在另外一个函数:text
内容如下:
```
/**@param $str 字符串
* @return 字符串
*@note 处理HTML编辑器的内容,主要是解决JavaScript的注入问题
*/
public static function text($str)
{
$config = HTMLPurifier_Config::createDefault();
$cache_dir=Tiny::getPath('cache')."/htmlpurifier/";
if(!file_exists($cache_dir))
{
File::mkdir($cache_dir);
}
$config = HTMLPurifier_Config::createDefault();
//配置 缓存目录
$config->set('Cache.SerializerPath',$cache_dir); //设置cache目录
//配置 允许flash
$conf