基础入门-Web应用&架构搭建&域名源码&站库分离&MVC模型&解析受限&对应路径
-1

知识点:

1、基础入门-Web应用-域名上的技术要点
2、基础入门-Web应用-源码上的技术要点
3、基础入门-Web应用-数据上的技术要点
4、基础入门-Web应用-解析上的技术要点

草节点:(待补充)


Web架构,App架构,小程序架构,前后端分离,容器技术,云产品服务,数据加解密算法,数据包抓取,数据包解析,正反向网络通讯,内外网通讯,防火墙出入站,Windows&Linux渗透命令,WAF产品,负载均衡,加壳保护等

具体点:(待补充)

架构:WEB,APP,小程序,前后端,容器化等
服务:Oss存储,CDN加速,云数据库,负载均衡等
网络:不回显,反向代理,防火墙出入站,内外网,正反向连接等
算法:MD5,Base64,AES,DES,Salt,自定义,代码加密算法等
命令:Windows&Linux,文件下载,网络查看,反弹权限,用户等
防护:WAE防护,蜜罐系统,CDN加速,权限设置,加壳加密反调试等

演示案例:

  • 域名差异-主站&分站&端口站&子站
  • 源码差异-结构&语言&框架&闭源&加密
  • 数据差异-本地数据&分离数据&云数据库
  • 解析差异-路由访问&绝对相对路径&格式权限

课程需明白

1、有那几种web域名上差异
2、有哪几种源码语言框架差异
3、网站数据存储有那几个方式
4、URL访问对应正确和错误原因

由此我们需要结合安全测试思考:
1、域名上架构了解后的思路意义
2、源码上架构了解后的思路意义
3、数据上架构了解后的思路意义
4、解析上架构了解后的思路意义

域名差异-主站&分站&端口站&子站

网站一般有两种访问方式,一种是大家熟知的域名方式访问,另一种就是通过IP地址访问,但是大部分正规型网站都是通过域名访问的(因为它便于人们记忆)

1. 主站

  • 定义:一个组织或项目最主要的官方网站,通常使用顶级域名(如 example.com)或最简短的域名。
  • 特点:承载核心内容、品牌入口,访问量最大,链接结构最简洁。
  • 示例www.baidu.com 是百度主站。

2. 分站

  • 定义:与主站属于同一品牌或主体,但独立运营或面向不同业务/地区的站点。通常使用独立的二级域名或单独域名。
  • 特点:与主站关联但相对独立,可能有独立的导航、风格或后台。
  • 示例:淘宝的 alibaba.com(国际站)相对 taobao.com(主站)可视为分站。

3. 端口站

  • 定义:通过非默认端口(非80/443)访问的站点,URL 中显式包含端口号。
  • 特点:通常用于测试、内部服务或特殊应用;对 SEO 不友好,普通用户很少直接访问。
  • 示例http://example.com:8080(8080 端口上的站点)。

4. 目录站

  • 定义:位于主站域名下某个子目录路径中的站点,如 example.com/subsite/
  • 特点:共享主站的域名、部分配置和 SEO 权重;部署简单,常作为主站的扩展模块。
  • 示例github.com/blog 可视为 GitHub 主站下的一个目录站(博客)。

5. 子站

  • 示例news.google.com 是 Google 的子站(子域名)。
  • 定义:广义上包括子域名下的站点(如 sub.example.com)或目录站。狭义上常指子域名站点
  • 特点:拥有独立的二级域名,与主站分离但可共享部分数据;SEO 上视为独立站点。

渗透测试目标呢,一般有几种情况:它可能是以域名的方式给你, 也可以是以IP的形式给你

以域名形式给你:

1、主站:
比如(www.yinan.xyz)主站解析IP 192.168.0.1

2、分站:
比如(blog.yinan.xyz)分站解析IP 192.168.0.2
那么我分站和主站有没有可能解析到同一IP上呢?答案是有可能的!如果我们通过blog.yinan.xyz攻进去了,那么我们就相当于打进了主站,所以说收集它的意义是给到你更多的机会

3、端口站
什么叫端口站呢?默认的话http的话会开放80端口,https则会开放443端口,我们就会这样访问:http://www.yinan.xyz:80 https://www.yinan.xyz:443 只不过这些都是默认端口,我们可以忽略掉,让浏览器自动帮我们填写

