1+x证书-网络安全
三、Linux基础及web靶机搭建
3.1 Linux基础知识
- 什么是操作系统?DOS macOS Unix
- Windowsx.x Windows server
- Unix/Linux 类Unix
- Linux系统特点
- Linux用户环境
- Linux的分类 Debian系:软件包dpkg RedHat系rpm
- centos 7 yum安装
- date -s
- shutdown halt reboot init 0 init 6
- systemctl
- ss -at
- ps/top/htop
- kill
- &/ nohup
- jobs/fg
- bg/fg
- ping / traceroute
- alias
- info man help
- ip a
- who / whoami
- ls ll cd tree lsattr
- mkdir rmdir rm
- mv / cp / diff
- more/less/head/tail
- touch /cat
3.2 信息安全环境搭建
- vim及其增强版vi
- xshell用于远程连接
- 在vim及其增强版vi中,默认支持输入模式、命令模式以及下划线命令模式。
- diff用于比较文件之间的差异。
- ln用于创建链接到特定文件。
- chmod更改文件权限;chown将指定用户或组拥有特定文件;usermod修改用户属性。
- 执行基于路径名或部分路径名的查找操作。
- chattr设置或显示文件属性信息。
- tar生成压缩包;$tar选项包括:-cvf 将压缩包存于当前目录;-xvf 解压到当前目录;-czvf 生成压缩包并附加元数据;-xzvf 解压到指定目录;-cjvf 创建解压目录在目标位置。
系统根目录概览
建立靶机
- 静态网站与动态网站的区别主要在于是否支持动态内容生成
- LAMP 由 Linux、Apache、MySQL 和 PHP 四大组件组成
- 使用 yum 安装 Apache 服务器以支持网页服务
- rpm 命令用于查询所有已安装的软件包状态
- yum 安装 PHP 语言以支持动态脚本执行功能
- wamp 环境包含 xampp(Apache)、AppServ(PHP 应用服务)以及 phpStudy(PHP 学习工具)等组件
- wordpress 是一种流行的博客操作系统
- 使用 vim 编辑 index.php 文件来测试开发环境配置是否正确
- 先用 yum 安装 unzip 包然后解压 wordpress.zip 文件完成 WordPress 的安装过程
- cp -r 操作用于批量复制文件夹中的所有文件到目标目录下
- DVWA 的安装部署过程可以通过相应的管理界面完成配置设置
- 配置文件可以从 config.inc.php.dist 中进行修改并保存新版本后生效
- chwon -R 命令可以在 root 用户下启用 Apache 和 DVWA服务以确保网络正常运行
- 在 /etc/php.ini 文件中进行设置后建议重新配置数据库连接参数并保存修改结果后重启服务器以验证效果
- 修改 config.inc.php 文件后建议使用 sed 命令替换其中的关键路径变量并确保配置生效后再进行系统重启测试
- SQLi-Labs 提供了一个强大的工具包用于创建和管理 SQL 注入测试环境以便于安全审计工作流程的设计与实施
- 具体操作包括下载 sqli-labs-master.zip 包然后解压并按照指导文档逐步完成数据库注入测试平台的搭建过程
四、web攻击方式介绍
- SQL注入是一种常见的网络安全漏洞,在Web应用中通过不安全的SQL语句获取敏感信息或执行恶意操作的行为。
- Cross-Site Scripting(XSS)是一种跨站脚本攻击方式,在Web应用中通过用户输入的不干净数据诱导浏览器生成恶意脚本。
- File Upload Vulnerabilities是指Web应用因文件上传功能而暴露的信息安全风险,攻击者可利用此漏洞窃取敏感数据或下载恶意软件。
- File Inclusion Vulnerabilities是指Web应用因文件包含功能而产生的安全风险,此类漏洞可能导致信息泄露或远程代码执行。
- 安全涉及多个层面:
- Information Space Security: 指网络环境下保护数据完整性、机密性和可用性的措施。
- International Space Station Security: 指国际空间站在太空运行中所面临的技术防护要求。
- Cosmic Space Satellite Security: 指宇宙空间内卫星运行所需的技术保障措施以确保其正常运作和安全性。







































