### 简要描述: 依旧过滤不严。 ### 详细说明: 这次写两个把。。 - - 这两个同一文件的 哈哈。 依旧是越权。 \app\group\action\admin\group.php 无需管理 只需要一个前台注册账户就能访问。 真正的管理后台在\app\system\action\ 但是为毛这admin目录下的文件都能做很多事? [<img src="https://images.seebug.org/upload/201402/1517582124d2a1f069c065c976e0c73d4e70e107.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/1517582124d2a1f069c065c976e0c73d4e70e107.jpg) 注入第一枚。 ``` case "add_do": $userid = intval($_POST['userid']); $strUser = $db->once_fetch_assoc("select * from ".dbprefix."user_info where userid='$userid'"); $arrData = array( 'userid' => $userid, 'groupname'=> t($_POST['groupname']), 'groupdesc'=> tsClean($_POST['groupdesc']), 'isrecommend'=> intval($_POST['isrecommend']), 'addtime'=> time(), 'ispost'=> intval($_POST['ispost']), ); $groupid = $db->insertArr($arrData,dbprefix.'group'); //更新group_user索引关系 $groupUserNum = $db->once_num_rows("select * from ".dbprefix."group_user where userid='$userid' and groupid='$groupid'");...
### 简要描述: 依旧过滤不严。 ### 详细说明: 这次写两个把。。 - - 这两个同一文件的 哈哈。 依旧是越权。 \app\group\action\admin\group.php 无需管理 只需要一个前台注册账户就能访问。 真正的管理后台在\app\system\action\ 但是为毛这admin目录下的文件都能做很多事? [<img src="https://images.seebug.org/upload/201402/1517582124d2a1f069c065c976e0c73d4e70e107.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/1517582124d2a1f069c065c976e0c73d4e70e107.jpg) 注入第一枚。 ``` case "add_do": $userid = intval($_POST['userid']); $strUser = $db->once_fetch_assoc("select * from ".dbprefix."user_info where userid='$userid'"); $arrData = array( 'userid' => $userid, 'groupname'=> t($_POST['groupname']), 'groupdesc'=> tsClean($_POST['groupdesc']), 'isrecommend'=> intval($_POST['isrecommend']), 'addtime'=> time(), 'ispost'=> intval($_POST['ispost']), ); $groupid = $db->insertArr($arrData,dbprefix.'group'); //更新group_user索引关系 $groupUserNum = $db->once_num_rows("select * from ".dbprefix."group_user where userid='$userid' and groupid='$groupid'"); ``` 'groupdesc'=> tsClean($_POST['groupdesc']), tsclean 就是又调用了 cleanJs函数 ``` function cleanJs($text) { $text = trim ( $text ); $text = stripslashes ( $text ); // 完全过滤注释 $text = preg_replace ( '/<!--?.*-->/', '', $text ); // 完全过滤动态代码 $text = preg_replace ( '/<\?|\?>/', '', $text ); // 完全过滤js $text = preg_replace ( '/<script?.*\/script>/', '', $text ); // 过滤多余html $text = preg_replace ( '/<\/?(html|head|meta|link|base|body|title|style|script|form|iframe|frame|frameset)[^><]*>/i', '', $text ); // 过滤on事件lang js while ( preg_match ( '/(<[^><]+)(lang|data|onfinish|onmouse|onexit|onerror|onclick|onkey|onload|onchange|onfocus|onblur)[^><]+/i', $text, $mat ) ) { $text = str_replace ( $mat [0], $mat [1], $text ); } while ( preg_match ( '/(<[^><]+)(window\.|javascript:|js:|about:|file:|document\.|vbs:|cookie)([^><]*)/i', $text, $mat ) ) { $text = str_replace ( $mat [0], $mat [1] . $mat [3], $text ); } return $text; } ``` cleanJs cleanJs 只过滤js。 [<img src="https://images.seebug.org/upload/201402/15180222567da5d9206a84f8ddfea05c7d7959c8.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/15180222567da5d9206a84f8ddfea05c7d7959c8.jpg) 看看所执行的语句 [<img src="https://images.seebug.org/upload/201402/1518025500f27866fec60160536910b5b4d886d4.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/1518025500f27866fec60160536910b5b4d886d4.jpg) 都懂的。 注入第二发 ``` case "edit_do": $groupid = intval($_POST['groupid']); $new['group']->update('group',array( 'groupid'=>$groupid, ),array( 'groupname'=> t($_POST['groupname']), 'groupdesc'=> tsClean($_POST['groupdesc']), 'userid'=> intval($_POST['userid']), 'ispost'=> intval($_POST['ispost']), )); qiMsg("小组信息修改成功!"); break; ``` tsclean 我就不再贴了嘛; 上面都有。 Update row未过滤。 ### 漏洞证明: [<img src="https://images.seebug.org/upload/201402/15180657b08805cb88be9fb8a462c316102a0029.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/15180657b08805cb88be9fb8a462c316102a0029.jpg) 然后再访问 http://127.0.0.1/thinksaas/index.php?app=group&ac=admin/group&ts=list [<img src="https://images.seebug.org/upload/201402/15180730ffb5ecb0ff0fb85e880721f1b913def5.jpg" alt="4.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/15180730ffb5ecb0ff0fb85e880721f1b913def5.jpg) 话说我的@咋不见了。