比如说http://www.yinan.xyz:80默认是个php程序,你通过信息收集技术,看到了它88端口上有一个JAVA程序,url可能是这样:http://www.yinan.xyz:88 这个就是端口站 就是同一IP,不同端口,开放的不同服务而已
4、目录站
比如我现在www.yinan.xyz是一个博客程序,那么我可以在后面加一个目录,类似于这样www.yinan.xyz/bbs/,我在这上面搭建一个论坛程序,那么你访问我这个地址,就可以访问到另一个论坛程序,在这个目录下,就叫做目录站
5、子站(也是同上)
例:123.blog.yinan.xyz
所以我们做子域名收集啊、网站目录扫描啊、端口扫描啊、为了什么,相信你现在已经了解了,这样就跟后面信息收集的知识点联动起来了

源码差异-结构&语言&框架&闭源&加密

1、源码目录结构对应:
后台目录,文件目录,逻辑目录,前端目录,数据目录,配置文件等
2、源码开发语言类型
ASP, ASPX, PHP, Java, Python, Go, Javascript 等
3、语言开发框架组件
PHP: Thinkphp Laravel YII CodeIgniter CakePHP Zend等
JAVA: Spring MyBatis Hibernate Struts2 Springboot 等
python:Django FlaskBottle Turbobars Tornado Web2PY等
4、开源闭源加密类型:
开源:如Zblog
闭源:如内部开发
加密:如通达OA

数据差异-本地数据&分离数据&云数据库等

1、数据库类型:Access、MYSQL、SqlServer、Redis、DB2、Postgresql、MongoDB等
2、本地数据库:本地服务器搭建
3、分离数据库:另外的服务器搭建
4、云数据库:RDS等
数据库核心思想:外联 外部连接

比如:拿到目标的一个源码,分析到数据库配置文件其中帐号密码 连接的地址都已经暴露出来了,我们想要去连接它的数据库,如果是本地数据库的话,连接的成功率在70%-80%左右,很高的连接成功率,除非高权限用户设置了一些策略,如果是分离数据库,就有可能连接不上了,为什么这么说呢?因为它单独设置了这种分离数据库,那么他就有很大可能设置白名单连接数据库连接只让来网站服务器的连接,你这里作为攻击者,你拿到信息之后,你的IP并不是网站服务器的IP,所以给你账密你也连接不上去,等于GG

那么我们现在可以做个假设,你现在已经拿到了某网站的webshell,对方使用了云数据库,并且做了白名单策略,我该怎么获取到数据库里面的数据权限?本地真机攻击机器 xx.xx.xx.xx 去连接数据库 帐号密码正确也无法连接


解决办法:只能让他去连接云数据库
1、上传一个数据库连接脚本到网站上 访问脚本去让脚本去连接数据库
2、利用网站权限上传代理流量工具 做数据中转的操作 去连接数据库

平台差异-中间件类型&系统类型&容器类型

1、系统:Windows、Linux,MacOS等
2、容器: Docker、K8s、 Vmware,VirtualBox等
3、 中间件:Apache、Nginx,IIS、 lighttpd, Tomcat、Jboos、Weblogic, Websphere, Jetty等

解析差异-URL路由绝对相对路径&格式权限

1、URL路由:URL访问对应文件,MVC(model view controller)模型等
2、相对绝对:相对当前目录,完整的目录路径
3、格式权限:后门解析格式、代码正常执行,脚本执行权限等


我们经常会看到某些漏洞利用的时候,会写../../,这是什么意思呢?这叫做相对路径
原路径信息:D:\MYOA\webroot\attachment,如果我们想往上跳转两个目录,那么我们就可以这样写:D:\MYOA\webroot\attachment\../../ = D:\MYOA\
如果我们想往上跳转三个目录,那么我们就可以这样写:D:\MYOA\webroot\attachment\../../ /../= D:\
绝对路径
D:\MYOA\webroot\attachment\../../../D:\aDrive = D:\aDrive

model view controller
如果你访问一个站点的后台登录路径,则url为http://www.yinan.xyz/admin/login.php = 源码/admin/login.php,这是正常的情况下


但是如果你使用了框架开发 MVC模型源码:
根据框架的路由决定(它可能就会这样)
www.yinan.xyz/admin/login.php ≠ 源码/admin/login(不等于以上的路径信息)
至于它是怎么等于的,根据框架的路由决定
后期代码审计时,我们要区分 MVC和非MVC模型的源码,区分它的原因是,要搞清楚文件访问路由地址和文件对应的关系要怎么找,因为只有你知道怎么找了,才能分析源码

文末附加内容
上一篇
下一篇