JAVA-Exploit编写(5)--http-request库使用
目录
1.http-request简介
2. 依赖导入
3. GET请求方式
3.1 test.php
3.2 基本使用代码实现
3.2 请求时请求参数URL编码实现
3.3 携带多参数请求
3. Post请求方式
3.1 基本使用
3.2 携带单个参数请求
3.3 携带多个参数请求
4. 设置代理请求
4.1 方式一
4.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. GET请求方式
3.1 test.php
<?php
var_dump($_REQUEST);
3.2 基本使用代码实现
相比于之前,实现是不是简单了很多
package com.deger.HttpRequest;
import com.github.kevinsawicki.http.HttpRequest;
public class HttpRequestTest {
public static void main(String[] args) {
//发送一个GET请求
HttpRequest httpRequest = HttpRequest.get("http://127.0.0.1/test1.php?username=admin");
//打印响应内容
System.out.println(httpRequest.toString());
//打印响应码
System.out.println(httpRequest.code());
//打印响应体
// System.out.println(httpRequest.body());
}
}
3.2 请求时请求参数URL编码实现
//没有编码请求
HttpRequest httpRequest = HttpRequest.get("http://127.0.0.1/test1.php?username=小鱼");
//url编码 在参数后增加一个true
HttpRequest httpRequest = HttpRequest.get("http://127.0.0.1/test.php?username=小鱼", true);
没有编码情况
编码情况下:
3.3 携带多参数请求
只需要在请求后添加参数即可
HttpRequest httpRequest = HttpRequest.get("http://127.0.0.1/test.php?username=小鱼", true,"age","21");
3. Post请求方式
3.1 基本使用
只改变了调用的方法为post
HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/test.php?username=小鱼");
3.2 携带单个参数请求
HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/test.php").form("username","admin");
3.3 携带多个参数请求
Map<String,String> data = new HashMap<>();
data.put("sex","男");
data.put("age","21");
data.put("username","小鱼");
HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/test.php").form(data);
4. 设置代理请求
4.1 方式一
通过下面这种方式在我自己的电脑使用是没有用的,同规格burp无法抓到包,目前没有发现原因,可以尝试使用一下.
System.setProperty("proxyHost","127.0.0.1");
System.setProperty("proxyPort","8888");
//http头信息
HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/test.php")
.connectTimeout(5*1000)
.readTimeout(5*1000)
.form(data);
4.2 方式二
通过在另一种方式找到解决方案,设置.useProxy("127.0.0.1", 9999)属性
注意:.form(data);需要放到所有的参数后,不然会出现报错
//http头信息
HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/test.php")
.useProxy("127.0.0.1", 9999)
.connectTimeout(5*1000)
.readTimeout(5*1000)
.header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3")
.form(data);