因此,基本上,我正在尝试编写一系列与Dot-Net Nuke交互的脚本。我一直在分析流量,现在可以登录并执行一些基本任务了。然而,我从未用curl处理过二进制文件上传。有人愿意看看这个来帮助我吗?以下是请求的解剖结构:
http://pastebin.com/qU8ZEMaQ
到目前为止,我对卷曲的了解如下:
http://pastebin.com/LG2ubFZG
编辑:对于懒惰-
文件的长度已实现并存储在length中
STUFF只是带有参数的请求URL的复制/粘贴,减去URL本身。
curl -L --cookie ~/.cms --data-binary "@background.jpg"
--header "Content-Length: $LENGTH"
--header "Content-Disposition: form-data"
--header "name="RadFileExplorer1_upload1file0""
--header "Content-Type: image/jpg"
--header "Filename="background.jpg""
--data $STUFF
--referer "Kept-Secret"
"Kept-Secret"
您不需要--header"Content-Length:$Length"。
curl—请求POST—数据二进制文件"@template_entry.xml"$URL
请注意,GET请求不广泛地支持内容正文。
还要记住POST请求有两种不同的编码模式。这是第一种形式:
$nc-l-p 6666&$curl—请求POST—数据二进制文件"@README"http://localhost:6666POST/HTTP/1.1用户代理:curl/7.21.0(x86_64-pc-linux-gnu)libcurl/7.21.0OpenSSL/0.9.8o-zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6主机:localhost:6666接受:*/*内容长度:9309内容类型:application/x-www-form-urlencoded预期:100继续..-*-模式:rst;编码:cp1251;填充柱:80-*-..rst2html.py自述自述.html..内容:
你可能会要求这个:
-F/--表单名称=内容(HTTP)这允许curl在用户已经按下了提交按钮。这导致curl使用Content-Type POST数据根据RFC2388的多部分/表单数据。这允许上载二进制文件等。要强制"content"部分为文件,在文件名前面加前缀带有@符号。若要仅从文件,在文件名前面加上符号<。这个@和<那么,@就做出了文件被附加在帖子中作为文件上传,而<创建一个文本字段,然后获取文件中该文本字段的内容。