纯sh + telnet中的HTTP POST文件:无卷曲,无wget

问题描述 投票:0回答:1

[我正在使用旧的android设备(如果您想知道的话,wiko Rainbow up 4G Android 5.1),并且唯一有效的方法是telnet(busybox中的wget仅具有--post-data(没有--post-文件),curl似乎无法安装(我花了几个小时尝试安装))

我正在尝试通过http POST将screen.png发送到http服务器。

我用下面的代码在纯远程登录中处理小型文本或json文件(也花了几个小时。)>

但是当我处理较大的文件时,例如png图像或hexdump。这不起作用。

我怀疑这是由于文件中存在特殊字符所致。我认为这可能会迫使telnet退出

这个问题很棘手,我被困住了,但我希望你们中的一个愿意挑战这个挑战,通过telnet的http png图片

这是我用于测试的示例服务器端代码:https://gist.github.com/taterbase/2688850

FILE_TO_UPLOAD="./file.txt"
BOUNDARY=$((  RANDOM % 99999 ))
HOST="server.com"
POST_PATH="/upload.php"
FIELD_NAME="uploaded_file"
TLNET_CONTENT="-----------------------------$BOUNDARY
Content-Disposition: form-data; name=\"$FIELD_NAME\"; filename=\"$(basename $FILE_TO_UPLOAD)\"

$(cat $FILE_TO_UPLOAD)
-----------------------------$BOUNDARY--"
TLNET_HEADERS="POST $POST_PATH HTTP/1.1
Host: $HOST
Content-Type: multipart/form-data; boundary=---------------------------$BOUNDARY
Content-Length: $(($(expr length "$TLNET_CONTENT") + 100 ))
Connection: keep-alive"

TELNET_ALL="$TLNET_HEADERS

$TLNET_CONTENT

"

telnet $HOST 80 <<AREALEOF
$TELNET_ALL
AREALEOF

谢谢你,托马斯。

[我正在使用旧的android设备(如果您想知道的话,wiko Rainbow up 4G Android 5.1),并且唯一有效的方法是telnet(busybox中的wget仅具有--post-data(没有--post-文件),卷曲...

http post sh telnet
1个回答
0
投票

HTTP需要请求行,标头行以及将标头与正文分隔为以CR / LF对结尾的空行,而不仅仅是换行。

© www.soinside.com 2019 - 2024. All rights reserved.