CVE-2013-4694 WinAmp 5.63 栈溢出漏洞分析
WinAmp 5.63 - Stack-based BufferOverflow
前天在exploit-db找到這個漏洞的描述。閑著沒事,就調試了一下。這個漏洞的觸發條件是在winamp.ini中skin這個字符串在使用lstrcpyn進行拷貝的時候,未檢測skin的長短,導致我們可修改skin的值進行溢出。
比較有意思的是傳入的字符串在用lstrcpyn比較的時候是unicode的格式的,而漏洞報告中說明這是個可利用的漏洞。以前聽過unicode shellcode但沒玩過也沒見過,第一次見到這樣的漏洞。于是就嘗試分析了利用一下。(這個漏洞的利用價值幾乎沒有。但是給我這樣菜鳥練手的價值還是有的!)。菜鳥級水準,如果文章有錯,請各位多多指出!
實驗環境:windowsxp sp3 pro(簡體中文版)
工具:ImmunityDebugger ,IDA
漏洞程序:winamp.5.63? 下載地址:http://www.exploit-db.com/exploits/26558/
?
???????? 安裝程序,注意語言選擇English。不知道為什么選擇簡體中文時這個漏洞就不能觸發了。
???????? 安裝完成后找到%APPDATA%\WinAmp\winamp.ini件。更改字符串skin,經多次修改發現skin傳入132個字符時,末尾的兩個字符恰好覆蓋EIP
 
于是祭出Immunity Debugger ,載入程序后在定睛一看:
?
這里返回到的是gen_jump模塊的10009802,當前處于1001b405這個函數中。打開IDA載入gen_jumpex.dll。到10009802處
 
問題應該就在這個call里面了。進入1001b405一路追蹤又發現一個可疑的Call
 
進去看看果真發現了可觸發漏洞的函數以級代碼:
 
調試驗證后確定這里就是問題之所在。
后面的unicode字符shellcode實在不好弄(跳轉指令找不到)。。。。。。。。先放一放。等以後有看看有沒有比較好的方法來寫。。。。。。
 
 
 
總結
以上是生活随笔為你收集整理的CVE-2013-4694 WinAmp 5.63 栈溢出漏洞分析的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: swift单元测试(三)XCTest之U
- 下一篇: 基于UDP的歌词同步系统
