第2天:基础入门-Web应用&架构搭建&漏洞&HTTP数据包&代理服务器

AffettoIris 2023-10-3 2,673 10/3

阿里云买云服务器

第2天:基础入门-Web应用&架构搭建&漏洞&HTTP数据包&代理服务器

购买云服务器,有个“网络和安全组”,表示如果你有多个服务器,你可以把它们归类到同一个组,组里的服务器们共享安全策略:

第2天:基础入门-Web应用&架构搭建&漏洞&HTTP数据包&代理服务器

建站前置知识

网站包括:开发语言、程序源码、中间件容器、数据库类型、服务器操作系统、第三方软件(如phpmyadmin,vs-ftpd,VNC,ELK,Openssh等)。

phpMyAdmin是基于PHP 开发的基于B/S模式的 管理MySQL 的软件。

中间件容器

IIs,Apache,Nginx,Tomcat,Weblogic,Jboos,glasshfish等.

不同的中间件对不同功能或不同源码的网站,支持性上的优势有大有小,所以会有Mysql数据库搭配php脚本的程序,SQlServer数据库搭配asp / aspx脚本、IIS多搭配ASP / ASPX;apache则搭配php居多。tomcat是jsp居多。

WEB应用安全漏洞分类

SQL注入,文件安全(包括文件上传、下载、删除等),RCE执行,XSS跨站,CSRF/SSRF/CRLF,反序列化,逻辑越权,未授权访问,XXE/XML,弱口令安全等。我们学的漏洞,大部分是产生于程序源码层面。

WEB请求返回过程数据包格式

HTTP协议通信过程:浏览器建立与web服务器之间的连接——>发送请求数据包——>返回响应数据包——>web服务器关闭连接

请求数据包

1.请求行:请求类型/请求资源路径、协议的版本和类型

2.请求头:一些键值对,一般由w3c定义,浏览器与web服务器之间都可以发送,表示特定的某种含义

Accept:指浏览器或其他客户可以接爱的MIME文件格式。Servlet可以根据它判断并返回适当的文件格式。

User-Agent:是客户浏览器名称

Host:对应网址URL中的Web名称和端口号。

Accept-Langeuage:指出浏览器可以接受的语言种类,如en或en-us,指英语。

connection:用来告诉服务器是否可以维持固定的HTTP连接。http是无连接的,HTTP/1.1使用Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接

Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能。

Referer:表明产生请求的网页URL。如比从网页/icconcept/index.jsp中点击一个链接到网页/icwork/search,在向服务器发送的GET/icwork/search中的请求中,Referer是http://hostname:8080/icconcept/index.jsp。这个属性可以用来跟踪Web请求是从什么网站来的。

Content-Type:用来表名request的内容类型。可以用HttpServletRequest的getContentType()方法取得。

Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是ISO-8859-1.

Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到Web响应之后先解码,然后再检查文件格式。

3.【空行】请求头与请求体之间用一个空行隔开;

4.请求体:要发送的数据(一般post方式会使用);例:userName=123&password=123&returnUrl=/

POST /contentapi/content/interaction/praise HTTP/1.1
Host: api.thepaper.cn
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0
Accept: application/json
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/json
Content-Length: 42
Origin: https://www.thepaper.cn
Connection: close
Referer: https://www.thepaper.cn/
Cookie: acw_tc=ac11000116963221537402688e008af4a1b3b8114969229ab72ac11347fcb5; ariaDefaultTheme=undefined
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site

name=name&age=11

响应数据包

1.状态行:协议版本、数字形式的状态代码和状态描述,空格分隔

常见状态码

1**:提示信息-表示请求已收到,继续处理

2**:发送成功(200)

3**:重定向

301 状态码表明目标资源被永久的移动到了一个新的 URI,任何未来对这个资源的引用都应该使用新的 URI。

302 临时跳转,跳转的地址通过Location指定

4**:客户端错误

  400.客户端请求有语法错误,不能被服务器识别

  401.访问页面没有授权,侧重于身份未认证,例如用户没登陆账号,尝试访问管理员权限的api时

  403.没有权限访问该页面,侧重于服务器资源不给看

  404.没有该页面

5**:服务端错误

  500.服务器内部异常

  504.服务器请求超时,没有返回结果

