漏洞文件:/modules/article/readbookcase.php
define("JIEQI_MODULE_NAME", "article");
require_once "../../global.php";
if (empty($_REQUEST['aid']) && empty($_REQUEST['oid'])) {
jieqi_printfail(LANG_ERROR_PARAMETER);
}
$GLOBALS['_REQUEST']['aid'] = intval($_REQUEST['aid']);
if (!empty($_REQUEST['bid'])) {
include_once $jieqiModules['article']['path'] . "/class/bookcase.php";
$bookcase_handler =& jieqibookcasehandler::getinstance("JieqiBookcaseHandler");
$bookcase_handler->db->query("UPDATE " . jieqi_dbprefix("article_bookcase") . " SET lastvisit=" . JIEQI_NOW_TIME . " WHERE caseid=" . $_REQUEST['bid']);
首先我们先看看整体的代码逻辑走向,先判断aid与oid是否空,如果都为空则提示,然后下面是为aid进行类型转换intval接着一个if判断bid是否为空当非空的情况下则进入以下内容,首先是包含bookcase文件然后下面接着数据库操作。
query("UPDATE " . jieqi_dbprefix("article_bookcase") . " SET lastvisit=" . JIEQI_NOW_TIME . " WHERE caseid=" . $_REQUEST['bid']);
Query是直接执行sql查询,这里的bid是未有单引号保护的然后杰奇是有全局转义但根本不影响我这个未有单引号的注入触发。
本地实现:
是直接可以执行的