NexusPHP 0day漏洞分析4例

来源:互联网 发布:淘宝店铺导航添加分类 编辑:程序博客网 时间:2024/06/05 04:21

宇安 赛博朔方


前言

      2017年8月至9月朔方攻城狮利用工作空闲时间发现了 NexusPHP项目存在 SQL注入、XSS跨站脚本等多个零日代码攻击漏洞(0DAY),并获得4个CVE编号。

      正如TK教主所说:“喜悦主要来源漏洞本身,以及探索和挑战的过程,CVE不CVE并不会改变太多。这里小编将部分细节分享给大家,欢迎关注本号进行交流。


背景知识


关于CVE

      CVE是“CommonVulnerabilities & Exposures”(通用漏洞与披露)的简称。由企业、政府、学术界综合参与的非盈利国际性组织,其使命是为了更快和有效地鉴别、发现及修复安全漏洞。绝大多数安全研究人员都把自己发现的漏洞能够具有CVE编写为荣。


      CVE已成为安全信息共享的“关键字”,为入驻CVE联盟成员、产品使用用户、安全防护产品厂商提供共享信息。


关于NexusPHP

     NexusPHP由来自浙江大学的Nexus团队发起并开发完成。主要是提供一个完整的、有序的、重视用户信誉和知识的资源分享社区的解决方案,是一个pt(Private Tracker,即私有的Tracker服务器,是BT下载的一种)开源软件。

 

NexusPHP 0day漏洞简析

 

   

CVE-2017-14347

    漏洞类型:XSS跨站脚本 


首先接受GET传过来的id的值,这里int_check函数检测传入的数据类型。


     接下来我们以GET方式传入$sure $returnto

$id $sure $returnto都是以GET方式提交,若$returnto以GET方式传过来,则被htmlspecialchars转义,否则传入被htmlspecialchars转义$_SERVER["HTTP_REFERER"]
Htmlspecialchars()函数就是把预定义的字符 "<"和 ">"转换为 HTML 实体。


    而且$returnto的值 不能为NULL。漏洞触发前置条件首先是Action传入delete,其次是传入sure的值,最后传入id的值产生了XSS跨站脚本。


CVE-2017-14070

漏洞类型:XSS跨站脚本


        第57行代码是漏洞触发点,主要是PHP的$_SERVER['PHP_SELF']造成的XSS跨站脚本攻击,$_SERVER['PHP_SELF'] 表示当前 PHP文件相对于网站根目录的位置地址。只是要注意该地址是不包含 URL 中请求的参数(?及后面的字串)就可以直接插入payload。从而产生XSS跨站脚本攻击。

CVE-2017-14069

漏洞类型:SQL注入


     第27行代码中 $_POST[usernw]并未做过滤就将数组元素组合成的字符串带入数据库中。该漏洞触发条件:首先$_POST["nowarned"]必须等于"nowarned",其次用户需要开启UC_MODERATOR权限,并且$_POST["usernw "]传入的内容不能为空才会导致触发该漏洞。

CVE-2017-14534

漏洞类型:XSS跨站脚本


    第20行代码中同样是$_SERVER['PHP_SELF'] 导致 URL 中请求的参数(?及后面的字串)可以直接插入payload,造成XSS跨站脚本。    

 

规避方案

  • 网页代码中对用户输入的数据进行严格过滤(代码层)
  • 部署Web应用防火墙(设备层)
  • 对数据库操作进行监控(数据库层)
  • cookie中设置HttpOnly属性,使用通过js脚本无法读取到cookie信息,这样才能更有效的防止XSS攻击。

 

- END -


 

原创粉丝点击