安全简介

  • 信息安全
    三要素
    1. 保密性
    2. 完整性
    3. 可用性

  • 网络安全
    渗透攻击和防御:技术手段——防火墙

  • web安全:web:网站 www 互联网

  • 常见安全漏洞
    sql注入(数据库)、xss跨站脚本攻击、文件上传下载漏洞、弱口令、csrf攻击

虚拟环境的搭建

靶场的搭建
lnmp(l:linux、n:nginx) lamp 中间件 传统的方式vm
  • 小皮面板

        phpstudy

  • 宝塔面板

        快速的搭建服务

  • docker搭建

        一键部署


什么是中间件
nginx、apache、tomcat
负责让不同系统、不同服务之间能顺利通信和协作

nginx
可以进行静态文件的处理(html、css、js、图片)、不能直接返回php文件给前端
php——php-fpm

中间件:
web服务器中间件:

nginx、apache

应用服务器中间件
php-fpm tomcat uWSGI

优点
  • 连接不同系统
  • 提供通用功能
  • 让开发更高效

ubantu基础配置

允许远程连接

sudo passwd root #设置root用户密码
su root #转至root

sudo apt update #更新软件包列表
sudo apt upgrade #升级所有已安装的软件包
sudo apt dist-upgrade #处理依赖关系升级

#基本工具安装
sudo apt install -y \
curl wget git vim nano \
net-tools tree unzip zip

#关闭防火墙ufw
systemctl stop ufw
systemctl disable ufw 

#禁用selinux
setenforce 0

#下载sshopen服务
apt-get install openssh-server

#查看ss服务状态
systemctl status ssh

#查找配置文件
grep -r "PermitRootLogin" /etc/ssh

vim 配置文件路径
#修改配置文件如下

#重启服务
systemctl restart ssh

搭建服务

lnmp

l指的是linux、n指的是nginx、p指的是php、m指的是mysql

  1. nginx(源码安装)
    ubuntu安装nginx以及php的部署
    
    1.安装依赖包
    
        apt-get install gcc
        apt-get install libpcre3 libpcre3-dev
        apt-get install zlib1g zlib1g-dev
        sudo apt-get install openssl 
        sudo apt-get install libssl-dev
    
    2.安装nginx
    
        tar -xvf nginx-1.21.6.tar.gz
    
    3.编译nginx
    
        cd nginx-1.21.6.tar.gz
        # 执行命令
        
        ./configure
              
        ./configure --prefix=/home/centos/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module
        
        # 执行make命令
        
        make
        
        # 执行make install命令
        
        make install
    
    4.启动nginx
    
        cd /usr/local/nginx/sbin   
        
        # 启动nginx 
        ./nginx
    5.访问nginx
    
    6.增加源地址
    
        执行三条命令,添加php的源地址,更新,安装
        sudo apt-get install software-properties-common
        sudo add-apt-repository -y ppa:ondrej/php
        sudo apt-get update
    
    7.安装php
    
        nginx使用php的话要用到php7.3-fpm,所以要安装php-fpm
    
        sudo apt-get install php7.3 php7.3-mysql php7.3-fpm php7.3-curl php7.3-xml php7.3-gd php7.3-mbstring php-memcached php7.3-zip
    
    
    php -v
    #切换不同版本的软件
    update-alternatives --config php
    php -v
    
    8.配置php-fpm   配置文件是www.conf
    
        把监听端口改掉
    
        ;listen = /run/php/php7.3-fpm.sock
        listen = 127.0.0.1:9000
        
        
        
    
    
    9.启动php-fpm   
    
        sudo service php7.3-fpm start
        netstat -lnt | grep 9000
        #帮助你监控网络活动、排查网络故障、查看端口占用情况等。
        
        lsof -i:9000
        #lsof(List Open Files)是 Linux/Unix 系统中用于查看当前系统打开文件的工具。在 Unix/Linux 中,一切皆文件(包括网络连接、设备、管道等),因此 lsof 可用于监控进程打开的文件、网络连接、套接字等信息,常用于排查文件被占用、进程异常、端口占用等问题。
        #-i:按端口或网络连接筛选:-i
        #功能:查看与网络相关的打开文件(如套接字),支持按协议、端口号、IP 地址筛选。
    	#格式:-i [protocol][@host|hostaddr][:port|portrange]
    	
    	
    	#lsof -i :80       # 查看占用 TCP 80 端口的进程(HTTP 服务)
        #lsof -i tcp@192.168.1.1:22  # 查看与 192.168.1.1:22 建立的 TCP 连接
    	#lsof -i UDP       # 查看所有 UDP 套接字
    
        查看9000端口
    
    10.改nginx的配置文件
    
    
    
    安装mysql
    
        apt-get install mysql-server
        mysql
        
        #存在一个问题,当前的mysql没有密码,且mysql8.4和php7.4之间的连接会出问题。
        设置root用户的密码
        
        ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
        
        flush privileges;
    
    小皮面板

    https://m.xp.cn/phpstudy

    宝塔面板

    https://www.bt.cn/new/download.html

docker搭建

命令

grep:grep -r  "内容" /etc/ssh,找到包含该内容的文件

http协议、渗透测试、信息收集
端口
1-6 5535

静态端口

  • http 80
  • https 443
  • ssh 22
  • ftp 21、20

动态端口 3306除外
1024-65535

http协议

  • 超文本传输协议
  • 请求响应模型
  • http协议——应用层 80

URL和URI(统一资源标识符)
http、https、ftp获取到的网络资源的位置
http://www.test.com:80/dir/index.html?uid=1#ch1

协议名称 域名 端口 带层级的具体资源文件的路径 uid=1:查询的字符串

特点

1.无状态保存,即使用户在不久前输入过用户名和密码,但是当用户想要操作的时候。还是需要再次输入用户名和密码http请求上一次传输的数据和下一次http的请求是没有任何关系的,会话没办法持续

        Cookie,服务器发送到用户浏览器并保存在本地的一小段数据,它会在浏览器下次向同一服务器发送请求时被鞋带并发送到服务器上

        Session,与Cookie强绑定

2.无连接

3.明文传输

请求方式

get、post、put、delete

get请求特点
  1. 参数暴露再传参的地址栏
  2. 存在长度的限制
  3. 一般只进行数据的获取,不进行数据的更改
post

一般会把数据打包放在请求体当中传递
相比较而言:post请求稍微安全

请求数据包

  • 它对应的数据格式为 id=1&submit=%E6%9F%A5%E8%AF%A2
  • multipart/form-data

这个格式主要用在上传文件的请求时使用的数据格式,就是告诉服务端,现在的数据是分块传输的,你服务端要分块接收。因为上传文件的时候,文件如果比较大,我们要一部分一部分的发送给服务端。

  • application/json

它对应的数据格式为 {“id”:1,“name”:“ALICE”} ,看着有些像某些开发语言中的某个数据类型,但是这是json数据格式,与开发语言的数据格式不同。

Referer
表示发送方请求的原始地址

响应包
服务器端回给客户端的数据

状态码
200 :ok 请求成功

404 : not found 服务端没有你所请求的数据文件

500 : 服务器内部发生错误

400:客户端请求错误

302:临时重定向

渗透测试的流程
什么是渗透测试

  1. 明确目标(授权的)

  2. 信息收集(子域名、真实ip、注册人相关信息、备案号……)www.baidu.com aaa.baidu.com
  3. 漏洞检测
  4. 漏洞验证
  5. 提取所需
  6. 信息分析
  7. 信息整理
  8. 渗透测试报告生成

信息收集

  • 域名收集
  • 子域名收集
     
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