先做事后支付的 *** 黑客线上请-WEB2PY 反序列化的安全性問題-CVE-2016-3957
在一次滲透測試的过程中,這樣碰到了用 web2py 架构建構的應用程式。為了取得成功滲透目標,這樣科学研究了 web2py,發現該架构範例應用程式中存有三個資訊洩漏問題,這些洩漏都會導致遠端指令執行 (RCE)。由於範例應用程式預設是開啟的,若沒有手動關閉,攻擊者能够立即运用洩漏資訊获得系統執行權限。這些問題編號分别為:CVE-2016-3952、CVE-2016-3953、CVE-2016-3954、CVE-2016-3957。
情况-老生常談的 完全免费帮助的黑客qq号是多少 Pickle Code Execution
在繼續說明前還要要先認知什么是反序列化的安全性問題?反序列化的安全性問題在本質上這樣是物品引入,它的嚴重性取決於所引入的物品自身是不是會导致危險行為,比如讀寫檔。一般來說要透過反序列化建構一個取得成功的攻擊有三個要點:
是不是可操纵目標所需反序列化的字符串。
危險行為在反序列化後是不是會被執行。這在實務上大约有下边兩種情况:
危險行為是寫在法术方式 (Magic Method) 裡面,比如 PHP 的 __construct 在物品形成時一定會執行。
完全免费帮助的黑客qq号是多少 反序列化後覆蓋不仅有物品,導致一切正常程式步骤出现危險结果。
反序列化的問題在每個程式語言都會发生,但一般必须配搭看程式碼拼湊出可以用的攻擊步骤,比较難运用。不過,一些實作实例化的函式庫會將程式邏輯也编码序列化为字符串,因而攻擊者能够自定義物品立即应用,已不必须拼湊,比如今日要提的 Python Pickle。
立即舉個 Pickle 的事例以下,我們製造了一個會執行系統命令 echo success 的物品Malicious,並且编码序列化为字符串 "cposix\ system\ p1\ (S'echo 完全免费帮助的黑客qq号是多少 success'\ p2\ tp3\ Rp4\ ."。當受害人反序列化这个字符串,即觸發執行該系統命令,因而印出来 success。
>>> import os
>>> import cPickle
>>> class Malicious(object):
... def __reduce__(self):
... return (os.system,("echo 完全免费帮助的黑客qq号是多少 success",))
...
>>> serialize = cPickle.dumps(Malicious())
>>> serialize
"cposix\ system\ p1\ (S'echo success'\ p2\ tp3\ Rp4\ ."
>>> cPickle.loads(serialize)
success
0
這便是 Pickle 誤用反序列化所导致的指令執行風險。攻擊完全免费帮助的黑客qq号是多少者非常容易能够產生一個带有随意指令執行的实例化字符串,進而讓受害人在實現反序列化的过程中觸發執行惡意指令。
反序列化 + 实例化字符串可控性
此次發現的問題关键來自 web2py 自身的 session cookie 应用 Pickle 處理实例化要求 (CVE-2016-3957),并且其實 session cookie 的数据加密字符串固定不动 (CVE-2016-3953),攻擊者可随意偽造惡意的实例化字符串导致前边所介绍的指令執行風險。細節以下。
CVE-2016-39571
web2py 的應用程式假如应用 cookie 來儲存 session 資訊,那么在每一次收到使用人請求時會將 session cookie 用一個 secure_loads 函式將 cookie 内容讀入。[Ref]
# gluon/globals.py#L846
if response.session_storage_type 完全免费帮助的黑客qq号是多少 == 'cookie':
# check if there is session data in cookies
if response.session_data_name in cookies:
session_cookie_data = cookies[response.session_data_name].value
else:
session_cookie_data 完全免费帮助的黑客qq号是多少 = None
if session_cookie_data:
data = secure_loads(session_cookie_data, cookie_key,
compression_level=compression_level)
if data:
self.update(data)
完全免费帮助的黑客qq号是多少 response.session_id = True
secure_loads 函式内容以下,在一連串破译後會用 pickle.loads 方式將破译内容反序列化,在這裡確定 cookie 内容會应用 Pickle 處理。[Ref]
# gluon/utils.py#L200
def secure_loads(data, encryption_key, hash_key=None, compression_level=None):
if ':' not in 完全免费帮助的黑客qq号是多少 data:
return None
if not hash_key:
hash_key = sha1(encryption_key).hexdigest()
signature, encrypted_data = data.split(':', 1)
actual_signature = hmac.new(hash_key, encrypted_data).hexdigest()
if not compare(signature, 完全免费帮助的黑客qq号是多少 actual_signature):
return None
key = pad(encryption_key[:32])
encrypted_data = base64.urlsafe_b64decode(encrypted_data)
IV, encrypted_data = encrypted_data[:16], encrypted_data[16:]
cipher, _ = AES_new(key, IV=IV)
完全免费帮助的黑客qq号是多少 try:
data = cipher.decrypt(encrypted_data)
data = data.rstrip(' ')
if compression_level:
data = zlib.decompress(data)
return pickle.loads(data) # <-- Bingo!!!
except Exception, e:
完全免费帮助的黑客qq号是多少 return None
因而,假如了解連線中用于数据加密 cookie 内容的 encryption_key,攻擊者就可以偽造 session cookie,進而运用 pickle.loads 實現遠端指令執行。
CVE-2016-3953
很幸運的,這樣發現 web2py 預設開啟的範例應用程式是应用 session cookie,並且有一個寫死的密鑰:yoursecret。[Ref]
# 完全免费帮助的黑客qq号是多少 applications/examples/models/session.py
session.connect(request,response,cookie_key='yoursecret')
因而,web2py 的使用人假如沒有手動關閉範例應用程式,攻擊者就可以立即在 http://[target]/examples/ 頁面發動攻擊获得主機实际操作權。
Proof of Concept
這樣嘗試用 yoursecret 作為 encryption_key 偽造一個合理合法的 session cookie,並將一個會執行系統命令 sleep 的物品塞进在其中。帶著此 session cookie 連入 完全免费帮助的黑客qq号是多少 web2py 官網範例應用程式(http://www.web2py.com/examples),情况以下:
當 *** 的物品會執行命令 sleep 3 時,網站回應时間為 6.8 秒
當 *** 的物品會執行命令 sleep 5 時,網站回應时間為 10.8 秒
確實會其實塞进的 session 完全免费帮助的黑客qq号是多少 cookie 值不一样而有一定的延遲,證明網站的確執行了(兩次)這樣偽造的物品内容。2
别的洩漏導致 RCE
除此之外,在 web2py 範例應用程式為了示範架构的特点,因而洩漏了許多环境變數。在其中有三個變數較為比较敏感,間接也會導致端指令執行,分别以下。
CVE-2016-3954
在 完全免费帮助的黑客qq号是多少 http://[target]/examples/simple_examples/status 頁面中,response 分頁内容洩漏了 session_cookie_key 值。这个值便是用來数据加密前边所介绍的 session cookie,配搭 CVE-2016-3957 Pickle 的問題可立即遠端指令執行。
無論使用人是不是自主变更 session_cookie_key,或者該值是系統隨機產生。此界面依然能够获得機敏資訊藉以导致危 害。
CVE-2016-3952
http://[target]/examples/template_examples/beautify 頁面洩漏了系統環境變數,當使用者是使用 standalone 版本時,管理者的密碼就會在環境變數裡出現。這個密免费帮忙的黑客qq号多少碼可登入 http://[target]/admin 管理介面,管理介面內提供方便的功能得以執行任意指令。
官方修復
Version 免费帮忙的黑客qq号多少 2.14.1 移除洩漏的環境變數。[Ref]
Version 2.14.2 使用不固定字串作為 session_cookie_key,並移除洩漏頁面。
# applications/examples/models/session.py
from gluon.utils import web2py_uuid
cookie_key = cache.ram('cookie_key',lambda: 免费帮忙的黑客qq号多少 web2py_uuid(),None)
session.connect(request,response,cookie_key=cookie_key)
總結
web2py 框架預設會開啟一個範例應用程式,路徑為 http://[target]/examples/。
由於這個應用程式使用 Pickle 來處理序列化的 session cookie,且因為加密字串為寫死的 yoursecret,任何人可竄改 session cookie 的內容,藉此進行 Pickle 命令執行攻擊。
該範例程式介面中也存在 session_cookie_key、管理者密碼洩漏問題,兩個都免费帮忙的黑客qq号多少會導致任意命令執行。除此之外,在這個應用程式中洩漏許多系統配置、路徑等資訊,有機會被拿來做進階攻擊。
在 2.14.2 版本後已經修復所有洩漏問題,當然更好的解決辦法就是關閉這個範例應用程式。
最後,來整理從開發者的角度在這個案例中該注意的要點:
小心處理序列化字串,使用者若有機會改變該字串值,有機會 *** 入未預期的惡意物件,造成惡意的結果。
正式產品中切記要移除任何跟開發相關的配置。
時間軸
2016/03/08 發現問題與其他研究
2016/03/09 回報官方 GitHub Issue2016/03/15 成功與開發者 email 聯繫
2016/03/15 官方修復管理者密碼洩漏問題 (CVE-2016-3952)
2016/03/25 官方修復其他弱點並發佈 2.14.2 版本
附註
其實 CVE-2016-3957 並非不安全的設計,在跟 CVE team 溝通的過程中發現 web2py 開始使用 *** ON 取代 Pickle [Ref],因此判定 免费帮忙的黑客qq号多少 web2py 認為目前的設計是不洽當的,給予此編號。後來官方因故將 Pickle 改了回來,不過在沒有洩漏加密字串的前提下已經是安全的了。 ↩
在自行架設的 web2py 環境中只會執行一次,沒有去細追 web2py 官方網站為何執行兩次。 ↩
[专业]据英国BBC网站消息,维基解密(WikiLeaks)网站周一披露大批据称来自美国中央情报局(CIA) *** 情报中心的文件和档案。先办事后付款的黑客在线请
*** 上的黑客暗语解决办法只有立即更换 *** 账号密码。另在使用 *** 时请注意免费帮忙的黑客qq号多少以下几点:1、请不要在网吧等公共场所登录 *** 或支付宝帐户,以免被自动记录账户或密码;2、请。
先办事后付款的黑客在线请具体操作我也不会,知乎大神写的帖子网页链接类似,看看有没有用bitlocker加密应该是系统用户自己实施的,且密码文件应该在本地盘上。可以参考大家在 *** 上分享的,强制解密bitlocke。
那些工具都是搞asp的!有注入点的~查查后台什么的!
黑客正在破解你的密码但是那些黑客们通常会用四种基本的 *** 得到你的密码:(1)直接询问,所谓的钓鱼和社会工程学的攻击仍然在进行,并且一直有效(现在应该。先办事后付款的黑客在线请
[专业]1、到非洲去旅行之前,一定要在国内打预防黄热病和疟疾的预防针并带上已打针的证明“黄皮书”,以及有关防治药品。治疟疾的药有:科泰新,青蒿琥脂片,我去过那里,环境确实不好,也没有怎样消费的,那些东西你可能不会喜欢,大部分都从中国进口的,地方很落后,治安也确定不怎样,街上都很脏和乱,如果是你们。
先办事后付款的黑客在线请专业的事情找交给专业去做这个要从很多方面来看。比如网站cms、网站服务器本身是否存在漏洞,或者通过攻击同ip网站来获取webshell。1.主要由于服务器配置等原因造成的信息泄露2。
标签:
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。