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内核存在漏洞,可以尝试在容器中利用这些漏洞(例如脏牛漏洞)来进行容器逃逸。
<!-- -->
* **对比以上三种搭建方式的差异(安全测试渗透测试过程中)**