freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

watercloud@xfocusorg-資料下載頁

2025-08-23 14:23本頁面

【導讀】HPUNIX運行在PA-RISC芯片和IA-64芯片。PA上常見的系統(tǒng)版本有、、。HP-UXKernel有32/64位之分,64位系統(tǒng)版本號前有一個標。識符‘B’,現(xiàn)在使用最多的系統(tǒng)版本為。見到的HP-UX基本都是PA版。因此程序可以使用4G的線性空間,同時??臻g管理PA對物理內(nèi)存的管理使用分頁機制,頁面以4k為基本單元。享段和系統(tǒng)代碼段合并由空間寄存器SR7來索引。PA寄存器有通用寄存器、浮點運算寄存器、空間寄存器、控制寄存器。要關系的是通用寄存器。通用寄存器32個,每個都是32位,記作:GRx或Rx:。GR27DP全局數(shù)據(jù)指針,對數(shù)據(jù)的操作都以它為基準操作。期間通常該值不變。GR29RET1函數(shù)返回值2、也作為靜態(tài)鏈接寄存器。SR0調(diào)用共享庫函數(shù)時存放返回數(shù)據(jù)空間。SR5指向數(shù)據(jù)空間段??刂萍拇嫫饔?5個都是32位:CR0、CR8-CR32。BB當某位為1時跳轉。MOVB搬運數(shù)據(jù)后跳轉,對應還有MOVIB。函數(shù)調(diào)用和返回是通過分支指令實現(xiàn)的,call和return都是偽指令。LDIL加載一個21位的立即數(shù)到寄存器的高21位。還有ADD、ADDI、COPY、XOR等相關指令或偽指令。LDW-50,%r10將變量放入%r10中。

  

