D-Link DCS-2530L和DCS-2670L监控信息泄露漏洞(CVE-2020-25078)复现
D-Link DCS-2530L和DCS-2670L监控信息泄露漏洞(CVE-2020-25078)复现前言查阅相关资料可知,TDDP协议(TP-LINK Device Debug Protocol) 是TP-LINK申请了专利的一种在UPD通信的基础上设计的协议,而Google安全专家Matthew Garrett在TP-Link SR20设备上的TDDP协议文件中发现了一处可造成 “允许来自本地网络连接的任意命令执行” 的漏洞。
原理CVE-2020-25078可以通过如下URL泄露密码
1http://xx.xx.xx.xx/config/getuser?index=0
复现由于手上没有DCS的设备也不好模拟,于是我直接用的fofa搜的IP去打
fofa搜索: app=app="D_Link-DCS-2670L"
复现/image-202312211001455 ...
C语言笔记
C语言笔记C 语言中 printf 输出 double 和 float 都可以用 %f 占位符 可以混用,而 double 可以额外用 %lf。
而 scanf 输入情况下 double 必须用 %lf,float 必须用 %f 不能混用。
C语言文件读写
C语言文件读写
这里我会写C语言如何创建,打开,关闭,文本文件或二进制文件。
打开文件对于打开文件,我们用 fopen函数来打开一个文件。
12FILE *fp;//定义一个文件指针fp = fopen(filename,mode);
下面的是fopen函数的函数原型;
1FILE *fopen( const char * filename, const char * mode );
在这里,filename 是字符串,用来命名文件,访问模式 mode 的值可以是下列值中的一个:
模式
描述
r
打开一个已有的文本文件,运行读取文件。
w
打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。如果文件存在,则会被截断为零长度,重新写入。
a
打开一个文本文件,以追加模式写入文件,如果文件不存在,则会创建一个新文件。在这里您的程序会在已有的文件内容中追加内容。
r+
打开一个文件,允许读写文件。
w+
打开一个文本文件,允许读写文件。如果文件已经存在,则会被截断问零长度,如果文件不存在,则会创建一 ...
C语言排序算法
C语言排序算法冒泡排序1234567891011121314151617181920#include <stdio.h>void bubble_sort(int arr[], int len) { int i, j, temp; for (i = 0; i < len - 1; i++)//第一重for循环 for (j = 0; j < len - 1 - i; j++)//第二重for循环,第二重for循环里面次数比第一重少一次 if (arr[j] > arr[j + 1]) {//判断当前这个比后面的大就交换,冒泡从小到大,小于就是从大到小 temp = arr[j]; arr[j] = arr[j + 1];//交换 arr[j + 1] = temp; }}int main() { int arr[] = { 22, 34 ...
C语言实现网络通信
C语言实现网络通信TCP协议与UDP协议相同点:都是传输层协议
不同点:TCP是一种面向连接的传输层协议,它能提供高可靠性的通信(数据无误、数据无丢失、数据无失序、数据无重复到达的通信)
适用情况:适合于对传输质量要求较高,以及传输大量数据的通信。在需要可靠数据传输的场合,通常使用TCP协议。 如:MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议。
UDP协议:用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。
适用情况:发送小尺寸数据(如对DNS服务器进行IP地址查询时)在接收到数据,给出应答较困难的网络中使用 UDP。(如:无线网络)适合于广播/组播式通信中,通常使用TCP协议。 如:MSN/QQ等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议;流媒体、VOD、VoIP等网络多媒体服务中通常采用UDP方式进行实时数据传输。
主机字节序和网络字节序主机字节序列分为大端字节序和小端字节序, ...
C语言实现多线程网络通讯
C语言实现多线程网络通讯前言前面我们学习了如何通过C语言写一个网络通信,但是我们发现这样的网络通讯只能一个人去连接这个server,无法达到多个用户来使用,于是我们这里采用多线程去实现这个需求。
多线程首先复习一下什么是多线程
什么是多线程?
进程是正在运行的程序及其占用的资源,而线程是进程的一条执行路径。所有的线程都是在同一进程空间运行,这也意味着多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)。 一个进程可以有很多线程,每条线程并行执行不同的任务。进程可以比作父母给儿女买了一个房子,并对着自己现住的房子一比一的装修好,而线程则是在原有的房子中在开辟出一个新的房间。
多线程和多进程的区别
线程是进程划分成的更⼩的运⾏单位,⼀个进程在其执⾏的过程中可以产⽣多个线程。
线程和进程最⼤的不同在于基本上各进程是独⽴的,⽽各线程则不⼀定,因为同⼀进程中的线程极有可能会相互影响。
线程执 ...
CVE复现计划【CVE-2023-27997 fortigate 防火墙】
CVE复现计划【CVE-2023-27997 fortigate 防火墙】前言为了继续学习IOT路由器等漏洞挖掘的学习,参加了团队的CVE复现计划,这里简单跟着师傅们做一些复现,这里用于记录我的学习路线
一、漏洞详情Fortinet(飞塔)是一家网络安全产品和安全解决方案提供商,其产品包括防火墙和VPN、防病毒软件、入侵防御系统和终端安全组件等。FortiOS是专用于FortiGate网络安全平台上的安全操作系统,该系统为用户提供防火墙、防病毒、VPN、Web内容过滤和反垃圾邮件等多种安全功能。
近日监测到Fortinet FortiOS中存在一个远程代码执行漏洞(CVE-2023-27997)。由于Fortinet FortiOS SSL-VPN功能中存在基于堆的缓冲区溢出漏洞,可在未经身份验证的情况下利用该漏洞导致设备崩溃或执行任意代码。
建议受影响用户做好资产自查以及预防工作,以免遭受黑客攻击。
二、影响范围Fortinet FortiOS 6.0.x版本:< 6.0.17
Fortinet FortiOS 6.2.x版本:< 6.2.15
Fortinet Fort ...
CUDA与CUDNN安装教程
CUDA与CUDNN安装教程(torch.cuda.is_available() 的返回值为true)前言在跑训练算法的时候,发现算法用的一直都是CPU去跑,导致于CPU被占满了,一直发热,所以决定去解决torch.cuda.is_available() 的返回值为false这个问题,刚好我的电脑有独立显卡GTX1650
解决办法GPT去寻找解决办法
可能是没有安装CUDAtoolkit,和CUDNN
安装的CUDAtoolkit与pytorch-gpu版本不一样
没有独立显卡
首先独显我是有的,但是我确实没有独立安装CUDAtoolkit和CUDNN,可能是这个原因,第二个原因也说可能版本不对,所以安装的时候得注意版本,我们先去看看我们的版本的pytorch支持的CUDAtoolkit是多少,先去官网查询一下,https://pytorch.org/get-started/locally/
发现最高支持的CUDA版本为12.1
查看一下本地CUDA的版本
命令为nvidia-smi
发现本地的CUDA版本为12.4,于是我们只能安装12.1的CUDAtoolkit了
安装CU ...
CTF竞赛权威指南之汇编基础的学习
CTF竞赛权威指南之汇编基础的学习0x1 CUP架构与指令集0x1.1 指令集架构
最先诞生的是复杂指令集计算机(CISC),典型代表就是x86处理器。
后面1974年IBM提出了精简指令计算机(RISC)的概念。旨在通过减少指令的数量和简化指令的格式来优化和提高CPU的指令执行效率。典型代表是ARM处理器。
两种指令集的对比
大多数RISC的指令长度是固定的,对于32位的ARM处理器,所有指令都是4个字节,即32位;而CISC的指令长度是不固定的,通常在1到6个字节之间。固定长度的指令有利于解码和优化,可以实现流水线,缺点则是平均代码长度更大,会占用更多的存储空间。
基于80%的工作由其中20%的指令完成的原则,RISC设计的指令数量相对较少,或者说更简洁。
对于寻址方式,由于ARM采用了load/store架构,处理器的运算指令在执行过程中只能处理立即数,或者寄存器中的数据,而不能访问内存。因此,存储器和寄存器之间的数据交互,由专门的load(加载)和store(回存)指令负责。相反,X86既能处理寄存器中的数据,也能处理存储器中的数据,因此寻址方式更加多样 ...
CTF比赛类型
CTF比赛类型题目类型在CTF中主要包含以下5个大类的题目,有些比赛会根据自己的侧重点单独添加某个分类,例如移动设备(Mobile), 电子取证(Forensics)等,近年来也会出来混合类型的题目,例如在Web中存在一个二进制程序,需要选手先利用Web的漏洞获取到二进制程序,之后通过逆向或是Pwn等方式获得最终flag
WebWeb类题目大部分情况下和网、Web、HTTP等相关技能有关。主要考察选手对于Web攻防的一些知识技巧。诸如SQL注入、XSS、代码执行、代码审计等等都是很常见的考点。一般情况下Web题目只会给出一个能够访问的URL。部分题目会给出附件
所需知识:PHP、python、SQL、计算机网络、OWASP TOP10
PwnPwn类题目重点考察选手对于二进制漏洞的挖掘和利用能力,其考点也通常在堆栈溢出、格式化漏洞、UAF、Double Free等常见二进制漏洞上。选手需要根据题目中给出的二进制可执行文件进行逆向分析,找出其中的漏洞并进行利用,编写对应的漏洞攻击脚本(Exploit),进而对主办方给出的远程服务器进行攻击并获取flag通常来说Pwn类题目给出的远程服 ...