第2天:Web应用&架构类别&源码类别&镜像容器&建站模版&编译封装&前后端分离

Web架构展示

#### 1、套用模版型

* csdn / cnblog / github / 建站系统等  
  ①套用建站:用别人的域名-\>在别人的域名目录之下-\>搭建自己的网站  
  ②建站系统建站:用系统平台建站-\>平台随机分配一个域名-\>再搭建自己的网站
  * cnblog搭建网站,就是没申请域名服务器,利用别人已知的网站进行套用搭建 ![](https://i-blog.csdnimg.cn/img_convert/73b1c5677fce37be50e92a558c4e5d2b.jpeg)

  <!-- -->

  * 别人的网站给你分配一个站点 ![](https://i-blog.csdnimg.cn/img_convert/5efca1f4acd7157b799e3fb3cca97fef.jpeg)

  <!-- -->

  * 建站系统
    * 凡科建站 ![](https://i-blog.csdnimg.cn/img_convert/ac4e96e42499661737787b61135f3178.jpeg)

    <!-- -->

    * 别人已经设计好了,自己选择就可以了

<!-- -->

* 详细解释 ![](https://i-blog.csdnimg.cn/img_convert/03fcd57c877c0404d9c9a46e8c375b9e.jpeg)

<!-- -->

* 安全测试思路上的不同:
  * 一般以模版套用,基本模版无漏洞,大部分都采用测试用户管理权限为主

  <!-- -->

  * 一般都是小中型公司使用模版套用
#### 2、前后端分离

* 前端用来显示,后端用来进行数据处理-\>导致数据传输逻辑不清晰-\>给渗透测试增加难度

<!-- -->

* 例子:[RXThinkCMF - 基于 PHP 语言的敏捷开发框架](https://www.rxthink.cn/ "RXThinkCMF - 基于 PHP 语言的敏捷开发框架")
  * 1 ![](https://i-blog.csdnimg.cn/img_convert/8ab67d740d2483e92c6e60c74d6fb099.jpeg)

  <!-- -->

  * 2可以理解为前端 ![](https://i-blog.csdnimg.cn/img_convert/5ee1e52b4ab55b2142b4c59cb4311cd7.jpeg)

  <!-- -->

  * 3可以理解为后端,他们的网址域名不一定一样 ![](https://i-blog.csdnimg.cn/img_convert/be3207a82396ba646c9daabc11f87dee.jpeg)

<!-- -->

* 思路:[若依前后端分离下的渗透测试](https://mp.weixin.qq.com/s/HtLU_EBXWcbq-lt10oPYwA "若依前后端分离下的渗透测试")
  * ![](https://i-blog.csdnimg.cn/img_convert/291f9ce713906f9c6a065533b40dff62.jpeg)

<!-- -->

* 安全测试思路上的不同:前端以JS(Vue,NodeJS等)安全问题,主要以API接口测试,前端漏洞(如XSS)为主,后端隐蔽难度加大。
#### 3、集成软件包

* 宝塔,Phpstudy,xamp等  
  宝塔内置了安全防护,所以执行一句话木马,能获取的权限很少;

<!-- -->

* 安全测试思路上的不同:主要是防护体系,权限差异为主
#### 4、自主环境镜像

* 云镜像打包,自行一个个搭建

<!-- -->

* Discuz平台搭建
  * [如何基于ECS搭建Discuz!论坛?_云服务器 ECS(ECS)-阿里云帮助中心](https://help.aliyun.com/zh/ecs/use-cases/manual-build-discuz-bbs "如何基于ECS搭建Discuz!论坛?_云服务器 ECS(ECS)-阿里云帮助中心")

  <!-- -->

  * 搭建
    * 选择Discuz平台镜像 ![](https://i-blog.csdnimg.cn/img_convert/9fd4a23792513c5aba82688360643e5d.jpeg)

      [Discuz平台(CentOS7.6 LNMP PHP7.0)【最新版】_Linux_Centos_PHP-_云市场-阿里云](https://market.aliyun.com/products/57342011/cmjj018082.html?spm=5176.imagesearch.917781.3.23d25oWm5oWmwa%E2%80%8B "Discuz平台(CentOS7.6 LNMP PHP7.0)【最新版】_Linux_Centos_PHP-_云市场-阿里云")

    <!-- -->

    * 使用文档:https://oneinstack.com/docs/securitygroup/?spm=5176.detail_mirror_page.0.0.698fd34eyz2xNf#11 ![](https://i-blog.csdnimg.cn/img_convert/70263cb4c8933b84138d2f328220c078.jpeg)

    <!-- -->

    * 1、租用linux服务器,搭建过程有操作手册---视频26分钟处 ![](https://i-blog.csdnimg.cn/img_convert/6c21c668e5c17c91d7eb7b58913c7b2d.jpeg)

      ![](https://i-blog.csdnimg.cn/img_convert/0e41417f0cb25aab1efaaa689ad89ac8.jpeg)

    <!-- -->

    * 2 ![](https://i-blog.csdnimg.cn/img_convert/9feb092180a89db49a15d9aab7e30cd8.jpeg)

<!-- -->

* 安全测试思路上的不同:主要是防护体系,权限差异为主
#### 5、容器拉取镜像

* Docker
  * Docker搭建流程---网上搜
    * 小迪安装流程
      * 准备一台阿里云linux服务器

      <!-- -->

      * apt update

      <!-- -->

      * apt install git

      <!-- -->

      * apt install docker

      <!-- -->

      * apt install docker-compose

      <!-- -->

      * 在这个网站拉去docker镜像vulhub ![](https://i-blog.csdnimg.cn/img_convert/0869824844167c8eb221685091d8aa26.jpeg)

        [Vulhub - Docker-Compose file for vulnerability environment](https://vulhub.org/ "Vulhub - Docker-Compose file for vulnerability environment")

      <!-- -->

      * 先下载Vulhub:git clone [https://github.com/vulhub/vulhub.git![icon-default.png?t=O83A](https://csdnimg.cn/release/blog_editor_html/release2.3.7/ckeditor/plugins/CsdnLink/icons/icon-default.png)https://github.com/vulhub/vulhub.git](https://github.com/vulhub/vulhub.git "https://github.com/vulhub/vulhub.git")

        ![](https://i-blog.csdnimg.cn/img_convert/90a366d5533092e40b3e3dc915e87156.jpeg)

        ![](https://i-blog.csdnimg.cn/img_convert/d4e5ab4f6e7b3833ca98a1748c6a4c3e.jpeg)

        ![](https://i-blog.csdnimg.cn/img_convert/ab8c60e522fab4ade0a20a794f73e47b.jpeg)

<!-- -->

* 安全测试思路上的不同:虚拟化技术,在后期测试要进程逃逸提权
#### 6、纯静态页面

* 纯HTML+CSS+JS的设计

<!-- -->

* 安全测试思路上的不同:无后期讲到的Web漏洞
  * 由于纯静态页面没有服务器端代码,不涉及数据库,也不涉及复杂的用户输入处理,因此一些经典的服务器端攻击如SQL注入、命令注入、文件上传攻击等,对静态页面没有影响

<!-- -->

* 静态网站没有数据传递,不存在常见漏洞

<!-- -->

* 如何判断是否为静态网站?:
  * F12 ![](https://i-blog.csdnimg.cn/img_convert/8472bc08f6dd195711ddf5a34a7cecdc.jpeg)

<!-- -->

* 如何找漏洞呢:找资产、域名、客户端  
  如何测试:找线索:找资产,域名(子域名),客户端(抓包找资产)等,看是否可以跳转到有测试价值的动态网站;
  * ![](https://i-blog.csdnimg.cn/img_convert/f8fe8691a520f59bdfdd40b21c20825b.jpeg)

    ![](https://i-blog.csdnimg.cn/img_convert/ad18b452d8ce8f893f75d498f4b18664.jpeg)

Web源码形式

  • 旨在了解源码差异,后期代码审计和测试中对源码真实性的判断
#### 1、单纯简易源码

* 目录与访问页面直接挂钩

<!-- -->

* 像这样:[xxx.com/admin](http://xxx.com/admin "xxx.com/admin")
#### 2、MVC框架源码

* MVC路由映射:https://blog.csdn.net/u010019970/article/details/104903326

<!-- -->

* 访问路由演示

<!-- -->

* 目录与源码不对应
  * 解释 ![](https://i-blog.csdnimg.cn/img_convert/010bc1e21147f4f5abcb8a7671bd6ddd.jpeg)

<!-- -->

* 了解url对应文件文件对应url,

<!-- -->

* application\\admin\\controller
  * 错误:[xxxx.com/application\\admin\\controller](http://xxxx.com/application/admin/controller "xxxx.com/application\admin\controller")

  <!-- -->

  * 正确:[xxxx.com/index.php/admin/](http://xxxx.com/index.php/admin/ "xxxx.com/index.php/admin/")

  <!-- -->

  * 解释 ![](https://i-blog.csdnimg.cn/img_convert/e63ce669063db0eea1509b8697ba67fd.jpeg)
#### 3、编译调用源码

* 如:NET-DLL封装 Java-Jar打包
  * 静态链接库文件:lib 动态链接库文件:dll

  <!-- -->

  * 编译与反编译---直接打开与反编译工具打开同一个文件,进行内容对比就明白了
    * IDE编译后源文件才有class文件

    <!-- -->

    * 编译过后不能直接看 得反编译 ![](https://i-blog.csdnimg.cn/img_convert/9e47a132a83ec564a09535da6c488b70.jpeg)

<!-- -->

* ①NET:bin目录下的".dll"文件是代码的核心,需要进行DLL反编译,才可以看到源码。

<!-- -->

* ②java:".jar"文件包,直接运行".jar"包就可以启用网站,需要对".jar"包进行反编译,才可以看到源码。
  • 加密型源码--通达OA

    • 源码保护
    • 网上有解密代码的网站,也有工具
#### 4、前后端分离源码

* [https://segmentfault.com/a/1190000045026063![icon-default.png?t=O83A](https://csdnimg.cn/release/blog_editor_html/release2.3.7/ckeditor/plugins/CsdnLink/icons/icon-default.png)https://segmentfault.com/a/1190000045026063](https://segmentfault.com/a/1190000045026063 "https://segmentfault.com/a/1190000045026063")

<!-- -->

* 前端:nodejs、vue等(js开发框架) ![](https://i-blog.csdnimg.cn/img_convert/8f2f5215e566ff0636a916c48f2b11e4.jpeg)

<!-- -->

* 后端:php、java、python等 ![](https://i-blog.csdnimg.cn/img_convert/4633fe4fa0dee0ec287bee5688a0994b.jpeg)

演示案例

#### 架构类别-模版\&分离\&集成\&容器\&镜像

* 统一采用PHP语言的web应用(其他语言可能有误差)
  * 生成php后门文件,对三种搭建方式进行测试

  <!-- -->

  *

    ##### 1、宝塔搭建---内置保护措施
    如Web应用防火墙、权限管理等,因此在进行后门测试时存在一定的限制

    * 后门权限:
      * 命令执行不行文件管理除web目录能看其他都不能看

      <!-- -->

      * 命令执行受限:通过后门文件执行命令通常会受到宝塔面板内置的保护措施限制,例如禁止某些高风险的系统命令,防止攻击者获得更高权限。

      <!-- -->

      * 文件管理限制:攻击者可能只能访问Web目录,而无法查看或管理其他目录(特别是系统敏感文件目录)

    <!-- -->

    * 如何绕过宝塔限制呢

  <!-- -->

  *

    ##### 2、镜像环境搭建

    * 后门权限:
      * 命命执行可以文件管理基本都能看除去一些高权限目录(root目录等)

      <!-- -->

      * 命令执行权限:相对于宝塔面板,镜像环境中的后门执行命令的可能性更大,因为没有额外的第三方管理工具来限制系统命令。

      <!-- -->

      * 文件管理权限:攻击者可以看到系统中大部分目录的文件,只是对某些高权限目录(如/root)可能有访问限制。

    <!-- -->

    *

      ###### 如何提权横向呢

      *

        ###### 提权方法:

        * SUID 文件利用:通过查找具有SUID权限的二进制文件,可以尝试通过这些文件进行提权。例如,通过find / -perm -4000查找具有SUID位的可执行文件,然后尝试利用它们获取root权限。

        <!-- -->

        * 内核漏洞:使用uname -a查看Linux内核版本,然后搜索该版本存在的本地提权漏洞(如脏牛漏洞CVE-2016-5195),如果系统内核未打补丁,则可以尝试利用这些漏洞提权。

      <!-- -->

      *

        ###### 横向移动:

        * SSH私钥:如果成功进入用户目录,尝试查找.ssh目录中的私钥文件,用于SSH登录其他系统。

        <!-- -->

        * 配置错误:如果发现数据库配置文件(如config.php)中有硬编码的数据库凭据,可能使用这些凭据连接到数据库或尝试访问其他系统。

  <!-- -->

  *

    #### 3、Docker容器搭建

    *

      ##### 后门植入需要使用工具

    <!-- -->

    *

      ##### 后门权限:

      * 内置的虚拟化技术,单独搞了一个磁盘空间给这个应用做支撑----是虚构的,与本机无关

      <!-- -->

      * 需要docker逃逸出来才能对本机造成危害

      <!-- -->

      * 如何判断是不是docker
        * 看Docker文件特征.dockerenv

        <!-- -->

        * 可以通过查找Docker容器特有的文件来确认自己是否在容器中,例如\*\*.dockerenv\*\*文件,这是Docker容器中的特征文件。

        <!-- -->

        * 另外,通过执行以下命令查看系统信息,如果发现文件系统指向某个"overlay"或"aufs"文件系统,则很有可能是在Docker容器中:cat /proc/1/cgroup

    <!-- -->

    *

      ##### 如何逃逸提权呢

      * Docker逃逸的思路:Docker逃逸是指攻击者试图从容器内逃逸到宿主机上,这样可以获得宿主机的控制权。常见的Docker逃逸方法包括:
        * Docker Socket滥用:检查容器中是否映射了Docker的Unix socket文件(通常是/var/run/docker.sock),攻击者可以通过这个socket文件调用Docker API来创建特权容器,进而实现对宿主机的访问。

        <!-- -->

        * 特权容器:如果当前容器是以特权模式运行的,可以通过一些命令(如nsenter)访问主机命名空间,从而逃逸到宿主机。

        <!-- -->

        * 内核漏洞利用:如果宿主机的Linux内核存在漏洞,可以尝试在容器中利用这些漏洞(例如脏牛漏洞)来进行容器逃逸。

<!-- -->

* **对比以上三种搭建方式的差异(安全测试渗透测试过程中)**
相关推荐
DO your like1 分钟前
Linux系统操作笔记
linux·服务器·笔记
网络安全King4 分钟前
网络安全系统学习实验1:RDP远程登录配置
学习·安全·web安全
鱼大大博客1 小时前
Edge Scdn的应用场景有哪些?
前端·edge
两只鱼丿1 小时前
Edge安装问题,安装后出现:Could not find Edge installation
前端·edge
她比寒风冷2 小时前
网络安全抓包
安全·网络安全
screct_demo4 小时前
通俗易懂的讲一下Vue的双向绑定和React的单向绑定
前端·javascript·html
有心还是可以做到的嘛4 小时前
ref() 和 reactive() 区别
前端·javascript·vue.js
MorleyOlsen5 小时前
【计算机网络安全】CA和安全电子邮件
网络·安全·web安全·ca
橙狮科技5 小时前
提示词工程教程:提示词安全
人工智能·安全·自然语言处理
Xi_er_5 小时前
密钥管理系统在数据安全解决方案中的重要性
运维·数据仓库·物联网·web安全·前端框架·智慧城市·安全架构