【正文】 況 bash$ cc o t bash$ gdb ./t (gdb) r Starting program: ./t Program received signal SIGSEGV, Segmentation fault. 0x41414140 in ?? () ? 看執(zhí)行到這里來了。 (gdb) bt 0 0x41414140 in ?? () 1 0x2848 in main () Error accessing memory address 0x7f7efbac: Bad address. 對已初始化數(shù)據(jù)區(qū)的溢出應該是最容易的方式了,不像棧溢出有很多限制,也不像格式化問題那么復雜。 格式化字符串問題 格式化字符串問題所有系統(tǒng)通用,更多的利用信息可以參考 warning3等的相關文章。 目前測試發(fā)現(xiàn) HPUX都存在本地語言系統(tǒng)的格式化字符串問題,這使得我們可以利用幾乎所有帶 s位的程序取得特權,而且 HP至今沒有相應的補丁。 HP本地語言系統(tǒng)簡介 HP本地語言系統(tǒng)簡介 HP的本地化語言信息放在 /usr/lib/nls/下,每一個語言對應一個目錄,如 LANG=C就對應目錄 C/,各目錄下存放大量的 .cat信息文件 ,各程序對應一個 信息文件如 。程序運行時根據(jù)用戶環(huán)境變量選擇不同的語言系統(tǒng) : $ export LANG=chineses $ ct abc ct: 電話號碼錯誤 abc $ export LANG=C $ ct abc ct: bad phone number – abc 同時我們可以直接通過 NLSPATH環(huán)境變量強制指定一個信息文件, 使得程序運行時直接從該文件中取信息。 catgets與語言信息文件 catgets 取語言信息函數(shù)為 catgets(),其定義為: char *catgets( nl_catd catd, int set_num, int msg_num, const char *def_str )。 我們最關心的是 set_num和 msg_num。 他們對應于 cat文件中的 set號碼和 msg號碼,從而對應一個特定的消息。 cat文件為 2進制格式,可以用 getcat命令根據(jù)文本信息文件生成: 其源文本信息文件格斯為: $set set_number msg_number1 “消息 1” msg_number2 “消息 2” . . . . . 當然我們也可以用 dumpmsg來查看一個 .cat文件信息。 漏洞所在 漏洞所在 $ ct abc ct: bad phone number abc 對比打印的消息和用 dumpmsg對 /usr/lib/nls/C/ 可以發(fā)現(xiàn)該消息對應號碼為 set_num = msg_num=1128。 進行如下考察: $ cat k $set 1 1128 %n%n%n%n%n%n%n%n%n Ctrl+D $ gencat k 。export NLSPATH=./ $ ct abc Bus error - 出問題了:) 問題小結 問題小結 char * pmsg = catgets( . . . )。 然后程序緊接著調(diào)用: xprintf(pmsg,參數(shù) 1,參數(shù) 2, . . . .)。 //格式化字符串問題。 或者: sprintf(buffer,pmsg,arg1,arg2 . . . )。 //格式化字符串問題和緩沖區(qū)溢出問題! 該問題存在于幾乎所有的程序中,我們可以利用幾乎所有的帶 S位的程序取得系統(tǒng)特權。 利用環(huán)境變量存放信息 利用環(huán)境變量存放信息 使用環(huán)境變量存放 shellcode或者特殊信息優(yōu)勢是定位方便準確 。 特定程序 A設置一個環(huán)境變量后通過 exec相關函數(shù)使用特定命令行參數(shù)執(zhí)行其他程序 B時 , B程序空間內(nèi)部的該環(huán)境變量存放的位置可以非常精確的取得 。 五 、 實例分析 五 、 實例分析 cifslogin漏洞簡介 HPUX自帶了一套 cifs系統(tǒng),該系統(tǒng)主要使用 smb協(xié)議和 windows主機通信。該軟件包的 cifslogin程序存在一些問題。 該程序使用如下: cifslogin [servername] username [options] 他在處理 p參數(shù)時存在一個堆溢出問題, 處理 username時存在一個棧溢出問題。 考察 username 考察 username 考察這個棧溢出如下: main(. . .) { buffer[2240]。 . . . sprintf(buffer,..%s..,argv[username])。 . . . } 由于 sprintf為非葉子函數(shù),故覆蓋了 sprintf的返回地址。 溢出利用 溢出利用 棧 幀 標 識 區(qū)命 令 行 參 數(shù)環(huán) 境 變 量 等數(shù) 據(jù) 區(qū)參 數(shù) 存 放 區(qū)局 部 變 量 區(qū)對 齊 數(shù) 據(jù)寄 存 器 保 存 區(qū). . . . . .寄 存 器 保 存 區(qū)對 齊 數(shù) 據(jù)殘 存 局 部 變 量 片地 址 填 充S H E L L C O D EN O P調(diào) 用 s p r i n t f 前m a i n 的 棧 情 況調(diào) 用 s p r i n t f 后 發(fā)生 溢 出 后 的 棧 情 況低 地 址高 地 址. . . . . .發(fā) 生 溢 出 后 s p r i n t f 函 數(shù) 存 放 在 m a i n 函 數(shù) 棧 幀 標 識 區(qū) 的 M A I N _ S P 2 4 處 的 返 回 地 址 被 覆 蓋M A I N _ S P 2 4該溢出是一個標準的棧溢出。如圖為我已經(jīng)公布的序的 buffer構造。 由于寫這個程序是在 HPUX ,當時沒有意識到 HPUX 幀標識區(qū)的 MAIN_SP20處不能被覆蓋,所以這個程序在 HPUX 會有問題,需要修改程序只溢出覆蓋完MAIN_SP24。 六 、 參考資料 六 、 參考資料 《 PARISC Instruction Set Architecture》 《 PA64_Runtime_Architecture》 《 Runtime Architecture Document》 《 HPAssembler Reference Manual HP9000 9th》 這些文檔都可以在 獲得。 《 Exploiting buffer overflows on HPUX/PARISC》 SunDay翻譯的 《 HPUX()緩沖區(qū)溢出 》 謝謝!
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1