Xcheck检查器扩展规则
2022-3-4 14:59:33 Author: mp.weixin.qq.com(查看原文) 阅读量:6 收藏

0x00 扩展规则

扩展规则是用来帮助Xcheck检查器适配各种项目框架的一个解决方案。通过扩展规则模版,简单的填写项目框架中的一些必要信息(如类名,函数名等),即可让Xcheck检查器在扫描该项目的过程中,“认识”私有框架(或忽略某些片段),帮助用户挖掘代码中隐藏的安全风险

0x01 安装 & 配置

首先,需要私有化部署Xcheck,并在部署的Xcheck网页上申请Token:

申请完成后,记录

  • 后台地址URL

  • Token

完成上述步骤后,安装私有化交付配套的Xcheck扩展规则客户(win/mac)并打开:

软件打开后界面如图,共两个Tab:扩展规则/设置


次打开Xcheck扩展规则客户端,需要完成以下几个步骤:

  • 在本地磁盘新建一个目录例如C:/rule/rule,并在扩展规则客户端设置中填写。注:需要用户提前创建目录,并且少为盘符下两级(包含两级),如不可为C:/rule,否则可能会有文件读写权限问题

  • 设置中填写规则测试服务器,如http://xcheck.com

  • 在左侧设置中填写插件鉴权Token(在Xcheck后台页面创建)

完成以上三个步骤即为初始化完成,接下来就可以使用扩展规则客户端的核心功能:

  • 添加规则测试,若生效即可导出规则zip包,通过拖拽等方式上传至Xcheck网页

接下来重点介绍一下核心功能的使用方法。

0x02 添加规则

以一个Java私有项目为例,介绍如何添加规则,帮助检查器识别框架。

注:一些关键信息在代码注释中

package file_testcase;

import com.lib.FileUtils; // 需要适配的包名类名
import java.io.File;

public class FileTest {

    @RequestMapping("test0")
    public String test0(String name0) {
        File f = FileUtils.createFile(name0);
        // createFile是污点传播场景的方法名称
        // name0是污点,且下标是0(第一个参数)
        // 返回类型是java.io.File
        f.delete();
    }

    @RequestMapping("test1")
    public String test1(String name1) {
        FileUtils.deleteFile(name1);
        // deleteFile是危险函数场景的方法名称
        // name1是污点,且下标是0(第一个参数)
        // 此处存在任意文件删除漏洞
    }
}

首先切换到“扩展规则”Tab:

点击上方标题右侧添加规则按钮,然后分为4步:

Step1: 选择Java通用规则模版

Step2: 填写规则名称/规则描述/场景类型

此处为污点传播场景的扩展规则,因此场景类型选择污点传播 

Step3: (关键信息见上述黑框内的代码注释)

需要适配的包名类名:com.lib.FileUtils方法名字:createFile污点参数:0,因为污点name0createFile的第一个参数返回类型:java.io.File,因为FileUtils.createFile返回的类型是File

Step4:

确认无误后点击确定按钮,提交即可 

0x03 测试规则

编写好规则之后,扩展规则客户端提供了低成本的规则测试方法:

找到刚才添加的扩展规则那一行,点击右侧测试按钮,自行选择测试样本根文件夹,等待测试结果。前后两次结果不同,表示扩展规则生效。 

0x04 名词解释

  • 污点英文名source,指系统中会使用到的用户可控/不受信任的数据

  • 风险(危险)函数英文名sink,指可能触发危险行为如文件操作、命令执行、数据库操作等行为的函数

0x05 常见问题

Q: 点击测试之后,按钮一直转圈?A: 可能扫描项目过大,请替换成较小项目,并重新打开客户端重试

0x06 总结

Xcheck的扩展规则还在持续迭代中,后续会逐步优化从而提高易用性,减轻用户的使用成本,敬请期待。


文章来源: https://mp.weixin.qq.com/s?__biz=Mzg2ODQ3ODE1NA==&mid=2247485942&idx=1&sn=752cf113801a9d2334f8507da9859b58&chksm=ceaaf453f9dd7d45defeecaef8cc260ed032c17dedfc7a4fc404ed72ed379f083df5a24b27cb&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh