1.当出现libcrypto-1_1-x64.dll文件遭损坏的码缺解决方法_计算机出现提示libcrypto-1_1-x64.dll丢失怎么办
2.openssl å¦ä½ä½¿ç¨
3.CVE-2019-10999 Dlink IP 摄像头缓冲区溢出
4.OpenSSL 入门:密码学基础知识
当出现libcrypto-1_1-x64.dll文件遭损坏的解决方法_计算机出现提示libcrypto-1_1-x64.dll丢失怎么办
libcrypto-1_1-x.dll是OpenSSL加密库的关键组件,用于数字证书的少函数实创建与验证及安全通信的实现。在网络安全软件如虚拟专用网络(***)和加密电子邮件中广泛使用。码缺
当系统缺少该文件时,少函数实可能导致相关程序运行异常。码缺以下是少函数实spring笔记源码详解几种解决此问题的方法:
1. 重新安装相关游戏或程序。这将确保系统中包含所需的码缺libcrypto-1_1-x.dll文件。
2. 通过Windows更新下载缺失的少函数实dll文件。访问Windows更新设置,码缺搜索并安装可用更新。少函数实
3. 从可信来源下载libcrypto-1_1-x.dll文件,码缺并将其放置在正确文件夹中。少函数实
4. 运行系统文件检查器,码缺修复受损文件。少函数实在命令提示符输入“sfc/scannow”并回车,码缺等待程序检查并修复。
注意,物联网编程源码将文件置于正确文件夹可能引发系统错误,建议备份系统文件,谨慎操作。
另一种方法是使用一键智能修复DLL助手自动匹配修复:
1. 从网站下载安装包,找到安装文件。
2. 双击安装包,选择安装路径,避免使用C盘。
3. 安装完成后,点击一键扫描检测缺少的运行库文件。
4. 选择立即修复,系统将自动下载并修复缺失文件。
5. 扫描完成后,点击立即修复开始修复缺失的运行库文件。
6. 重启之前不能运行的软件或游戏,查看问题是thnypng图片压缩源码否解决。
libcrypto-1_1-x.dll是微软视窗操作系统中的一个动态链接库文件,用于实现共享函数库概念。该文件的丢失或损坏可能导致某些软件和游戏出现强行中断或无法正常运行的问题。
openssl å¦ä½ä½¿ç¨
为ä¸ä¸ªåºäºå¯ç å¦çå®å ¨å¼åå ï¼OpenSSLæä¾çåè½ç¸å½å¼ºå¤§åå ¨é¢ï¼åæ¬äºä¸»è¦çå¯ç ç®æ³ã常ç¨çå¯é¥åè¯ä¹¦å°è£ 管çåè½ä»¥åSSLåè®®ï¼å¹¶æä¾äºä¸°å¯çåºç¨ç¨åºä¾æµè¯æå ¶å®ç®ç使ç¨ã
1.对称å å¯ç®æ³
OpenSSLä¸å ±æä¾äº8ç§å¯¹ç§°å å¯ç®æ³ï¼å ¶ä¸7ç§æ¯åç»å å¯ç®æ³ï¼ä» æçä¸ç§æµå å¯ç®æ³æ¯RC4ãè¿7ç§åç»å å¯ç®æ³åå«æ¯AESãDESãBlowfishãCASTãIDEAãRC2ãRC5ï¼é½æ¯æçµåå¯ç æ¬æ¨¡å¼ï¼ECBï¼ãå å¯åç»é¾æ¥æ¨¡å¼ï¼CBCï¼ãå å¯åé¦æ¨¡å¼ï¼CFBï¼åè¾åºåé¦æ¨¡å¼ï¼OFBï¼åç§å¸¸ç¨çåç»å¯ç å å¯æ¨¡å¼ãå ¶ä¸ï¼AES使ç¨çå å¯åé¦æ¨¡å¼ï¼CFBï¼åè¾åºåé¦æ¨¡å¼ï¼OFBï¼åç»é¿åº¦æ¯ä½ï¼å ¶å®ç®æ³ä½¿ç¨çåæ¯ä½ãäºå®ä¸ï¼DESç®æ³éé¢ä¸ä» ä» æ¯å¸¸ç¨çDESç®æ³ï¼è¿æ¯æä¸ä¸ªå¯é¥å两个å¯é¥3DESç®æ³ã
2.é对称å å¯ç®æ³
OpenSSLä¸å ±å®ç°äº4ç§é对称å å¯ç®æ³ï¼å æ¬DHç®æ³ãRSAç®æ³ãDSAç®æ³åæ¤åæ²çº¿ç®æ³ï¼ECï¼ãDHç®æ³ä¸è¬ç¨æ·å¯é¥äº¤æ¢ãRSAç®æ³æ¢å¯ä»¥ç¨äºå¯é¥äº¤æ¢ï¼ä¹å¯ä»¥ç¨äºæ°åç¾åï¼å½ç¶ï¼å¦æä½ è½å¤å¿åå ¶ç¼æ ¢çé度ï¼é£ä¹ä¹å¯ä»¥ç¨äºæ°æ®å å¯ãDSAç®æ³åä¸è¬åªç¨äºæ°åç¾åã
3.ä¿¡æ¯æè¦ç®æ³
OpenSSLå®ç°äº5ç§ä¿¡æ¯æè¦ç®æ³ï¼åå«æ¯MD2ãMD5ãMDC2ãSHAï¼SHA1ï¼åRIPEMDãSHAç®æ³äºå®ä¸å æ¬äºSHAåSHA1两ç§ä¿¡æ¯æè¦ç®æ³ï¼æ¤å¤ï¼OpenSSLè¿å®ç°äºDSSæ åä¸è§å®ç两ç§ä¿¡æ¯æè¦ç®æ³DSSåDSS1ã
4.å¯é¥åè¯ä¹¦ç®¡ç
å¯é¥åè¯ä¹¦ç®¡çæ¯PKIçä¸ä¸ªéè¦ç»æé¨åï¼OpenSSL为ä¹æä¾äºä¸°å¯çåè½ï¼æ¯æå¤ç§æ åã
é¦å ï¼OpenSSLå®ç°äºASN.1çè¯ä¹¦åå¯é¥ç¸å ³æ åï¼æä¾äºå¯¹è¯ä¹¦ãå ¬é¥ãç§é¥ãè¯ä¹¦è¯·æ±ä»¥åCRLçæ°æ®å¯¹è±¡çDERãPEMåBASEçç¼è§£ç åè½ãOpenSSLæä¾äºäº§çåç§å ¬å¼å¯é¥å¯¹å对称å¯é¥çæ¹æ³ãå½æ°ååºç¨ç¨åºï¼åæ¶æä¾äºå¯¹å ¬é¥åç§é¥çDERç¼è§£ç åè½ã并å®ç°äºç§é¥çPKCS#åPKCS#8çç¼è§£ç åè½ãOpenSSLå¨æ åä¸æä¾äºå¯¹ç§é¥çå å¯ä¿æ¤åè½ï¼ä½¿å¾å¯é¥å¯ä»¥å®å ¨å°è¿è¡åå¨åååã
å¨æ¤åºç¡ä¸ï¼OpenSSLå®ç°äºå¯¹è¯ä¹¦çX.æ åç¼è§£ç ãPKCS#æ ¼å¼çç¼è§£ç 以åPKCS#7çç¼è§£ç åè½ã并æä¾äºä¸ç§ææ¬æ°æ®åºï¼æ¯æè¯ä¹¦ç管çåè½ï¼å æ¬è¯ä¹¦å¯é¥äº§çã请æ±äº§çãè¯ä¹¦ç¾åãåéåéªè¯çåè½ã
äºå®ä¸ï¼OpenSSLæä¾çCAåºç¨ç¨åºå°±æ¯ä¸ä¸ªå°åçè¯ä¹¦ç®¡çä¸å¿ï¼CAï¼ï¼å®ç°äºè¯ä¹¦ç¾åçæ´ä¸ªæµç¨åè¯ä¹¦ç®¡çç大é¨åæºå¶ã
5.SSLåTLSåè®®
OpenSSLå®ç°äºSSLåè®®çSSLv2åSSLv3ï¼æ¯æäºå ¶ä¸ç»å¤§é¨åç®æ³åè®®ãOpenSSLä¹å®ç°äºTLSv1.0ï¼TLSæ¯SSLv3çæ ååçï¼è½ç¶åºå«ä¸å¤§ï¼ä½æ¯ç«æå¾å¤ç»èä¸å°½ç¸åã
è½ç¶å·²ç»æä¼å¤ç软件å®ç°äºOpenSSLçåè½ï¼ä½æ¯OpenSSLéé¢å®ç°çSSLåè®®è½å¤è®©æ们对SSLåè®®æä¸ä¸ªæ´å æ¸ æ¥ç认è¯ï¼å 为è³å°åå¨ä¸¤ç¹ï¼ä¸æ¯OpenSSLå®ç°çSSLåè®®æ¯å¼æ¾æºä»£ç çï¼æ们å¯ä»¥è¿½ç©¶SSLåè®®å®ç°çæ¯ä¸ä¸ªç»èï¼äºæ¯OpenSSLå®ç°çSSLåè®®æ¯çº¯ç²¹çSSLåè®®ï¼æ²¡æè·å ¶å®åè®®ï¼å¦HTTPï¼åè®®ç»åå¨ä¸èµ·ï¼æ¾æ¸ äºSSLåè®®çæ¬æ¥é¢ç®ã
6.åºç¨ç¨åº
OpenSSLçåºç¨ç¨åºå·²ç»æ为äºOpenSSLéè¦çä¸ä¸ªç»æé¨åï¼å ¶éè¦æ§æææ¯OpenSSLçå¼åè å¼å§æ²¡ææ³å°çãç°å¨OpenSSLçåºç¨ä¸ï¼å¾å¤é½æ¯åºäºOpenSSLçåºç¨ç¨åºèä¸æ¯å ¶APIçï¼å¦OpenCAï¼å°±æ¯å®å ¨ä½¿ç¨OpenSSLçåºç¨ç¨åºå®ç°çãOpenSSLçåºç¨ç¨åºæ¯åºäºOpenSSLçå¯ç ç®æ³åºåSSLåè®®åºåæçï¼æ以ä¹æ¯ä¸äºé常好çOpenSSLçAPI使ç¨èä¾ï¼è¯»æææè¿äºèä¾ï¼ä½ 对OpenSSLçAPI使ç¨äºè§£å°±æ¯è¾å ¨é¢äºï¼å½ç¶ï¼è¿ä¹æ¯ä¸é¡¹é»ç¼ä½ çæå¿åçå·¥ä½ã
OpenSSLçåºç¨ç¨åºæä¾äºç¸å¯¹å ¨é¢çåè½ï¼å¨ç¸å½å¤ç人çæ¥ï¼OpenSSLå·²ç»ä¸ºèªå·±å好äºä¸åï¼ä¸éè¦ååæ´å¤çå¼åå·¥ä½äºï¼æ以ï¼ä»ä»¬ä¹æè¿äºåºç¨ç¨åºæ为OpenSSLçæ令ãOpenSSLçåºç¨ç¨åºä¸»è¦å æ¬å¯é¥çæãè¯ä¹¦ç®¡çãæ ¼å¼è½¬æ¢ãæ°æ®å å¯åç¾åãSSLæµè¯ä»¥åå ¶å®è¾ å©é ç½®åè½ã
7.Engineæºå¶ Engineæºå¶çåºç°æ¯å¨OpenSSLç0.9.6ççäºæ ï¼å¼å§çæ¶åæ¯å°æ®éçæ¬è·æ¯æEngineççæ¬åå¼çï¼å°äºOpenSSLç0.9.7çï¼Engineæºå¶éæå°äºOpenSSLçå æ ¸ä¸ï¼æ为äºOpenSSLä¸å¯ç¼ºå°çä¸é¨åã Engineæºå¶ç®çæ¯ä¸ºäºä½¿OpenSSLè½å¤éæå°ä½¿ç¨ç¬¬ä¸æ¹æä¾ç软件å å¯åºæè 硬件å å¯è®¾å¤è¿è¡å å¯ãOpenSSLçEngineæºå¶æåå°è¾¾å°äºè¿ä¸ªç®çï¼è¿ä½¿å¾OpenSSLå·²ç»ä¸ä» ä» ä½¿ä¸ä¸ªå å¯åºï¼èæ¯æä¾äºä¸ä¸ªéç¨å°å å¯æ¥å£ï¼è½å¤ä¸ç»å¤§é¨åå å¯åºæè å å¯è®¾å¤åè°å·¥ä½ãå½ç¶ï¼è¦ä½¿ç¹å®å å¯åºæå å¯è®¾å¤æ´OpenSSLåè°å·¥ä½ï¼éè¦åå°éçæ¥å£ä»£ç ï¼ä½æ¯è¿æ ·çå·¥ä½é并ä¸å¤§ï¼è½ç¶è¿æ¯éè¦ä¸ç¹å¯ç å¦çç¥è¯ãEngineæºå¶çåè½è·Windowsæä¾çCSPåè½ç®æ æ¯åºæ¬ç¸åçãç®åï¼OpenSSLç0.9.7çæ¬æ¯æçå åµç¬¬ä¸æ¹å å¯è®¾å¤æ8ç§ï¼å æ¬ï¼CryptoSwiftãnCipherãAtallaãNuronãUBSECãAepãSureWare以åIBM CCAç硬件å å¯è®¾å¤ãç°å¨è¿åºç°äºæ¯æPKCS#æ¥å£çEngineæ¥å£ï¼æ¯æ微软CryptoAPIçæ¥å£ä¹æ人è¿è¡å¼åãå½ç¶ï¼ææä¸è¿°Engineæ¥å£æ¯æä¸ä¸å®å¾å ¨é¢ï¼æ¯å¦ï¼å¯è½æ¯æå ¶ä¸ä¸ä¸¤ç§å ¬å¼å¯é¥ç®æ³ã
8.è¾ å©åè½
BIOæºå¶æ¯OpenSSLæä¾çä¸ç§é«å±IOæ¥å£ï¼è¯¥æ¥å£å°è£ äºå ä¹ææç±»åçIOæ¥å£ï¼å¦å å访é®ãæ件访é®ä»¥åSocketçãè¿ä½¿å¾ä»£ç çéç¨æ§å¤§å¹ 度æé«ï¼OpenSSLæä¾APIçå¤ææ§ä¹éä½äºå¾å¤ã
OpenSSL对äºéæºæ°ççæå管çä¹æä¾äºä¸æ´å¥ç解å³æ¹æ³åæ¯æAPIå½æ°ãéæºæ°ç好åæ¯å³å®ä¸ä¸ªå¯é¥æ¯å¦å®å ¨çéè¦åæã
OpenSSLè¿æä¾äºå ¶å®çä¸äºè¾ å©åè½ï¼å¦ä»å£ä»¤çæå¯é¥çAPIï¼è¯ä¹¦ç¾åå管çä¸çé ç½®æ件æºå¶ççãå¦æä½ æ足å¤çèå¿ï¼å°ä¼å¨æ·±å ¥ä½¿ç¨OpenSSLçè¿ç¨æ ¢æ ¢åç°å¾å¤è¿æ ·çå°åè½ï¼è®©ä½ ä¸æææ°çæåã
CVE-- Dlink IP 摄像头缓冲区溢出
分析 CVE--,Dlink IP 摄像头后端服务器 alphapd 出现缓冲区溢出漏洞。该漏洞允许身份认证用户通过请求 wireless.htm 时,向 WEPEncryption 参数传递长字符串,进而执行任意代码。该漏洞在设备 dcs-l 的固件版本 1.. 中存在,可从参考链接下载固件。
漏洞复现利用了函数 sub_DEC,该函数栈帧大小为 0x,返回地址保存在 sp + 0x,溢出缓冲区起始地址在 sp + 0x。只需向缓冲区写入超过 0x 字节的数据即可导致溢出,劫持控制流,源码上传怎样上传并控制 S0~S5 寄存器。
以下是 sub_DEC 栈帧开辟及返回地址存储的汇编代码。调用 strcpy 函数复制数据到缓冲区中,第一个参数 des 通过 a0 寄存器传入。函数执行完毕后,进行堆栈平衡,恢复 S0~S5 寄存器,恢复 ra 寄存器到函数返回地址,并跳转执行。
搭建漏洞环境,使用 qemu-system-static 实现。首先使用 qemu-mipsel-static 搭建环境。发现无法打开 /var/run/nvramd.pid 文件,因此在固件根目录创建 run 目录和 nvramd.pid 文件。创建文件后,运行依然报错,jfinal源码开发实战无法创建 RSA 密钥,原因可能为缺少 urandom、random 设备,手动创建解决了问题。还遇到了 OpenSSL 报错无法写入 ‘random state’ 的问题,解决方法是创建 .rnd 文件并设置环境变量指向该文件。
遇到无法获取 LAN IP 的问题,定位到 websStartupServer 函数中,通过 getSysInfoLong 获取。可以使用 patch getSysInfoLong 函数或在 websStartupServer 中 patch 地址判定代码来解决。选择后者,使得程序在 0.0.0.0: 端口运行。
成功触发 segment fault 后,利用栈中函数返回地址和 gadget,通过 shellcode 实现漏洞利用。首先从 so 文件中找到 system 函数和 gadget。选择 libuClibc-0.9..so,通过 ldd 查看 alphapd 装载的 so 文件,发现 libc.so 链接到 libuClibc-0.9..so。利用 QEMU 虚拟机获取装载地址,然后计算出 system 函数的地址。使用 mipsrop.stackfinder() 找到合适的 gadget,并将 sp + 0x1c8 – 0xd8 处数据传递给 a0,跳转到 S0 寄存器执行。
整体利用流程为:通过缓冲区溢出控制 S0 寄存器,然后控制返回地址,利用系统函数实现漏洞利用。最终执行命令 ls,验证利用成功。
总结,CVE-- 是一个简单的缓冲区溢出与 ret2libc 的利用场景,但实际操作可能需要额外步骤,如通过 UART 等方式获取 shell,分析 so 加载内存布局并获取基址。同时,确保服务器守护进程或看门狗的稳定运行。
OpenSSL 入门:密码学基础知识
想深入了解密码学基础,特别是与OpenSSL相关的知识吗?继续阅读这篇文章,由Marty Kalin撰写。
这是OpenSSL密码学入门系列的开篇,OpenSSL是Linux和其它系统中常用的生产级库和工具包。如需安装最新版本,请参考相关链接。OpenSSL工具集既能在命令行操作,也能在程序中通过C语言调用库函数。
本系列涵盖加密哈希、数字签名、加密解密和数字证书等主题,相关代码和命令行示例可在作者网站的ZIP文件中获取。
首先,回顾一下OpenSSL名称中的SSL:年,Netscape发布的Secure Socket Layer(SSL)协议,为HTTPS提供了安全保障。关键的SSL服务包括加密和消息完整性,后者通过哈希函数实现,也作为OpenSSL的一部分。
SSL发展到TLSv1,但名称中常常保留SSL,即便使用的是TLS。OpenSSL命令行以openssl开头,尽管文档结构复杂。通过一个HTTPS客户端示例,我们将探索这些概念。
示例程序通过HTTPS连接到Google,展示了SSL握手过程中的证书验证,尽管在某些情况下可能失败。证书验证是双向的,但客户端通常不发送证书。OpenSSL封装了底层套接字和地址细节,提供简单API。
在与Google服务器握手时,客户端接收并验证证书,这个过程涉及信任库,通常是/etc/ssl/certs/ca-certificates.crt,它包含OpenSSL默认的信任证书。客户端程序虽然能继续连接,但证书验证失败可能是因为信任库中缺少对应的证书。
数字证书是核心安全元素,包含身份信息、签名和哈希值。证书类型和层次结构,以及公钥基础结构(PKI)中的加密算法,如RSA,是理解密码学基础的关键。
OpenSSL实用程序如openssl s_client,用于检查服务器证书,输出显示了加密套件和验证信息。后续文章将深入探讨这些概念,从加密哈希函数到数字证书在密钥分发中的作用。