知道服务器具体音频地址。啥通过http访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知道服务器具体音频地址。啥通过http访问相关的知识,希望对你有一定的参考价值。

在使用http访问远程服务器前我们要先了解重点访问的步骤总的来说分为3点1.建立TCP连接(三步握手协议)第一次第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。2.发送HTTP协议HTTP协议的制定其中协议版本一般为 HTTP/1.x这里以HTTP/1.1为例他定义的请求方法一般有GET是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。POST用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URI所指定资源的附加新子项,Post被设计成用统一的方法实现下列功能:(1)对现有资源的解释(2)向电子公告栏、新闻组、邮件列表或类似讨论组发信息。(3)提交数据块(4)通过附加操作来扩展数据库HEAD向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。其他方法1.OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*'的请求来测试服务器的功能性。2.PUT:向指定资源位置上传其最新内容。3.DELETE:请求服务器删除Request-URI所标识的资源。4.TRACE:回显服务器收到的请求,主要用于测试或诊断。5.CONNECT:回显服务器收到的请求,主要用于测试或诊断。URL代表的是网址下面谈论头部域名称头部域名称详解HostRFC协议规定所有的HTTP请求必须携带Host头,即使Host没有值,也必须带上这个Host头附加一个空串,如果不满足,应用服务器应该抛出400 Bad Request。协议虽然这样规定,不过大部分网关或者服务器都比较仁慈,既然没有指定Host字段,那就给你默认加上一个。网关代理可以根据不同的Host值转发到不同的upstream服务节点,它常用于虚拟主机服务业务。所以我们也需要用到Host我们选择请求方法为GET下面根据图中的请求方法制定协议,假设我们只访问百度的官网那么,他的协议可以这样定义GET / HTTP/1.1\r\nHost:www.baidu.com\r\n\r\n3.发送连接请求,等待服务器响应在虚拟机中输入pingwww.baidu.com可以得到以下信息163.177.151.109就是服务器的地址在建立TCP通信的时候HTTP 服务器的默认端口为 : 80#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <string.h>int main()//1.创建网络通信对象int tcp_socket = socket(AF_INET, SOCK_STREAM, 0);if(tcp_socket < 0)perror("");return -1;elseprintf("tcp_socket creat ok\n");//2.连接服务器struct sockaddr_in addr;addr.sin_family = AF_INET;addr.sin_port = htons(80);addr.sin_addr.s_addr = inet_addr("163.177.151.109"); //设置百度服务器的 IP地址信息int ret=connect(tcp_socket,(struct sockaddr *)&addr,sizeof(addr));if(ret == 0)printf("连接成功\n");elseperror("");return -1;//HTTP 协议char *http = "GET / HTTP/1.1\r\nHost:www.baidu.com\r\n\r\n"; //协议的制定//发送请求给百度服务器ret=write(tcp_socket,http,strlen(http));printf("ret=%d\n",ret);while(1)//接收百度服务器的回应char buf[1024]=0;printf("等待服务器回应\n");read(tcp_socket,buf,1024);printf("%s\n",buf);12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758591234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859执行上面代码返回200 ok说明访问服务器成功文章知识点与官方知识档案匹配 参考技术A 在使用http访问远程服务器前我们要先了解重点访问的步骤
总的来说分为3点
1.建立TCP连接(三步握手协议)
第一次
第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
2.发送HTTP协议
HTTP协议的制定


其中协议版本一般为 HTTP/1.x
这里以HTTP/1.1为例
他定义的请求方法一般有
GET
是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。
POST
用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URI所指定资源的附加新子项,Post被设计成用统一的方法实现下列功能:
(1)对现有资源的解释
(2)向电子公告栏、新闻组、邮件列表或类似讨论组发信息。
(3)提交数据块
(4)通过附加操作来扩展数据库
HEAD
向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。
其他方法
1.OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*'的请求来测试服务器的功能性。
2.PUT:向指定资源位置上传其最新内容。
3.DELETE:请求服务器删除Request-URI所标识的资源。
4.TRACE:回显服务器收到的请求,主要用于测试或诊断。
5.CONNECT:回显服务器收到的请求,主要用于测试或诊断。

URL代表的是网址

下面谈论头部域名称
头部域名称详解
Host
RFC协议规定所有的HTTP请求必须携带Host头,即使Host没有值,也必须带上这个Host头附加一个空串,如果不满足,应用服务器应该抛出400 Bad Request。协议虽然这样规定,不过大部分网关或者服务器都比较仁慈,既然没有指定Host字段,那就给你默认加上一个。
网关代理可以根据不同的Host值转发到不同的upstream服务节点,它常用于虚拟主机服务业务。
所以我们也需要用到Host
我们选择请求方法为GET
下面根据图中的请求方法制定协议,假设我们只访问百度的官网
那么,他的协议可以这样定义
GET / HTTP/1.1\r\nHost:www.baidu.com\r\n\r\n

3.发送连接请求,等待服务器响应

在虚拟机中输入ping www.baidu.com可以得到以下信息163.177.151.109就是服务器的地址
在建立TCP通信的时候HTTP 服务器的默认端口为 : 80

#include <stdio.h>
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
int main()

//1.创建网络通信对象
int tcp_socket = socket(AF_INET, SOCK_STREAM, 0);
if(tcp_socket < 0)

perror("");
return -1;

else
printf("tcp_socket creat ok\n");


