目录
基础入门
一、基础入门-Web 应用-域名上的技术要点
#域名差异-主站&分站&端口站&子站
域名的定义
域名(Domain Name)是互联网上用来识别和访问网站的一个独特名称。它是一个易于记忆的地址,用于代替IP地址(如192.168.1.1),使得用户能够更方便地访问互联网上的资源。域名系统(DNS)负责将域名转换为IP地址,以便计算机能够理解和处理。
域名的组成
一个域名通常由以下几个部分组成:
-
顶级域名(TLD):最右边的部分,如.com、.org、.net、.cn等。
-
二级域名:位于顶级域名之前,通常是公司或组织的名称,如moonshot在moonshot.cn中。
-
子域名:位于二级域名之前,用于进一步细分服务,如www在www.moonshot.cn中。
域名的注册流程
-
选择域名:确定您想要注册的域名,确保它未被注册且符合您的业务或个人需求。
-
选择注册商:选择一个可靠的域名注册商,如GoDaddy、Namecheap等。
-
检查域名可用性:在注册商的网站上检查您选择的域名是否可用。
-
注册域名:如果域名可用,按照注册商的指示完成注册流程,包括填写个人信息和支付注册费用。
-
域名管理:注册成功后,您将获得域名的管理权限,可以设置DNS记录、更新注册信息等。
-
域名续费:域名注册通常不是永久的,需要定期续费以保持域名的所有权。
注意事项
-
域名的唯一性:一旦域名被注册,其他人就不能再注册相同的域名。
-
域名的保护:保护您的域名不被滥用或盗用非常重要,定期检查注册信息和续费状态。
-
隐私保护:一些注册商提供隐私保护服务,可以隐藏您的个人信息,防止被公开。
1 主站 、
www.xiaodi8.com:80 php 47.75.212.155
2 分站 、
blog.xiaodi8.com 47.242.212.243 47.75.212.155
主站和分站可能放在一个服务器上,主站难以下手时可以从分站入手,分站会对主站造成影响
3 端口站 、
www.xiaodi8.com:88 java
http:80
https:443
4 目录站 、
5、子站
123.blog.xiaodi8.com
二、基础入门-Web 应用-源码上的技术要点
#源码差异-结构&语言&框架&闭源&加密
源码目录结构对应
后台目录,文件目录,逻辑目录,前端目录,数据目录,配置文件等
-
后台目录(Backend Directory):
-
后台目录通常包含服务器端的代码和资源,这些代码负责处理业务逻辑、数据库交互、API服务等。
-
示例:一个Web应用的后台目录可能包含api/, controllers/, models/, services/等子目录。
-
-
文件目录(File Directory):
-
文件目录是指存储静态文件的地方,如图片、文档、视频等。
-
示例:在Web应用中,文件目录可能是public/或static/,包含images/, css/, js/等子目录。
-
-
逻辑目录(Logic Directory):
-
逻辑目录包含实现应用程序逻辑的代码,通常是指业务逻辑层。
-
示例:在MVC架构中,逻辑目录可能是logic/或business/,包含处理业务规则的类和方法。
-
-
前端目录(Frontend Directory):
-
前端目录包含客户端的代码和资源,如HTML、CSS、JavaScript等。
-
示例:前端目录可能是src/, app/, assets/等,包含components/, views/, styles/等子目录。
-
-
数据目录(Data Directory):
-
数据目录用于存储应用程序的数据文件,如数据库、配置文件、缓存文件等。
-
示例:数据目录可能是data/, db/, cache/等,包含数据库文件、日志文件等。
-
-
配置文件(Configuration Files):
-
配置文件包含应用程序的配置信息,如数据库连接字符串、API密钥、服务端点等。
-
示例:配置文件可能是config.json, settings.yml, .env等。
-
在实际的项目中,这些目录的结构和命名可能会有所不同,具体取决于项目的需求和开发团队的约定。以下是一些常见的项目结构示例:
-
一个典型的Web应用项目结构:
my-web-app/ ├── backend/ │ ├── api/ │ ├── controllers/ │ ├── models/ │ └── services/ ├── frontend/ │ ├── src/ │ │ ├── components/ │ │ ├── views/ │ │ └── styles/ │ └── public/ │ ├── images/ │ ├── css/ │ └── js/ ├── data/ │ ├── db/ │ ├── logs/ │ └── cache/ ├── config/ │ ├── config.json │ ├── settings.yml │ └── .env └── docs/
源码开发语言类型
ASP,ASPX,PHP,Java,Python,Go,Javascript等
语言开发框架组件
PHP:Thinkphp Laravel YII CodeIgniter CakePHP Zend等
JAVA:Spring MyBatis Hibernate Struts2 Springboot等
Python:Django Flask Bottle Turbobars Tornado Web2py等
Javascript:Vue.js Node.js Bootstrap JQuery Angular等
开源闭源加密类型
开源-如Zblog
闭源-如内部开发
加密-如通达OA
-
开源(Open Source):
-
开源软件是指源代码可以被公众查看、修改和增强的软件。开源软件通常由社区驱动,任何人都可以贡献代码。一些知名的开源软件包括:
-
Linux:一个开源的操作系统内核。
-
Apache:一个开源的Web服务器软件。
-
MySQL:一个流行的开源数据库管理系统。
-
WordPress:一个广泛使用的开源内容管理系统(CMS)。
-
Android:基于Linux的开源操作系统,主要用于移动设备。
-
-
-
闭源(Closed Source):
-
闭源软件是指源代码不公开,只有软件开发者或公司内部人员可以访问和修改的软件。用户只能使用软件的编译版本,不能查看或修改源代码。一些知名的闭源软件包括:
-
Microsoft Windows:微软的操作系统。
-
Adobe Photoshop:一个图像编辑软件。
-
Apple macOS:苹果的操作系统。
-
Microsoft Office:一个办公软件套件。
-
QuickBooks:一个会计软件。
-
-
-
加密(Encrypted):
-
加密软件不一定是指软件的源代码被加密,而更多是指软件的某些部分或功能被加密,以保护知识产权或确保数据安全。加密可以应用于开源或闭源软件。一些加密软件的例子包括:
-
PGP(Pretty Good Privacy):一个用于数据加密的软件。
-
VeraCrypt:一个磁盘加密软件。
-
HTTPS:一种用于加密Web通信的协议。
-
DRM(数字版权管理):用于保护数字媒体内容的技术。
-
-
三、基础入门-Web 应用-数据上的技术要点
#数据差异-本地数据&分离数据&云数据库
-
本地数据(Local Data):
-
本地数据是指存储在个人电脑、服务器或企业内部网络中的数据库里的数据。企业拥有数据库的物理硬件和软件,需要负责数据库的安装、配置、维护、备份和安全性。
-
示例:一个公司在其内部服务器上运行的MySQL数据库,存储了公司的财务数据和客户信息。
-
-
分离数据(Separated Data):
-
分离数据通常指的是存算分离架构中的数据,这种架构将数据存储与计算资源分离,以提高资源利用率和灵活性。在存算分离的架构中,数据可以存储在远程存储系统中,而计算资源则在需要时动态分配。
-
示例:在云计算环境中,数据存储在S3对象存储中,而计算任务在EC2实例上执行,两者之间通过网络连接。
-
-
云数据库(Cloud Database):
-
云数据库是指由云服务提供商托管的数据库服务,用户可以通过网络随时随地访问。云数据库的维护、备份和扩展通常由服务提供商负责。
-
示例:亚马逊的Amazon RDS、Google的Google Cloud SQL,这些服务允许用户在云端存储和管理数据库,而不需要自己管理底层硬件。
-
数据差异的具体表现:
-
部署位置:
-
本地数据库:部署在企业内部的服务器或数据中心。
-
分离数据:可能部署在远程存储系统中,与计算资源分离。
-
云数据库:部署在云服务提供商的数据中心。
-
-
维护与管理:
-
本地数据库:需要企业自己的IT团队进行维护和管理。
-
分离数据:维护可能涉及多个系统,包括远程存储和本地计算资源。
-
云数据库:通常由云服务提供商负责维护。
-
-
扩展性:
-
本地数据库:扩展通常需要采购额外的硬件设备,过程较为复杂。
-
分离数据:可以根据需要动态扩展存储和计算资源。
-
云数据库:可以较为容易地进行水平扩展,通常按需付费。
-
-
网络依赖性:
-
本地数据库:不依赖外部网络,数据存取不受网络状况影响。
-
分离数据:可能需要网络连接来协调存储和计算资源。
-
云数据库:需要稳定的网络连接来访问。
-
-
成本结构:
-
本地数据库:主要是资本成本(CapEx),需要前期硬件和软件的投资。
-
分离数据:成本可能涉及存储和计算资源的使用,具体取决于服务提供商的定价模型。
-
云数据库:通常是运营成本(OpEx),按使用量付费。
-
-
安全性和合规性:
-
本地数据库:安全性和合规性依赖于企业的安全措施和管理。
-
分离数据:安全性和合规性可能涉及多个层面,包括数据传输和存储。
-
云数据库:通常提供高级的安全措施,如数据加密、访问控制等,但合规性可能需要根据具体的云服务提供商和地区法规来确定。
-
数据库类型
Access、MYSQL、SqlServer、Oracle、
Redis、DB2、Postgresql、MongoDB等
本地数据库
本地服务器搭建 47.75.212.243
分离数据库
另外的服务器搭建 47.75.212.243 数据 47.242.xxx.xxx
云数据库
RDS等
数据库核心思想
外部连接
比如:拿到目标的一个源码,分析到数据库配置文件,找到其中的账号密码,连接的地址
网站服务器 47.75.212.243
数据 47.242.xxx.xxx
数据库连接只让网站服务器47.75.212.243的连接,而自己的IP不是这个,拿到账号密码也无法连接
背景:www.xiaodi8.com 47.75.212.243 数据库放在云数据库上面
拿到www.xiaodi8.com的webshell 网站权限 怎么获取到数据库里面的数据 权限
解决:47.75.212.243只能让它去连接云数据库
本地真机攻击机器 xxx.xxx.xxx.xxx 去连接数据库 账号密码正确也无法连接
1.上传一个数据库连接脚本到网站上 访问脚本去让脚本去连接数据库
2.利用网站权限去上传代理流量工具 做数据中转的操作 去连接数据库
#平台差异-中间件类型&系统类型&容器类型
系统
Windows、Linux、MacOS等
容器
Docker、K8s、Vmware、VirtualBox等
中间件
Apache、Nginx、IIS、lighttpd、Tomcat、Jboos、Weblogic、Websphere、Jetty等
四、基础入门-Web 应用-解析上的技术要点
#解析差异-URL路由&绝对相对路径&格式权限
URL路由(URL Routing)
URL路由是指在Web开发中,根据请求的URL来决定执行哪个程序或方法的过程。它允许服务器将不同的URL路径映射到不同的处理函数上。
-
特点:
-
动态:可以根据URL的结构和参数动态地决定如何处理请求。
-
灵活性:可以轻松添加或修改路由规则。
-
可读性:URL结构清晰,易于理解和记忆。
-
-
示例:
-
http://example.com/users 可能映射到用户列表页面。
-
http://example.com/users/123 可能映射到用户ID为123的个人资料页面。
-
绝对路径与相对路径
路径是指文件系统中文件或目录的位置。
-
绝对路径:
-
从根目录开始的完整路径。
-
包含从根到目标文件或目录的所有必需的目录和子目录。
-
示例:在Unix系统中,/home/user/documents/report.doc 是一个绝对路径。
-
-
相对路径:
-
相对于当前工作目录的路径。
-
依赖于当前目录的位置。
-
示例:如果当前目录是 /home/user,那么 documents/report.doc 是一个相对路径,它指向 /home/user/documents/report.doc。
-
格式权限(Format Permissions)
格式权限通常指的是文件的权限,它决定了谁可以读取、写入或执行文件。
-
特点:
-
安全性:控制对文件的访问,防止未授权的访问。
-
灵活性:可以为不同的用户或用户组设置不同的权限。
-
重要性:对于保护敏感数据和系统安全至关重要。
-
-
示例:
-
在Unix系统中,文件权限如 -rwxr-xr-x 表示所有者有读、写、执行权限,同组用户和其他用户有读和执行权限。
-
差异解析
-
URL路由 vs. 绝对相对路径:
-
URL路由关注的是Web请求的处理,而路径关注的是文件系统中文件的位置。
-
URL路由是动态的,依赖于Web框架或服务器的配置;路径是静态的,依赖于文件系统结构。
-
-
绝对路径 vs. 相对路径:
-
绝对路径提供了从根目录到文件的完整路径,而相对路径是相对于当前工作目录的。
-
绝对路径不依赖于当前目录,而相对路径依赖于当前目录。
-
-
格式权限 vs. URL路由和路径:
-
格式权限与URL路由和路径不同,它不涉及文件的位置或Web请求的处理,而是涉及文件访问的权限控制。
-
格式权限是操作系统层面的概念,而URL路由和路径是文件系统和Web开发层面的概念。
-
URL路由
URL访问对应文件,MVC模型等
xxx.xiaodi8.com/admin/login.php = 源码/admin/login.php
框架开发 MVC模型源码 :根据框架的路由决定
xxx.xiaodi8.com/admin/login ≠ 源码/admin/login
相对绝对
相对当前目录,完整的目录路径
../../ 相对路径
D:\xxx\xxx\xxx 绝对路径
格式权限
后门解析格式,代码正常执行,脚本执行权限等
在网站上传后门时,如果没有权限访问,可以将其上传到上一级目录中