web的一些学习
web应用
1、网站搭建前置知识:
要求:服务器、域名、中间件、数据库(要注意端口设置)
域名:例如:www.baidu.com,就称为域名,需要购买
子域名:test.baidu.com,这个就是子域名
dns:域名系统。它作为将域名和IP地址相互映射的一个分布式数据库(啊,所以是数据库嘛),能够使人更方便地访问互联网
http/https:这个不用多说了吧,超文本传输协议(从高中就认识了,是初恋呢(?))。运用的是tcp的连接哦,如果不熟悉tcp经典四次握手快去熟悉一下吧。HTTP使用TCP而不是UDP的原因在于(打开一个)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。基于HTTP协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。(port:80)
而https比http安全一些,HTTPS实际上应用了Netscape的安全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)
区别:
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。
其他的和http是同一个流程哦
证书(ssl):是一种web应用的安全协议。包括:服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上的数据保密性。
架构框架
开发语言:asp、php、aspx、jsp、Java、python、ruby、go、html、JavaScript
程序源码:根据开发语言分类、应用类型分类、开源cms分类、开发框架分类等
中间件容器:iis、Apache、Nginx、Tomcat、Weblogic、Jbose、glasshfish
数据库类型:Access、Mysql、Mssql、Oracle、db2、Sybase、Redis、Mongodb
服务器操作系统:Windows系列、Linux系列、Mac系列
第三方软件:phpmyadmin、vs-ftpd、VNC、ELK、Openssh
神奇工具:baota,集成化工具,懒人必备
漏洞
常见的漏洞有:sql注入、文件安全、RCE执行、XSS跨站、CSRF/SSRF/CRLF、反序列化、逻辑越权、未授权访问、XXE/XML、弱口令安全
HTTP数据包
要点一:重放数据包操作(新浪新闻不能重复点赞,怎么办呢?重放数据包试试看!)
这里也许应该插个DNS域名解析流程哦。(划重点)
假设遇到一个陌生的域名,那么将会有以下流程:
首先,浏览器会先搜索浏览器自身的dns缓存(是浏览器,不是计算机哦)
如果搜索不到,或者缓存过期了,那么就会向上一级搜索,也就是计算机本机的缓存+host解析
如果很不巧,出现了相同的情况,那么就要再向上一级求助,即本地区域名服务器解析(俗称LDNS),这个一般都是电信运营商提供。一般到这里就可以解决大部分的域名请求问题了。但也只是大部分。
如果今天很倒霉,就连LDNS都没有怎么办呢?
老样子,会向其他的服务器发送请求,根服务器(Root Server)。根服务器并不会直接在本地搜索域名,但是它会返回给本地域名服务器一个所查询的主域名服务器(gLTD),这个已经是最顶级,国际级别的了 ,如.com、.cn等。(返回给LDNS,其实就是给LDNS指路)
LDNS得到信息,就会去向gLTD发送请求。gLTD接收后,就会查询并返回一个对应的Name Server域名服务器地址。这个地址一般就是这个域名申请所在的提供商的地址(比如你要搜索一个在阿里云申请的域名,那么gLTD就会返回给你一个阿里云服务的地址。)
LDNS接着就往这个地址(也就是name server地址)发送请求,服务器查询存储的域名和ip的映射关系表。查询到后,会将对应的IP和TTL值(这个TTL就是缓存过期时间)返回给LDNS,LDNS再返回给用户。用户根据TTL值缓存在本地,结束。
好像跑题了。那么就说回数据包。
数据包,顾名思义,就是有数据的一个集合。在通信过程中,分会请求数据包和响应数据包。
请求数据包一般有请求行、请求头、空行(用于隔开请求头与请求体)、请求体
而响应数据包一般有状态行、响应头、空行、响应正文
小实验:通过burpsuite学会耍赞(这可太有趣了)
简单来说:burpsuite抓到点赞数据包,挪到repeater,反复发送。仅限一些不用登录就可以点赞的页面哦,因为这个身份没有限制,其他的就不一样了。这个就是重放数据包
要点二:自定义UA头(其实就是访问浏览器的身份表示啦,比如是pc还是安卓还是ios)
UA头不多说(其实括号也概括了,虽然不够准确),做个小实验:让pc上显示Android的页面。
先抓个包,对比看看:
电脑上:User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
Android:Mozilla/5.0 (Linux; Android 9; ASUS_I005DA Build/PI) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.70 Mobile Safari/537.36
步骤概括:先抓双方的包,如果想修改pc的就抓Android的,抓完后复制数据包内容。再用pc访问目标网址,抓包,将抓到的包的内容修改为Android的,再放掉。虽然被403,但是反过来很成功啊
温馨提示:如果改不出,可以修改ua头,发现会有一样的效果哦
重点三:扫描目录。这个时候应该怎么办?看到网址好像一个文件目录的形式,可以试一试进行一些操作:
xxx/xxx/12,退回到xxx/xxx,再用repeater,发现有一些3开头,如果再加上/,就是403状态码,那就是有。再发送到intruder,调整一下,让它帮我们爆破,看结果得到目录。
代理服务器
ip138.com查看ip
换IP需要去购买,快代理什么的
本地代理和买的网站代理不一样(划重点)