进一步理解http,通过sockek发起http协议格式请求
发布时间:2022-11-30 00:46:06 180 相关标签: # html# php# java# linux# 数据
很多时候hook http 抓不到包也许是人家通过socket完成的,这socket也给了我很大启发,以后搞c代码加密的时候用jni调用socket也是可以完成一定的伪装工作的.
抓包
记性不够好,记不住怎么写的了,我觉得是可以理解的,我无法理解那些让我口述原理的面试官,我的记忆有问题,那么我的搬运能力就不一定有问题,有时候我的记忆只是关联一下,很多东西要做的时候不理解完全可以搜索到我之前巩固的东西,然而面试官需要你当时能清楚的描述一件事物,对我来说非常痛苦,简直跟以前考试一样不爽。
j先完成抓包工作
请求头信息
GET /about/ HTTP/1.1
Host: qssq666.cn
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://qssq666.cn/2017/06/01/%E6%96%B0%E5%8A%A8%E6%80%81/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Cookie: Uxxxxxxxxxx不告诉你
If-Modified-Since: Sat, 19 May 2018 14:34:23 GMT
响应头信息
HTTP/1.1 304 Not Modified
Date: Sat, 26 May 2018 10:32:13 GMT
Via: 1.1 varnish
Cache-Control: max-age=600
Expires: Fri, 25 May 2018 22:30:08 GMT
Age: 9
Connection: keep-alive
X-Served-By: cache-hnd18729-HND
X-Cache: HIT
X-Cache-Hits: 2
X-Timer: S1527330733.027674,VS0,VE0
Vary: Accept-Encoding
X-Fastly-Request-ID: 38bcf151abc24985031263ebd6db1a5c1d82c091
image.png
模拟常规get的操作
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class SocketTest {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("www.qssq666.cn", 80);// ip地址或者域名
// 端口号,如果是https则是443
// 接受数据的输入流
final BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 发送数据 输出流
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
bw.write("GET /about/ HTTP/1.1");
bw.write("\n");
bw.write("Host: qssq666.cn");
bw.write("\n");
bw.write("Connection: Keep-Alive");
bw.write("\n");
bw.write("\n");
bw.flush();
System.out.println("execute....");
while (true) {
String line = null;
try {
// System.out.println("========readLineStart=======");
while ((line = br.readLine()) != null) {
System.out.println("" + line);
}
// System.out.println("========readLineEnd=======");
} catch (IOException e) {
System.err.println("出现异常:" + e.toString());
e.printStackTrace();
}
// System.out.println("========================");
}
}
}
需要注意的问题就是每一行写入都需要换行,这个和抓包发现的格式是差不多的,最后是头部请求完毕之后再补上一个换行否则也不会成功。会一直等待响应
image.png
吃完饭用php写个本地的post参数的接受。然后再发一下post的手写
文章来源: https://blog.51cto.com/u_15458814/5882895
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报