1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
# -*- encoding: utf-8
'''
@File : src.py
@Time : 2025/03/29 01:10:37
@Author : LamentXU
'''
import flask # 导入Flask模块,用于创建Web应用
import sys # 导入sys模块,用于系统相关的操作
enable_hook = False # 定义全局变量enable_hook,用于控制是否启用审计钩子
counter = 0 # 定义全局变量counter,用于记录触发审计钩子的次数
def audit_checker(event, args): # 定义审计钩子函数
global counter
if enable_hook: # 如果启用了审计钩子
if event in ["exec", "compile"]: # 如果事件是exec或compile
counter += 1 # 增加计数器
if counter > 4: # 如果计数器超过4
raise RuntimeError(event) # 抛出RuntimeError异常
# 定义一个列表,包含许多被禁止的关键词和字符串,这些内容可能被用于危险操作或漏洞利用
lock_within = [
"debug", "form", "args", "values",
"headers", "json", "stream", "environ",
"files", "method", "cookies", "application",
'data', 'url' ,'\'', '"',
"getattr", "_", "{{", "}}",
"[", "]", "\\", "/","self",
"lipsum", "cycler", "joiner", "namespace",
"init", "dir", "join", "decode",
"batch", "first", "last" ,
" ","dict","list","g.",
"os", "subprocess",
"g|a", "GLOBALS", "lower", "upper",
"BUILTINS", "select", "WHOAMI", "path",
"os", "popen", "cat", "nl", "app", "setattr", "translate",
"sort", "base64", "encode", "\\u", "pop", "referer",
"The closer you see, the lesser you find." # 作者的幽默注释
]
app = flask.Flask(__name__) # 创建Flask应用实例
# 定义根路由,返回简单的欢迎信息
@app.route('/')
def index():
return 'try /H3dden_route' # 提示用户尝试访问隐藏路由
# 定义隐藏路由,处理用户请求
@app.route('/H3dden_route')
def r3al_ins1de_th0ught():
global enable_hook, counter # 使用全局变量
name = flask.request.args.get('My_ins1de_w0r1d') # 从请求参数中获取特定参数
if name: # 如果获取到参数
try:
# 检查参数是否以特定前缀开头
if name.startswith("Follow-your-heart-"):
# 检查参数是否包含禁止的关键词
for i in lock_within:
if i in name:
return 'NOPE.' # 如果包含禁止内容,返回错误信息
enable_hook = True # 启用审计钩子
# 使用Flask的render_template_string方法渲染字符串内容
a = flask.render_template_string('{#'+f'{name}'+'#}')
enable_hook = False # 禁用审计钩子
counter = 0 # 重置计数器
return a # 返回渲染结果
else:
return 'My inside world is always hidden.' # 返回错误信息
except RuntimeError as e: # 捕获RuntimeError异常
counter = 0 # 重置计数器
return 'NO.' # 返回错误信息
except Exception as e: # 捕获其他异常
return 'Error' # 返回错误信息
else:
return 'Welcome to Hidden_route!' # 返回欢迎信息
# 主程序入口
if __name__ == '__main__':
import os # 导入os模块
try:
# 尝试导入并删除_posixsubprocess模块中的fork_exec函数
import _posixsubprocess
del _posixsubprocess.fork_exec
except:
pass # 如果失败,忽略错误
# 删除os和subprocess模块中的多个函数,限制代码执行环境
import subprocess
del os.popen
del os.system
del subprocess.Popen
del subprocess.call
del subprocess.run
del subprocess.check_output
del subprocess.getoutput
del subprocess.check_call
del subprocess.getstatusoutput
del subprocess.PIPE
del subprocess.STDOUT
del subprocess.CalledProcessError
del subprocess.TimeoutExpired
del subprocess.SubprocessError
# 添加审计钩子
sys.addaudithook(audit_checker)
# 启动Flask应用,指定主机和端口
app.run(debug=False, host='0.0.0.0', port=5000)
|