//2.连接服务器
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.s_addr = inet_addr("163.177.151.109"); //设置百度服务器的 IP地址信息

int ret=connect(tcp_socket,(struct sockaddr *)&addr,sizeof(addr));
if(ret == 0)

printf("连接成功\n");

else

perror("");
return -1;


//HTTP 协议
char *http = "GET / HTTP/1.1\r\nHost:www.baidu.com\r\n\r\n"; //协议的制定

//发送请求给百度服务器
ret=write(tcp_socket,http,strlen(http));
printf("ret=%d\n",ret);

while(1)

//接收百度服务器的回应
char buf[1024]=0;
printf("等待服务器回应\n");
read(tcp_socket,buf,1024);
printf("%s\n",buf);



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
执行上面代码返回200 ok说明访问服务器成功


文章知识点与官方知识档案匹配
参考技术B 5、无状态:HTTP协议是无状态协议。即每一个HTTP请求都是独立的。万维网服务器不保存过去的请求和过去的会话记录。这就是说,同一个用户再次访问同一个服务器时,只要服务器没有进行内容的更新,服务器的响应就给出和以前被访问时相同的响应。服务器不记录曾经访问过的用户,也不记录某个用户访问过多少次。1、支持客户/服务器模式。一旦建立了运输连接(这常常称为建立了会话),浏览器端就向万维网服务器端发送HTTP请求,服务器收到请求后给出HTTP响应。
  2、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  3、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  4、HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象,采用这种方式可以节省传输时间。
参考技术C 当创建文件系统后,您需要将文件系统挂载至云服务器上,在为root用户创建一个本地目录。如已成功挂载文件系统,可跳过此章节。请记录步骤4的本地目录后,按照为每个用户创建有读写权限的子目录执行操作。确定云服务器操作系统类型,不同操作系统安装NFS客户端的命令不同。已完成创建文件系统,并获取到文件系统的挂载地址。选择与文件系统所属VPC相同的云

调用接口出错后,将不会返回结果数据。调用方可根据每个接口对应的错误码来定位错误原因。当调用出错时,HTTP请求返回一个 4xx或5xx的HTTP状态码。返回的消息体中是具体的错误代码及错误信息。在调用方找不到错误原因时,可以联系华为云客服,并提供错误码,以便我们尽快帮您解决问题。当接口调用出错时,会返回错误码及错误信息说明,错误响应的Bo
参考技术D 知道服务器具体音频地址,可以复制地址,在浏览器地址栏中输入服务器具体音频地址,如果服务器支持直接访问,你将可以看到音频下载界面,如果不允许访问则网页无法打开。

Vulnhub

听说练习Vulnhub靶机,可以提升一些提权的小技巧,前来练习。

先使用nmap扫描一下,知道了靶机IP地址,以及开放的端口服务(ftp、ssh、http)

image-20210604221058910

访问http服务看看有没有什么可以GetWebshell的点,但是有点空没啥可以利用的

image-20210605002946390

于是使用dirsearch工具扫描后台目录,发现有一个hidden_text文件是之前没看到的,这个文件名是通过别人的wp才知道的(吐槽一下:Vulnhub总有一些奇奇怪怪的文件名是我找不到的)

image-20210604221011406

访问后发现是一个二维码,使用QR Research扫描工具获取信息

image-20210604221306470

里面是一个sh脚本(如下),此时我们获取的一个可以登陆ftp服务的账号

#!/bin/bash

HOST=ip
USER=userftp
PASSWORD=ftpp@ssword

ftp -inv $HOST user $USER $PASSWORD
bye
EOF

登录ftp服务器,看到两个文件information.txtp_lists.txt,下载下来并查看

image-20210604232528871

information.txt可以知道用户名,而p_lists.txt得到一密码本,用于爆破

image-20210604232817382

这里使用Railgun工具对密码进行爆破,获得一组用户名密码(robin/k4rv3ndh4nh4ck3r)

image-20210604233113476

通过ssh登录到用户,获得了第一个flag文件,接下来就是提权的步骤了

image-20210604233228923

通过命令sudo -l发现robin用户可以以jerry执行project/feedback.sh,关于Sudo相关命令可以查看:https://www.runoob.com/linux/linux-comm-sudo.html

image-20210605002337744

查看脚本,可以看到第二次输入的feedback值,会和接下来的2>/dev/null拼起来,如果feedback赋值/bin/bash将得到一个类似shell窗口

image-20210605004129182

通过命令sudo -u jerry project/feedback.sh执行,获得jerry的shell,并且发现它存在docker

image-20210605002417462

对此可以直接尝试docker提权,命令为docker run -v /:/mnt --rm -it alpine chroot /mnt sh,查看各种提权的网址:https://gtfobins.github.io/

image-20210605002740037

至此,我们拿到了靶机上的所有flag文件

以上是关于知道服务器具体音频地址。啥通过http访问的主要内容,如果未能解决你的问题,请参考以下文章

wsdl地址是啥意思?是不是可以通过浏览访问?为啥别人可以通过浏览器访问,我的不行 ,求高手解答

HTTP协议

服务器常见页面访问返回错误信息(404 500 400)表示啥意思

服务器常见页面访问返回错误信息(404 500 400)表示啥意思

SVN服务器只能通过ip访问!不能通过服务器的主机名访问。具体情况如下:

Vulnhub