2.响应头:包含服务器类型、日期、长度、内容类型等

3.【空行】响应头与响应体之间用空行隔开

4.响应正文:程序处理后果,浏览器会将实体内容中的数据取出来,生成相应的页面

HTTP/1.1 200 OK
Date: Tue, 03 Oct 2023 08:36:03 GMT
Content-Type: application/json;charset=UTF-8
Connection: close
Access-Control-Allow-Origin: https://www.thepaper.cn
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: *
Access-Control-Max-Age: 18000
Access-Control-Allow-Headers: Content-Type,h5Token,h5From,Client-Type
PAPER-REQUEST-ID: aec9a3e281923f2c
Strict-Transport-Security: max-age=31536000
Content-Length: 61

{"code":200,"data":1407,"desc":"æå","time":1696322163648}

burp抓包

我的电脑ip是1.2.3.4,我在电脑上启动了手机模拟器,将模拟器的网络代理设置为了1.2.3.4:8080,然后在电脑上启动burpsuite,并让burpsuite监听127.0.0.1:8080,但是burpsuite抓不到模拟器的数据包,如果让burpsuite监听1.2.3.4:8080,则burpsuite能抓到模拟器的数据包,为什么

127.0.0.1被称为本地回环地址(loopback), 本地回环地址主要用于网络软件测试以及本地机进程间通信,一旦使用回环地址发送数据,协议软件立即返回,不进行任何网络传输。

当您将burpsuite监听127.0.0.1:8080时,burpsuite将仅监听在本地回环地址上,即只接受来自本机的网络请求。因此,当模拟器尝试将请求发送到1.2.3.4:8080时,burpsuite将无法接收到这些请求。

状态码

文件夹 403存在 404不存在
文件 200存在 / 403存在 404不存在

chmod 777 文件夹,网页访问文件夹依旧是403

代理

解惑

为什么用https://ip138.com/、百度的查IP和php的检测访客IP的代码等手段,得到的结果是:

第2天:基础入门-Web应用&架构搭建&漏洞&HTTP数据包&代理服务器

这个60开头不是我的本机真实IP:192.168.28.59,其实60.27.158.186是我的网关,也就是我的网络代理。我的电脑是在内网,IP:192.168.28.59在每个内网都可能有。我每次请求网页,都是请求包from me to 网关 to 服务器,对于服务器来说,他能追查到的最后一个公网IP就是我的代理(网关)IP,再往后,连网关也不知道192.168.28.59是来自哪个内网。

所以,连接同一局域网的多台设备,对于服务器记录日志来说,是同一IP,这也是有点赞功能的网页,不方便限制同一IP只能点赞一次的原因吧。

代理服务提供商

需求小的代理可以用一元机场:

第2天:基础入门-Web应用&架构搭建&漏洞&HTTP数据包&代理服务器

需求大、专业可以用快代理

第2天:基础入门-Web应用&架构搭建&漏洞&HTTP数据包&代理服务器

老师根据提示 - 设置道代理和设置其他代理P一样,把tp3128.kd1pi.com作为代理的1P,把15818作为代理的端口即可,设置完就可以正常使用了,配置了浏览器或网络的代理,然后每次访问网站,IP都在变化:

第2天:基础入门-Web应用&架构搭建&漏洞&HTTP数据包&代理服务器 第2天:基础入门-Web应用&架构搭建&漏洞&HTTP数据包&代理服务器

代理的作用

如果网站把我的IP拉黑了,我开个代理,继续访问。

或者用目录扫描工具扫描网站,同一个IP短时间内请求1000次,多容易被封禁,不如让扫描,每10次请求换一个IP。这样网站来不及封你,刚知道你的IP我就换IP了。

一般我也不是天天都需要用到代理,快代理的按量付费就很适合安全人员的偶尔短期内有高需求,用到的时候再买,一个小时也就¥10内。

代理其他用途:薅羊毛党需要注册多个账号,官方常常限制同一IP注册多个账号;投票也会根据IP限制投票次数。

有相关技术能查到请求是否来自代理服务器,不过鲜有。

- THE END -

AffettoIris

10月16日15:15

最后修改:2023年10月16日
1

共有 0 条评论