浏览 1933 次 / [ 天下网闻 ] DISCUZ:您当前的访问请求当中含有非法字符,已经被系统...
  • 发布时间 2014-02-25 15:23
  • 083442e8m7kz4k8q757m8s.png
    次DISCUZ X3 bug,

    查找目录source\class\discuz\discuz_application.php    private function _xss_check()

    350行左右


    1. private function _xss_check() {

    2. static $check = array('"', '>', '<', '\'', '(', ')', 'CONTENT-TRANSFER-ENCODING');

    3. if(isset($_GET['formhash']) && $_GET['formhash'] !== formhash()) {
    4. system_error('request_tainting');
    5. }

    6. if($_SERVER['REQUEST_METHOD'] == 'GET' ) {
    7. $temp = $_SERVER['REQUEST_URI'];
    8. } elseif(empty ($_GET['formhash'])) {
    9. $temp = $_SERVER['REQUEST_URI'].file_get_contents('php://input');
    10. } else {
    11. $temp = '';
    12. }

    13. if(!empty($temp)) {
    14. $temp = strtoupper(urldecode(urldecode($temp)));
    15. foreach ($check as $str) {
    16. if(strpos($temp, $str) !== false) {
    17. system_error('request_tainting');
    18. }
    19. }
    20. }

    21. return true;
    22. }
    复制代码
    替换为:

    1. private function _xss_check() {
    2. $temp = strtoupper(urldecode(urldecode($_SERVER['REQUEST_URI'])));
    3. if(strpos($temp, '<') !== false || strpos($temp, '"') !== false || strpos($temp, 'CONTENT-TRANSFER-ENCODING') !== false) {
    4. system_error('request_tainting');
    5. }
    6. return true;
    7. }
    复制代码