关于espcms_v5的/public/class_connector.php 对Cookies中输入参数ecisp_member_info过滤不当,导致黑客可以通过构造畸形http包,伪装劫持成功任意用户登录网站处理,经过到网上查找找到解决方案:

/public/class_connector.php

function member_purview($userrank = false, $url = null, $upurl = false)
{$this->ec_member_username = $this->fun->eccode($this->fun->accept('ecisp_member_username', 'C'), 'DECODE', db_pscode);if (!preg_match("/^[^!@~`\'\"#\$\%\^&\*\(\)\+\-\{\}\[\]\|\\/\?\<\>\,\.\:\;]{2,30}$/i", $this->ec_member_username) && !empty($this->ec_member_username)) {$this->fun->setcookie('ecisp_member_username', false);$this->fun->setcookie('ecisp_member_info', false);$linkURL = $this->get_link('memberlogin', array(), admin_LNG);header('location:' . $linkURL);exit();}//用户名是取了cookie的值可以控制$user_info = explode('|', $this->fun->eccode($this->fun->accept('ecisp_member_info', 'C'), 'DECODE', db_pscode));list($ec_member_username_id, $this->ec_member_alias, $ec_member_integral, $ec_member_mcid, $this->ec_member_email, $this->ec_member_lastip, $this->ec_member_ipadd, $this->ec_member_useragent, $this->ec_member_adminclassurl) = $user_info;/*添加*/if (is_numeric($ec_member_username_id) == FALSE) {die("request error");} /**///黑客利用intvul实现"截断注入"的效果,通过发送一个例如"test4"的账户名,被截断后得到4,黑客利用该特点实现任意用户登录$this->ec_member_username_id = intval($ec_member_username_id);$this->ec_member_integral = intval($ec_member_integral);$this->ec_member_mcid = intval($ec_member_mcid);

上面方法还用点问题,还需配置sessoin保存信息,进行判断cookie和session比较

espcms_v5的/public/class_connector.php 对Cookies中输入参数ecisp_member_info过滤不当相关推荐

  1. 检查Bash Shell脚本中输入参数的存在

    我需要检查输入参数的存在. 我有以下脚本 if [ "$1" -gt "-1" ]then echo hi fi 我懂了 [: : integer expres ...

  2. matlab中输入参数数目不足怎么回事,matlab输入参数数目不足

    答:保存成函数之后运行,需要给函数提供输入参数 如果你的工作空间中有一个变量vector,你需要对其标准化 在编写好cwstd.m文件之后 在命令行输入std=cwstd(vector); 就可以看到 ...

  3. 在cmd命令行运行exe,并在命令行中输入参数的程序示例

    int main(int argc, char **argv) { - } 若可执行程序名是 my.exe 输入参数 -- 命令行键入: my.exe -t 1230 h hehe -um 10 0 ...

  4. Pycharm中带参数程序调试

    Pycharm中依次点击 Run -> Configuration ->Parameters 在相应的Parameters栏中输入参数

  5. 【批处理DOS-CMD命令-汇总和小结】-批处理命令中的参数%0、%1、%2、%[0-9]、%0-9和批处理命令参数位置切换命令shift,dos命令中操作符%用法

    一.执行CMD命令的3种方式 执行CMD命令的两种方式分别是手动创建一个Cmd窗口和执行bat批处理文件. 第一种,先手动创建一个cmd窗口,然后往里面输入cmd命令,最后回车执行. 第二种,先在一个 ...

  6. ajax请求头cookies中传递sid,跨域请求单点登录,登录成功,但是在controller中获取的cookie与浏览器中不一致,请大神指点一二。^_^...

    跨域请求js代码: $.ajax({ type:"post", async:false, contentType : "application/x-www-form-ur ...

  7. espcms /public/class_connector.php intval truncation Vul Arbitrary User Login

    catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 Relevant Link: 2. 漏洞触发条件 3. 漏洞 ...

  8. nGrinder中快速编写groovy脚本03-在GET请求中发送参数

    在GET请求脚本中添加添加信息头.cookies和自定义参数,有两种方式: 一种是在UI界面添加后自动生成脚本,一种是直接在脚本中添加. 一.通过UI界面添加 通过 UI 设置:脚本 -> 新建 ...

  9. ASP.NET WebAPI 中的参数绑定

    当 WebAPI 调用 Controller 上的方法时, 必须为其参数赋值, 这个过程就是参数绑定. 本文介绍 WebAPI 如何绑定参数, 以及如何进行自定义. WebAPI 默认使用下面的规则进 ...

最新文章

  1. Cocos2d-x学习笔记(三十)之 游戏存档
  2. 修改tomcat6.0.25日志默认路径
  3. JetBrains产品永久破解
  4. ubuntu清除mac缓存
  5. 树莓派3上安装kali后的相关配置kali(2)
  6. php嵌套 frame,终极解决禁止网站被别人通过iframe引用嵌套套入。
  7. 大牛带你学优化~案例进阶Mysql优化
  8. 软测第二周作业WordCount
  9. collections模块之defaultdict
  10. SLAM Cartographer(16)约束构建器
  11. 洛谷 P1272 重建道路(树形DP)
  12. oracle的concat的用法
  13. 哪些服务器适合使用固态硬盘,服务器用固态硬盘还是机械硬盘合适?
  14. OCR应用:OCR识图取字
  15. 初学cocoa开发:带你走入不一样的世界
  16. mysql ndb集群_MySQL集群 NDB 7.5介绍
  17. SpringMVC数据校验、文件上传
  18. netty之微信-群聊的发起与通知(十八)
  19. Metinfo 5.3.17 前台SQL注入漏洞分析及实验
  20. 2018 年,程序员要具备哪些核心竞争力?

热门文章

  1. QT 设置滚动条样式
  2. 使用AT命令控制2G/4G模块注意事项
  3. 【观察】智算中心操作系统落地,浪潮云海的远见与实践
  4. 中国人有多拼?令世界惊叹汗颜甚至有一点恐惧!七张图揭示一切
  5. python3怎么自己创建一个模块并且调用(个人重新总结了下)
  6. Ralink RT5350:添加自定义GPIO应用程序
  7. 沪江论坛听力提高与交流路线图
  8. PS把证件照的蓝底换成其他底色
  9. java 结束调试快捷键_键盘快捷键-Eclipse终止调试/运行的捷径是什么?
  10. 异常处理——text字体未居中对齐显示