Cobra介绍
参考
| Cobra是一款源代码安全审计工具,支持检测多种开发语言源代码中的大部分显著的安全问题和漏洞。 |
| |
| 由于开发人员的技术水平和安全意识各不相同,导致可能开发出一些存在安全漏洞的代码。 攻击者可以通过渗透测试来找到这些漏洞,从而导致应用被攻击、服务器被入侵、数据被下载、业务受到影响等等问题。 “源代码安全审计”是指通过审计发现源代码中的安全隐患和漏洞,而Cobra可将这个流程自动化。 |
Cobra特点
| Multi-language Supported(支持多种开发语言) |
| 支持PHP、Java等开发语言,并支持数十种类型文件。 |
| Multi-Vulnerabilities Supported(支持多种漏洞类型) |
| 首批开放数万条不安全的依赖检查规则和数十条代码安全扫描规则,后续将持续开放更多扫描规则。 |
| GUI/CLI/API Mode(命令行模式和API模式) |
| 提供本地Web Server服务,可使用GUI可视化操作,也可支持本地API接口,方便和其它系统(发布系统、CI等)对接扩展。 |
| 开发源代码(基于开放的MIT License,可更改源码) |
| 支持开发语言多(支持十多种开发语言和文件类型) |
| 支持漏洞类型多(支持数十种漏洞类型) |
| 支持各种场景集成(提供API也可以命令行使用) |
| 专业支持,持续维护(由白帽子、开发工程师和安全工程师一起持续维护更新,并在多家企业内部使用) |
Cobra为什么能从源代码中扫描到漏洞
| 对于一些特征较为明显的可以使用正则规则来直接进行匹配出,比如硬编码密码、错误的配置等。 对于OWASP Top 10的漏洞,Cobra通过预先梳理能造成危害的函数,并定位代码中所有出现该危害函数的地方,继而基于Lex(Lexical Analyzer Generator, 词法分析生成器)和Yacc(Yet Another Compiler-Compiler, 编译器代码生成器)将对应源代码解析为AST(Abstract Syntax Tree, 抽象语法树),分析危害函数的入参是否可控来判断是否存在漏洞(目前仅接入了PHP-AST,其它语言AST接入中)。 |
Cobra安装
| Cobra可运行在Python 2.6 -- 3.6+之间。 |
| |
| # 修改hosts |
| 浏览器打开 https://ipaddress.com/website/github.com ,将解析到的github.com地址写到hosts中 |
| |
| # 安装依赖和常用工具 |
| yum -y install flex bison phantomjs git |
| yum -y install epel-release |
| yum -y install python-pip |
| |
| |
| # 安装python3.7 |
| 1、安装依赖 |
| yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel wget |
| wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz |
| tar xvf Python-3.7.3.tgz |
| cd Python-3.7*/ |
| ./configure --prefix=/usr/local/python3.7 |
| make && make install |
| mv /usr/bin/python{,-202201291718} |
| ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python |
| python -V |
| cd |
| |
| 注意: |
| yum需要使用python2,将/usr/bin/python改为python3后,yum就不能正常运行了,因此需要更改一下yum的配置 |
| vim /usr/bin/yum |
| vim /usr/libexec/urlgrabber-ext-down |
| 编辑这两个文件,将文件头的#!/usr/bin/python改为#!/usr/bin/python2即可。 |
| |
| |
| # 克隆cobra项目 |
| git clone --depth=1 https://github.com/WhaleShark-Team/cobra.git |
| cd cobra |
| /usr/local/python3.7/bin/pip3 install --upgrade pip |
| /usr/local/python3.7/bin/pip3 install -r requirements.txt |
| python cobra.py --help |
| 回显: |
| usage: cobra [-h] [-t <target>] [-f <format>] [-o <output>] [-r <rule_id>] |
| [-d] [-sid SID] [-dels] [-rp] [-m] [-H <host>] [-P <port>] |
| |
| ,---. | |
| | ,---.|---.,---.,---. |
| | | || || ,---| |
| `---``---``---`` `---^ v2.0.0-alpha.5 |
| |
| GitHub: https://github.com/WhaleShark-Team/cobra |
| |
| Cobra is a static code analysis system that automates the detecting vulnerabilities and security issue. |
| .... |
| .... |
| Usage: |
| python cobra.py -t tests/vulnerabilities |
| python cobra.py -t tests/vulnerabilities -r cvi-190001,cvi-190002 |
| python cobra.py -t tests/vulnerabilities -f json -o /tmp/report.json |
| python cobra.py -t https://github.com/ethicalhack3r/DVWA -f json -o feei@feei.cn |
| python cobra.py -t https://github.com/ethicalhack3r/DVWA -f json -o http://push.to.com/api |
| python cobra.py -H 127.0.0.1 -P 8888 |
| |
| |
| # 启动cobra的web页面 |
| python cobra.py -H 192.168.1.113 -P 80 |
| |
| 如-H后面参数写127.0.0.1,则只能本机打开web页面,如本地没装图形界面,该web页面启用与否没差异 |
| 如要通过网络访问,-H后面参数需写可从网络中访问到的IP,还得写本地防火墙规则或者直接禁用防火墙) |

| 如果要在web页面提交自己准备的web程序包来执行扫描,需要执行一下初始化配置,否则会提示upload错误。 |
| 在cobra.py文件所在目录,有个配置文件模板 config.template |
| [root@node3 cobra]# pwd |
| /root/cobra |
| [root@node3 cobra]# cp config.template config |
==============================================
也可通过下面git地址或通过具体目录位置进行扫描

.
.
.
.
游走在各发行版间老司机QQ群:905201396
不要嫌啰嗦的新手QQ群:756805267
Debian适应QQ群:912567610
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!