DVWA





















SQLi-Labs安装 unzip sqli-labs-master.zip
修改sqli-labs db-creds.inc 文件




OWASP Mutillidae 安装




web攻击方式介绍











靶机环境搭建文档
靶机环境搭建
1. **Linux****系统靶机环境安装**
1.1.1 LAMP****介绍

LAMP是Linux下Apache、MySQL和PHP的应用环境。
Linux + Apache + MySQL + PHP平台:
Apache Http Server:web服务器软件
MySQL:关系型数据库管理系统
PHP:通用开源脚本语言
1.1.2 LAMP****安装配置
1. **安装 Apache 服务**
安装 Apache 服务:sudo yum install httpd -y

启动 Apache 服务:执行命令 sudo systemctl start httpd。通过浏览器访问本地地址 localhost 并查看下图页面以确认服务已成功安装。

配置Apache服务为开机启动的步骤是:使用sudo指令启用httpd服务;以确保Apache服务器能够正常运行的前提条件是将httpd服务设置为开机启动。
1. **安装 mariadb 数据库**
执行MySQL数据库系统的安装:通过YUM管理程序安装mariadb、mariadb-server、mariadb-libs以及mariADB-devel包,并使用-y选项完成自动部署

启动数据库服务:使用命令 sudo systemctl start mariadb运行该操作。在成功启动后,请输入以下命令来登录数据库...

设数据库服务为开机启动:sudo systemctl enable mariadb
1. **安装 PHP 环境**
安装 PHP 环境:sudo yum install php php-mysql -y

配置常见PHP组件:sudo yum install -y php_gdphp_ldapphp_odbcphp_pearphp_xmlphp_xmlrpcphp_mbstringphp_snmp$php_soapcurl-dev.php_bcmath

将新文件存放在网站根目录下的某个特定位置,并在其内容中插入一行采用PHP脚本的代码片段。通过查看该PHP信息页面来确认安装状态是否正确。必须在安装完成后重新启动Apache服务器以确保配置生效。

1.1.3 WDLinux****一键安装包
另外一种便捷的安装方案,在WDLinux系统中提供了一款集成式的安装包,并且操作极为简便。建议先下载所需的安装包,请查看以下详细步骤:
源码编译安装
wget http://dl.wdlinux.cn/lanmp_laster.tar.gz
tar zxvf lanmp_laster.tar.gz
Shell脚本sh install.sh(或sh in.sh)通常情况下会安装WDCP服务。如果不需要WDCP服务,则可以选择使用 sh lanmp.sh
4个可选安装,如下图

1,2,3 是安装独立的环境,不可自由切换nginx,apache,nginx+apache应用环境
4 是指安装完毕后即可在后台运行中任意切换nginx、apache及 nginx+apache的应用环境。
其中PureFTPd属于FTP空间服务的一种; phpMyAdmin则负责通过Web界面管理MySQL数据库,并且提供用户自主决定是否进行安装的选择
卸载命令(注意备份数据,否则后果自负)
sh install.sh uninstal(或sh in.sh uninstall)l
1.1.4****安装WordPress开源网站

下载解压到/var/www/html目录
unzip wordpress-4.9.4-zh_CN.zip
进入数据库,创建wordpress数据库:
[root@localhost local]# mysql -u root -p
mysql> create database wordpress;
然后直接访问:http://localhost根据提升配置安装
1. **搭建DVWA漏洞环境**
1.2.1**.DVWA介绍**

DVWA ( Dam Vulnerable Web Application ) 是一个基于 PHP 语言及 MySQL 数据库构建的靶场实践平台,在整合了 typical web security issues, 包括 SQL 注入、XSS 攻击以及账户找回功能的基础上, 其主要目标是协助安全专家在合规环境中验证技术能力及工具效能;同时为 Web 开发者提供了一个深入理解保护 Web 应用程序过程的机会;此外也为教育机构提供了一个评估受控环境中的 Web 应用安全性的实践空间
DVWA项目于2008年12月启动,并且自发布以来关注度持续稳步上升。他现在广泛地被众多的安全领域专家、学者及学生采用。
官方地址为:https://dvwa.co.uk/
2.DVWA****里面具体包括如下这些漏洞:
暴力破解漏洞时会利用 brute-force手段深入该漏洞的测试区域。该漏洞旨在检验 brute-force攻击手段并突显易用的弱密码问题。
2.命令执行漏洞在存在风险的系统上执行命令。
3.CSRF伪造跨站请求漏洞,允许攻击者去修改应用的管理员密码。
4.SQL注入,DVWA包括盲注和错误型注入两种SQL注入漏洞类型。
5.不安全的文件上传漏洞,允许攻击者上传恶意的文件到web服务器上
6.跨站脚本漏洞(Cross-Site Scripting)是一种安全风险,它使攻击者能够将自己编写的代码插入到Web服务器上。DVWA系统中包含着反射性XSS与存储型XSS两大类。
7.文件包含漏洞,允许进行本地文件包含执行和远程文件包含执行
- 验证码绕过(因使用了Google的算法而得以实现。然而,在我们理想化的网络环境下尝试代理或加入外部连接服务后发现效果并不理想。通过模拟真实网络环境进行测试验证后发现该方案不可行)
在DVWA上有三种安全级别分别是:
High: 在这个级别下的所有存在缺陷的代码都已修复完毕。您可以通过审查源码来确定哪些问题已被修复。通过对高级别漏洞进行比较分析与低级别代码进行对比研究,有助于理解或分析这些缺陷是如何产生的原因。
在Medium级别上进行评估时发现代码已被开发者采取了一些防护措施但这些措施尚未达到完全防护的效果因此仍存在一定的安全漏洞。这对开发者来说是一个机会来深入了解这些潜在的问题并找出改进的方向。同样地对于学习者而言这一难度的提升意味着他们需要更加努力才能成功地利用这些工具来解决相关问题。
Low 当前在该级别下的所有漏洞尚未修复。此级别允许所有漏洞进行测试,并且通过审查源代码来分析漏洞的形成机制。
3**、**安装部署DVWA
- 下载链接:DVWA - Damn Vulnerable Web Application
- 解压文件并放置于指定目录:/var/www/html
- 修改配置文件配置表单.php至指定路径:/var/www/html/dvwa/config (若发现配置表单.php仍有后缀,请删除后缀)
- 设置数据库账号密码为root空置,并在配置表单中进行相应设置。

- 输入网址:http://127.0.0.1/dvwa 登录网址

处理问题:正常情况,dvwa漏洞需要配置才能启用,红色表示不能正常使用。
下面是常见问题:
- PHP function allow_url_include: Disabled
处理方案:修改/etc/php.ini文件,将allow_url_include=Off 改为 On
- reCAPTCHA key: Missing
处理方案:编缉dvwa/config/config.inc.php
配置$_DVWA[ 'recaptcha_public_key' ] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';
配置$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';
- [User: root] Writable folder /opt/lampp/htdocs/dvwa/hackable/uploads/: NO
解决方案:chmod 777 /opt/lampp/htdocs/dvwa/hackable/uploads/
处理完成;创建数据库即可

打开该网站地址:http://127.0.0.1/dvwa/login.php 进行登录。其中默认用户名为 admin、密码为 password。一旦登录成功,则 dvwa 的安装与配置即完成。
DVWA****测试使用
1、登陆
浏览器访问该地址:http://127.0.0.1/dvwa/login.php。
系统预设用户名为admin,并设置口令为password后即可实现登录。
一旦成功登录,则完成dvwa的安装与配置过程
2、设置程序安全级别
在dvwa security选项中,可以调整dvwa的难易程度!!!

当浏览器加载时,能够清晰地看到DVWA系统包含了以下具体的攻击类型: brute-force attack、command injection attack、CSRF attack、file inclusion、upload file attack、验证码 challenge、SQL injection attack、SQL blind injection attack、weak session attack、XSS攻击 Cross-Site Scripting、以及通过安全策略(CSP)绕过的安全策略绕过 bypass和JavaScript exploit JavaScript攻击。
1. **搭建SQL注入平台**
1.3.1 SQLi-Labs****介绍
作为一个专业的SQL注入练习平台... SQLi-Labs主要应用于GET和POST请求场景,并包括了多种典型的注入实践。
- 基于错误的注入(Union Select)
1. 字符串
2. 整数 - 基于误差的注入(双查询注入)
- 盲注入(01、基于Boolian数据类型注入, 02、基于时间注入)
- 更新查询注入(update )
- 插入查询注入(insert )
- Header头部注入(01、基于Referer注入, 02、基于UserAgent注入,03、基于cookie注入)
- 二阶注入,也可叫二次注入
- 绕过WAF
1. 绕过黑名单\过滤器\剥离\注释剥离 OR&AND 剥离空格和注释剥离 UNION和SELECT
2. 隐瞒不匹配 - 绕过addslashes()函数
- 绕过mysql_real_escape_string()函数(在特殊条件下)
- 堆叠注入(堆查询注入)
- 二级通道提取
1.3.2 SQLi-Labs****安装(以Linux为例)
- apache+mysql+php Tomcat+mysql+java (部分关卡需要)
在后续的几个挑战环节中
yum install java-1.8.0-openjdk-devel.x86_64
上传文件
[root@localhost ~]# tar zxf apache-tomcat-8.5.55.tar.gz
[root@localhost ~]# ls
anaconda-ks.cfg apache-tomcat-8.5.55 apache-tomcat-8.5.55.tar.gz
[root@localhost ~]# mv apache-tomcat-8.5.55 /usr/local/tomcat8
[root@localhost ~]#
解决CentOS 7环境下Tomcat-8运行缓慢的问题。
[root@localhost ~]#通过yum包管理器安装rng-tools软件包。
[root@localhost ~]#使用systemctl命令启动rngd服务以确保网络功能正常发挥。
解决CentOS 7环境下Tomcat-8运行缓慢的问题。
[root@localhost ~]#通过yum包管理器安装rng-tools软件包。
[root@localhost ~]#使用systemctl命令启动rngd服务以确保网络功能正常发挥。
启动tomcat
[root@localhost bin]# /usr/local/tomcat8/bin/startup.sh
- Sqli-labs安装
将之前下载的源码进行解压操作,并将其放置于web目录中;其中Linux系统的Apache服务配置通常设置在$VAR www html目录中;同时需要对sql-connections/db-creds.inc文件中的MySQL账户和密码设置进行更新

将user和pass修改你的mysql 的账号和密码,访问127.0.0.1的页面
浏览器访问网站的首页后,在界面上找到Setup/reset Database按钮并点击它

