魔力论坛(MolyX Board) 是魔力系列Web应用软件产品之一,由魔力工作室(MolyX Studios) 经过数年的市场技术调研及学习研究,在融合了当今众多论坛程序技术和实践优点的基础上,针对中国人的使用习惯开发研制的一款功能强大、速度飞快、性能卓越、安全性极高的论坛系统。 includes/db/db_base.php 注入 1. function insert($table, $array, $type = 'INSERT', $func = 'query_unbuffered') 2. 3. if (($sql = $this->sql_insert($table, $array, $type))) 4. { 5. return $this->$func($sql); 6. } 7. return false; 接着看sql_insert()函数 1. function sql_insert($table, $array, $type = 'INSERT', $prefix = 'INSERT') 2. 3. if (!is_array($array) || emptyempty($array)) 4. { 5. return false; 6. } 7. return "$prefix INTO $table " . $this->sql_clause($type, $array); 再看sql_clause()函数 1. function sql_clause($query, $array) 2. { 3. if (!is_array($array)) 4. { 5. return false; 6. } 7. 8. $query = strtoupper($query); 9. $fields = $values = ''; 10. if ($query == 'INSERT' || $query == 'INSERT_SELECT') 11. { 12. foreach ($array as $key => $var) 13. { 14. $fields .= ', `' . $key . '`'; 15. 16. if (is_array($var) &&...
魔力论坛(MolyX Board) 是魔力系列Web应用软件产品之一,由魔力工作室(MolyX Studios) 经过数年的市场技术调研及学习研究,在融合了当今众多论坛程序技术和实践优点的基础上,针对中国人的使用习惯开发研制的一款功能强大、速度飞快、性能卓越、安全性极高的论坛系统。 includes/db/db_base.php 注入 1. function insert($table, $array, $type = 'INSERT', $func = 'query_unbuffered') 2. 3. if (($sql = $this->sql_insert($table, $array, $type))) 4. { 5. return $this->$func($sql); 6. } 7. return false; 接着看sql_insert()函数 1. function sql_insert($table, $array, $type = 'INSERT', $prefix = 'INSERT') 2. 3. if (!is_array($array) || emptyempty($array)) 4. { 5. return false; 6. } 7. return "$prefix INTO $table " . $this->sql_clause($type, $array); 再看sql_clause()函数 1. function sql_clause($query, $array) 2. { 3. if (!is_array($array)) 4. { 5. return false; 6. } 7. 8. $query = strtoupper($query); 9. $fields = $values = ''; 10. if ($query == 'INSERT' || $query == 'INSERT_SELECT') 11. { 12. foreach ($array as $key => $var) 13. { 14. $fields .= ', `' . $key . '`'; 15. 16. if (is_array($var) && is_string($var[0])) 17. { 18. // INSERT SELECT 19. $values .= ', ' . $var[0]; 20. } 21. else 22. { 23. $values .= ', ' . $this->validate($var); 24. } 25. } 26. $fields = substr($fields, 2); 27. $values = substr($values, 2); 28. $query = ($query == 'INSERT') ? ' (' . $fields . ') VALUES (' . $values . ')' : ' (' . $fields . ') SELECT ' . $values . ' '; 29. } 30. .......................................省略无关代码 $values .= ', ' . $var[0]; 变量$var[0]两边并没有用到单引号,问题产生了!! 但要注意global.php中的init_input()函数对全局变量做了array('&#032;', '<!--', '-->', '>', '<', '"', '!', "'", "\n", '$', "\r")过滤成array(' ', '&#60;&#33;--', '--&#62;', '&gt;', '&lt;', '&quot;', '&#33;', '&#39;', '<br />', '&#036;', '') MolyX Board 2.81 厂商补丁: MolyX Board -------- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: http://www.molyx.com/