CTF之Web安全系列课程(一)笔记

作者:Administrator 发布时间: 2025-11-28 阅读量:5 评论数:0

CTF之Web安全系列课程(一)笔记

1 课程准备

1.1 课程介绍

1.1.1 课程说明

课程特点:以CTF比赛为引领学习Web安全;面向掌握Linux基本操作的零基础初学者;理论与实践相结合,兼顾原理与应用。

CTF竞赛主要内容:包含WEB(Web漏洞挖掘与利用)、REVERSE(二进制代码逆向分析)、CRYPTO(密码编码与破解)、PWN(二进制漏洞挖掘与利用)、STEGA/FORENSICS(隐写/数字取证)、MOBILE(移动端安全)、NETWORK(协议分析与无线网络安全)、MISC(杂项)等题型。

CTF练习平台
BUUCTF:https://buuoj.cn/challenges

攻防世界:https://adworld.xctf.org.cn

Bugku:https://ctf.bugku.com/(需要签到领币)

1.1.2 准备实验环境

所需系统和软件:最新版VMWare、CentOS7、最新版Kali(https://www.kali.org/get-kali/#kali-platforms)、Xshell免费版、Firefox火狐浏览器、腾讯会议。

Linux系统说明
CentOS:属于RedHat派系,服务器主流操作系统,用作Web服务器。

Kali:属于Debian派系,内置大量安全工具,用作攻击机。

Kali基本配置
切换到root用户:默认账号密码kali/kali;设置root密码命令sudo passwd root;切换root命令su – root。

设置安装源:修改配置文件vim /etc/apt/sources.list,添加阿里云源:
deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
更新软件索引列表命令apt-get update。

设置中文界面:安装中文字体命令apt-get install xfonts-intl-chinese ttf-wqy-microhei;设置系统语言命令dpkg-reconfigure locales(选择zh_CN.UTF-8);重启命令reboot。

远程连接Kali:执行ifconfig查看IP(网卡名eth0);修改SSH配置文件/etc/ssh/sshd_config,将PermitRootLogin设为yes;重启并设为开机自启:systemctl restart ssh、systemctl enable ssh。

CentOS基本配置
配置远程连接:ifconfig查看IP,通过Xshell连接。

设置yum源:清空原有源rm -f /etc/yum.repos.d/*;下载阿里云源wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo。

关闭防火墙:停止服务systemctl stop firewalld;禁止开机自启systemctl disable firewalld。

关闭SElinux:临时关闭setenforce 0;永久关闭需修改/etc/selinux/config,将SELINUX设为disabled。

云服务器建议:推荐购买个人云服务器,如阿里云、腾讯云、百度云等。

1.1.3 搭建LAMP平台

Web服务器组成:操作系统、Web容器、脚本程序、数据库四部分。
操作系统:主流为Linux(尤其是CentOS)和Windows Server。

Web容器:提供WWW服务的程序,主流为Apache、Nginx(开源),Windows默认IIS。

脚本语言:Web容器需搭配脚本语言执行能力,如PHP、JSP、.NET。

数据库:网站核心,分关系型(MySQL、Oracle、SQLServer等)和非关系型(Mongodb、Redis等),常用MySQL(MariaDB)。

常见Web服务平台组合
LAMP:Linux+Apache+PHP+MySQL

LNMP:Linux+Nginx+PHP+MySQL

安装顺序:Linux→Apache→PHP→MySQL

LAMP安装步骤
安装Apache:
yum install httpd -y
systemctl start httpd
systemctl enable httpd

安装PHP:
yum install php php-mysql -y
systemctl restart httpd

安装MariaDB:
yum install mariadb-server -y
systemctl start mariadb
systemctl enable mariadb

设置MariaDB密码并登录:
mysqladmin -u root password "123"
mysql -uroot –p123

测试PHP连接MariaDB:测试代码如下
<?php
$conn=mysqli_connect("127.0.0.1","root","123");
if ($conn) {
echo "success";
}else{
echo "fail";
}
mysqli_close($conn);
?>

1.1.4 安装DVWA

DVWA简介:DVWA(Damn Vulnerable Web App)是PHP+MySQL编写的Web安全实验平台。

安装步骤
将压缩包复制到CentOS虚拟机。

解压:unzip DVWA-1.0.8.zip -d /var/www/html。

改名:mv /var/www/html/DVWA-1.0.8 /var/www/html/dvwa。

修改配置文件:vim /var/www/html/dvwa/config/config.inc.php,数据库配置如下:
$_DVWA =array();
$_DVWA[ 'db_server']='localhost';
$_DVWA[ 'db_database' ]='dvwa';
$_DVWA[ 'db_user' ]='root';
$_DVWA[ 'db_password']='123';

默认账号:admin/password

实验报告一要求
在CentOS中搭建环境,配置yum源、关闭防火墙和SELinux。

安装LAMP并验证PHP访问数据库,安装DVWA并验证访问。

关键步骤附截图及文字说明,创建姓名全拼命名文件夹(命令行截图需包含)。

禁止出现他人信息,截止日期10月27日。

2 网站基本概念

2.1 Web服务

Web服务又称WWW(World Wide Web万维网)服务,是互联网最广泛的服务,核心技术为HTML(超文本标记语言)和HTTP(超文本传输协议),工作流程为“客户端发送请求→服务器返回响应”。

2.2 HTML简介

特点:非编程语言,是标记语言(标签通常成对出现,如<p>和</p>),学习核心是掌握各类标签用法。

常用标签
<br />:换行

<pre>:原样输出内容(如诗歌排版)

<img>:插入图片,格式<img src="图片位置" alt="图片描述">(src指定位置,alt指定描述)

<a>:设置超链接,格式<a href="url">文字描述</a>

2.3 form表单

作用:接收客户端输入数据并发送给服务器(如登录页面),表单内包含文本框、按钮等元素。

典型代码
<form action="UserLogin.php" method="post">
<p>用户名:<input type="text"name="username"></p>


</form>

2.4 Web资源

定义:HTTP请求响应过程中,客户端请求及服务器返回的内容,分为静态和动态资源(按服务器是否需处理后发送区分)。

静态资源:服务器直接发送,无需处理,如.html/.htm文件、图片(.jpg/.png等)、文本(.txt)、音视频(.mp3/.avi)、前端脚本(.css/.js)。

动态资源:编程语言开发的脚本程序(如.php/.jsp),需在服务器端运行后返回结果,客户端无法查看源码,可通过参数向服务器传数据。

特点:单个页面可能包含多个资源(如首页包含HTML、CSS、JS、图片等)。

2.5 前后端语言与URL

Web安全常用编程语言
前端:HTML(掌握常用标签)、JavaScript(了解基本逻辑)

后端:PHP(重点深入,掌握漏洞原理与利用)、JSP、ASP、Python等

前后端区别
前端代码:客户端浏览器执行(HTML/JS),静态网站仅含前端,客户端可见源码。

后端代码:服务器端执行(PHP/JSP等),返回HTML结果,实现交互,客户端不可见源码。

URL(统一资源定位符)
格式:协议名://网址(IP)/路径?参数名1=参数值1&参数名2=参数值2(如http://www.test.com/test.php?user=teacher&pass=123)

关键说明:协议名常用HTTP/HTTPS;省略路径默认访问首页(如index.php);参数用&分隔传递数据。

路径对应关系:URL主机名对应Web服务器网站主目录(如http://www.test.com/对应/var/www/html/);首页默认以index命名(如index.php)。

2.6 前端代码查看与修改

查看网页源码:查看HTML/JS代码,是解Web题第一步,部分flag或提示藏于源码中。CTF例题:BUUCTF-Web-[BSidesCF 2019]Futurella、BugKu-Web-滑稽、攻防世界-Web-view_source。

修改前端代码:前端代码在客户端执行,可通过浏览器开发者工具修改并影响执行效果。CTF例题:BugKu-Web-计算器、攻防世界-Web-disabled_button。

3 敏感信息泄漏

3.1 敏感信息定义

网站目录结构、后端源码等均为敏感信息。运维视角需避免泄露,渗透视角需搜集以寻找切入点,是CTF常考知识点。

3.2 常见敏感信息泄漏类型

robots文件
说明:存于网站根目录的文本文件,告知搜索引擎爬虫不可抓取内容,属于敏感文件。

CTF练习:攻防世界-Web- Robots

网站备份/缓存文件
常见类型:网站备份文件(如www.zip、www.bak)、网页备份文件(如index.php.bak)、vi编辑器缓存文件(.swp后缀)。

CTF练习:攻防世界-Web- backup

评论