现在打开浏览器地址"http://127.0.0.1/sqli-labs/"后翻转至底部位置可以看到多个具体的注入点分布情况。这些注入点主要包含基础SQL注入、高级SQL注入、SQL堆叠注入以及挑战漏洞四个主要类别。具体而言,在该页面上总共有大约75个可利用的漏洞供安全研究者进行分析和利用。
1.3.3 SQLi-Labs****安装(以Windows为例)
在安装前,需要个PHP+Mysql的环境搭建。
- 载、安装、启动phpstudy(www.phpstudy.net)。
PHP开发人员可以使用PHP调试环境开发工具来整合各种功能模块,在实际项目中我们通常会结合使用PHP、MySQL数据库以及Apache服务器来构建稳定的Web应用平台。
- 将下载的 SQLi-Labs.zip 解压到phpstudy网站根目录下。
下载地址:https://github.com/Audi-1/sqli-labs
例如:我这解压后的路径是“F:\phpStudy\WWW\sqli-labs”。
- 修改 db-creds.inc 里代码如下:
例如:我的配置文件路径是“F:\phpStudy\WWW\sqli-labs\sql-connections”。
<?php//give your mysql connection username n password
$dbuser ='root';
$dbpass ='root';
$dbname ="security";
$host = 'localhost';
$dbname1 = "challenges";
由于PHPstudy默认使用的MySQL数据库地址通常是127.0.0.1或localhost,并且其中用户名和初始密码均为'root'。主要的操作是将变量'dbpass'设置为'root'。这一操作至关重要,在完成之后必须确保文件被保存下来。无需赘述,大家都知道这项操作的重要性。
浏览器访问该链接地址http://127.0.0.1/sqli-labs/后单击"Setup/reset Database"以便建立一个完整的数据库系统并在每个表中添加相应的数据项
当前支持自动提交功能,并允许用户在完成操作后撤销该操作并立即重新提交。
sQL injection-focused sqli-labs platform is dedicated to exploiting SQL injection vulnerabilities. If you aim solely to master SQL injection, this platform stands out as an exceptional resource. According to statistics, approximately 60% of security vulnerabilities identified online are related to SQL injection issues.
1.4 OWASP Mutillidae****安装
OWASP Mutillidae是一款特意支持安全漏洞分析功能的免费开源Web应用程序。它由Adrian "Irongeek" Crenshaw与Jeremy "webpwnized" Druin两人共同开发,旨在提供开放源码的安全防护解决方案。该程序集成了全面的安全渗透测试库,涵盖SQL注入攻击、跨站脚本漏洞以及远程代码执行等多种威胁检测手段,充分满足网络防御需求
请运行该命令以获取来自该GitHub仓库的最新主干版本文件包:wget <https://github.com/webpwnized/mutillidae/archive/refs/heads/master.zip>
解压至指定目录进行操作;编辑配置文件并设置数据库信息;其中包含数据库配置信息的路径为:
mutillidae/includes/database-config.php。

将整个互生id集合复制至网站根目录,并完成配置文件的修改后即可通过浏览器访问该平台,并在页面中选择并启动数据库重置功能;完成后等待数据库加载状态变化,在完成操作后页面自动生成成功标记。

简单的sql注入尝试
下面尝试下简单的sql注入,以此来检查下平台是否搭建成功。
选择: 2017 A1 Extract Data-User info
一打开是这样的界面,那么在这里就可以想到用SQL语句做文章了。

先检查是否存在SQL注入的可能性,在字符用户名框中输入一个反斜杠(\),然后单击确认按钮。通过错误提示信息可识别注入位置,并观察相关 SQL 语句以确定注入点的具体位置。从而发现存在潜在的 SQL 注入风险,并因此判断此处未安装防 SQL 注入机制
同时,在报错信息中可以找到相关的SQL语句,并采用SQL注入的方式进行操作;其中可以看到这样的一个例子:

在用户名字段中插入" or 1=1 #"并对其执行注解处理
SELECT * FROM account WHERE username=’’ or 1=1
通过执行该SQL语句,能够检索到account表中所有用户的详细信息。在确认按钮被点击后,在结果页面上将展示所有用户的详细资料。

今天的任务涉及以下几个方面:搭建平台架构,并对sql注入技术进行初步探索。主要涉及两个方面的技术实现:一是平台架构搭建;二是对sql注入技术进行初步探索。随后计划展开一系列针对不同安全威胁类型的渗透演练。其中涉及的主要攻击手段包括:sql盲注攻击与xss攻击(其中包含存储型和反射型等子类型)。此外还包括html注射攻击、命令注射攻击以及post与get方法相关的攻击手段。通过大量实战演练积累经验并不断提升自己的实战能力
网络安全,还是要在做中学的。
