20252921 2024-2025-2 《网络攻防实践》实践10报告
1.实践内容
1.1 Web 应用体系结构与安全威胁
1.1.1 Web 应用体系结构
Web 应用采用四层分层架构,从上至下依次为客户端、Web 服务器、应用服务器和数据库服务器,客户端主要以浏览器为主。各层级分工明确,协同完成用户请求的处理与响应工作。
整体交互流程如下:用户通过浏览器发起 HTTP 请求,Web 服务器接收请求后转发至应用服务器处理业务逻辑。应用服务器根据业务需求调用数据库获取并处理数据,最后将处理结果沿原路径逐层回传,由浏览器解析并展示内容。这种分层架构能够分离业务关注点,降低开发难度,也便于团队分工协作与系统后续扩展。
1.1.2 Web 应用安全威胁分类
按照攻击目标和作用层级划分,Web 应用面临的安全威胁主要分为四类,不同类型威胁的攻击方向和造成的危害各有不同。
应用层攻击是目前最为常见的攻击形式,主要利用 Web 应用自身存在的逻辑漏洞实施破坏。常见攻击方式包括 SQL 注入、跨站脚本、命令注入、文件上传等,这类攻击的根源是应用程序没有对用户输入内容做完善的校验与处理。
服务器攻击将目标对准 Web 服务器和各类中间件,例如 Apache、IIS 等。攻击者利用服务器或中间件本身的漏洞,尝试获取管理权限,干扰正常服务运行,严重时会直接造成服务器瘫痪。
数据层攻击依托数据库漏洞或是不合理的权限配置,非法读取、篡改、删除系统内的敏感数据,窃取数据库配置信息,严重破坏数据的保密性与完整性。
客户端攻击以使用网站的终端用户为目标,通过发送钓鱼链接、植入恶意脚本、利用浏览器漏洞等方式,盗取用户会话信息、Cookie 等数据,进而冒用用户身份进行违规操作。
1.2 Web 应用信息收集
信息收集是 Web 攻防工作的第一步,主要作用是全面收集目标应用的相关资料,为后续漏洞挖掘和攻击测试提供支撑。具体收集内容及常用工具如下。
基础信息收集主要获取目标域名、服务器 IP 地址、开放端口、Web 服务器版本以及服务器搭载的操作系统类型和版本,为后续探测工作打下基础。
目录与文件探测可借助工具扫描或手动测试完成,重点查找网站后台登录入口、备份文件、配置文件、测试页面等敏感资源,从中寻找可利用的攻击入口。
应用信息探测主要识别网站使用的开发语言、内容管理系统、数据库类型、用户账号以及接口路径等内容,明确目标整体技术架构。
常用工具包含 Nmap,主要用于端口扫描和基础信息探测。DirBuster 负责网站目录扫描。Burp Suite 可实现请求拦截、修改和漏洞检测。AWVS 用于自动化扫描 Web 漏洞。Wappalyzer 能够快速识别网站技术栈。此外,Shodan、FOFA 等网络平台也可辅助开展信息收集,提升工作效率。
1.3 主流 Web 应用攻击技术
1.3.1 SQL 注入攻击
核心原理,Web 应用没有对用户输入内容进行严格过滤,攻击者构造的恶意内容会被直接拼接进 SQL 语句并被数据库执行,以此实现对数据库的非法操作。该攻击利用的是代码编写缺陷,并非系统底层漏洞。
攻击主要分为四个步骤。首先输入特殊字符判断目标是否存在注入漏洞。其次探测数据库的表名、字段名等结构信息。接着提取数据库中存储的各类敏感数据。最后利用已发现的漏洞提升权限,或是向服务器写入恶意文件,实现更深层次的攻击。
常见攻击类型包含联合查询注入、报错注入、布尔盲注、时间盲注以及堆叠查询。除此之外,宽字节注入、二次注入也属于较为典型的 SQL 注入攻击方式。
1.3.2 XSS 跨站脚本攻击
核心原理,Web 应用未对用户发布的内容进行过滤和转义,攻击者编写的恶意脚本会被嵌入网页当中。其他用户访问该页面时,脚本会在浏览器内自动运行,进而窃取信息或是执行恶意操作,该漏洞本质是程序盲目信任用户输入内容导致。
根据触发形式和留存特点,跨站脚本攻击分为三类。第一类是反射型跨站脚本,也叫非持久型攻击,恶意内容依附在链接参数中,仅单次访问生效,需要用户点击恶意链接才会触发。第二类是存储型跨站脚本,也叫持久型攻击,恶意脚本会被保存至网站数据库,所有访问对应页面的用户都会受到影响,影响范围更广,危害也更大。第三类是 DOM 型跨站脚本,该攻击无需和服务器产生交互,仅利用前端页面解析漏洞篡改页面结构,执行恶意代码。
跨站脚本攻击会造成诸多危害,包括窃取用户 Cookie 和会话数据,冒用身份登录系统。伪造内容开展钓鱼行为,诱导用户泄露隐私信息。借助浏览器权限探测内网、扫描端口。同时还能传播恶意代码,形成批量攻击,影响大量用户,甚至导致网站服务无法正常运行。
2.实践过程
先进行语句的熟悉
在此链接https://seedsecuritylabs.org/lab_env.html下载DigitalOcean: SEEDUbuntu-16.04-32bit.zip

进行安装

基本按照默认步骤,安装好后如图所示


修改主机名为自己姓名,密码:seedubuntu

2.2SEED SQL注入攻击与防御实验
1.熟悉SQL语句
首先我们输入mysql -u root -p 登录数据库,密码为seedubuntu
熟悉一下数据库里的基本语句

要查看mysql中的数据库,输入show databases;

进入Users数据库,输入use Users;

查看数据库中的表,输入show tables;

展示表中的内容,输入select * from credential;

接着使用SELECT查询语句查询某个具体信息,这里查的是Alice,select * from credential where Name = 'Alice';

熟悉语句之后我们开始考虑攻击了
1.对SELECT语句的SQL注入攻击
进入www.seedlabsqlinjection.com,这个网址是 SEED Labs 官方的 SQL 注入靶场网页

查看网页源码可以看到

