以下为转载内容

  趁着这几天学院刚开学能有稍许有多一点空余时间typecho怎么增加友链,便对博客的插件进行了一次检测维护。当维护至友链插件Links时,留意至一个比较奇怪的问题,在插件目录下负责处理后台管理友链恳求的Action.php之中的全部方式没有做任何权限验证,一开始我以为Typecho本来会对那些恳求作相应认证工作,但是经过一些检测以后否认这是一个容许越权以及表单欺诈的漏洞

  所有Links插件版本为 1.1.1 或之前的用户都或许遭到本漏洞影响。

  发现Links新增友链表单项目未做过滤,可以配合此漏洞推行跨站防御,请受影响用户立刻检测并修复。

  漏洞修复

  当务之急是须封堵漏洞入口,亦即是对友链管理操作添加权限验证。为了配合 Links 插件原生设定为仅管理员可步入友链管理页面的这一设置,则目前还要把Action.php中的action()方法也限制为仅管理员可用,具体操作很简单,只需在action()方法内的开头位置插入下述代码即可。

   $user = Typecho_Widget::widget('Widget_User');

    $user->pass('administrator');

  漏洞复现

  我找了一个博客使用Typecho使得安装了Links插件的好友检测了一下,首先打开自己博客后台的友链管理面板,用开发者工具把编辑链接表单action属性中的域名改成好友网站的域名,再点击递交。

  执行递交后,虽然会由于未登入而跳转回到对方的博客后台登陆页面,但可见页面底部一直出现了操作成功的提示:“链接 XXX 已经被降低”,证明添加友链的操作早已跨过了权限验证被顺利执行。

  跨站检测

  我们可以先来做一个最简略的检测,利用插件新增友链表单,添加一个“链接名称”为的链接。在链接被添加后即可见页面出现对应的弹出对话框,也就是说添加的 JS 代码被执行了。

  我接下来做的几个检测否认typecho怎么增加友链,当博客管理员访问受防御的友链管理页面,可以在自身不知情的状况下被别人做出获取客户端 Cookie、删除文章、更改博客配置等高危动作,具体代码就不帖下来了。说明插件对表单递交内容的过滤工作未建立;而且友链管理页面表单的“链接名称”一项对应的数据库数组数据类别为varchar(200),此处也给攻击者留下了巨大的发挥空间。

  最后

  快去补漏洞!

  快去补漏洞!

  快去补漏洞!

  重要的事情说三遍

Last modification:December 11th, 2020 at 07:00 am
如果觉得我的文章对你有用,请随意赞赏