Dasctf2024
这周把上周的dasctf复现一二。
DASCTF2024 暑期挑战赛
Sanic’s revenge
看了一下官方wp(https://www.cnblogs.com/gxngxngxn/p/18205235),一脸糊,什么叫污染file_or_directory到根目录
翻到了exp
1 | import requests |
再次看看原码
1 | app = Sanic(__name__) |
创建一个Sanic应用。传递__name__作为应用名称。在这个上下文中,__name__是一个特殊变量,它表示当前模块的名称。如果模块是直接执行的,则__name__的值为'__main__'
配置静态文件路由,将URL路径/static映射到本地文件夹./static。
async def用于定义异步视图处理函数。
def create_log_dir(suffix: int) -> str:
create_log_dir:这是我们定义的函数名。
suffix: int:这是函数的参数,suffix 是一个整数,用于在日志目录名称中添加唯一的后缀。
-> str:这是函数的返回类型注解,表示函数将返回一个字符串(即创建的目录的路径)。
方法
- 通过xxx查看注册的路由。源码
……
其他
__class__:这是 Python 中任何对象的一个特殊属性,它指向对象的类。
__init__:这是 Python 类中的初始化方法。当类实例化时,会调用这个方法。
__globals__:这是 Python 中的一个属性,返回当前作用域的全局变量字典。在类方法中,它可以用于访问和修改全局变量。
app.router.name_index:这是 app 对象的一个属性,通常与 Sanic 应用的路由系统相关。name_index 存储路由信息的字典。
__mp_main__:这是在多进程环境下,__main__ 模块的一个特殊属性。它通常在某些复杂的对象序列化或操作中出现。
static.handler.keywords.directory_handler.directory_view:是一个相对较复杂的属性路径,涉及到静态文件处理和目录视图。directory_handler 可能是一个处理目录的对象,directory_view 则可能与目录视图相关。调试。
__file__:这是一个特殊属性,指向当前模块的文件路径。它用于获取当前执行的脚本文件的路径。