文章目录
- 一、关于账号密码的漏洞
- 二、关于验证码的漏洞
- 三、Burp工具的使用
- 四、渗透测试
- 1. 渗透测试类型
- 2. 脆弱性评估
- 五、常见的应用安全风险
- 六、实操
- 1. 安全测试b站教程
- 2. 在浏览器中安装SwitchOmega代理管理插件
- 3. Burp中NEW_xp_CAPTCHA插件的下载安装和导入
- 4. 常见的弱口令和密码字典下载地址
- 5. pikachu初始化
- 6. 常见漏洞
- (1)基于表单的暴力拆解
- (2)4位/6位数字验证码爆破
- (3)短信验证码回显漏洞挖掘
- (4)验证码与手机未绑定认证关系
- (5)验证码转发漏洞
- (6)短信轰炸
- (7)常见的FUZZ姿势和工具
- 1)目录FUZZ
- 2)末知文件FUZZ
- 3)未知参数FUZZ
- 4)SQL漏洞中的FUZZ
- 5)FUZZ参数到远程RCE漏洞控制电脑
一、关于账号密码的漏洞
1、用户枚举漏洞
2、弱口令漏洞
3、信息密码泄露漏洞
举例:
这些网站都存在有信息密码泄露的漏洞
https://admin.alilinet.com/
https://www.sipmanor.com/seller.php?s=/Public/login
二、关于验证码的漏洞
漏洞原理:
短信验证码,报务端未对验证时间、次数作出限制,存在爆破的可能性。简单的系统存在可以直接爆破的可能性,但做过一些防护的系统还得进行一些绕过才能进行爆破,一般验证码分为4位或者6位。
对于4位纯数字验证码:从0000~9999的10000种,5分钟之内。
对于6位纯数字验证码:六位数的验证码1000000位,5分钟之内跑不完
1、验证码爆破
2、验证码回显
3、验证码与手机未绑定认证关系
4、修改返回包绕过验证码
5、验证码转发
6、任意验证码登录
7、验证码为空登录
8、固定验证码登录
9、验证码轰炸(10种方式)
三、Burp工具的使用
主要使用的模块是Proxy、Inturder、Repeater
1、Proxy 代理:拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
1.Forward:用于发送数据。当把所需要的HTTP请求编辑完成后,手动发送数据。
2.Drop:将该请求包丢弃。
3.Intercept is off/on:拦截开关。当处于off状态下时,会自动转发所拦截的所有请求;当处于on状态下时,会将所有拦截所有符合规则的请求并将它显示出来等待编辑或其他操作。
4.Aclion:将请求发送到其它模块进行交互。
2、Intruder 入侵:用于自动对Web应用程序自定义的攻击。它可以用来自动执行测试过程中可能出现的所有类型的任务。例如目录爆破,注入,密码爆破(弱口令爆破)等。
1.Target:用于配置目标服务器进行攻击的详细信息
2.Positions:设置Payloads的插入点以及攻击类型(攻击模式)
攻击模式有四种:
Sniper :狙击手模式,将一组攻击载荷分别在每一个位置上逐个放入单个payload测试。
Battering ram:攻城锤模式,遍历一组有效载荷,在所有定义的位置上放入同一个载荷。
Pitchfork:草叉模式,每一个变量对应一个字典。特点:爆破次数取决于变量少的字典。使用多组有效载荷,每个定义的位置使用一组不同的有效载荷
Cluster bomb:集束炸弹模式,组合爆破,每个变量对应一个字典,并交集爆破。特点:爆破次数为字典1×字典2。
3.Payload:配置Positions设置的标记位的字典。
4.Option:
Request Headers:UPdate content-Length header是必选的,因为payload的长度是变化的,所以勾选上这个选项更新或添加每一次请求的content-Length请求头,否则就是错误的请求。Set-Connection为close,这是为了避免和服务器进行长连接,在得到一次响应后就自动关闭连接,这样可以加快攻击速度。
3、Repeater 回放:一个靠手动操作来触发单独的HTTP 请求,并分析应用程序响应的工具。可以修改请求包重新请求。
四、渗透测试
针对网络、应用、系统三类基础设施进行测试。
1. 渗透测试类型
渗透黑盒测试: 安全审计员在不清楚被测单位的内部技术构造的情况下,从外部评估网络基础设施的安全性。在渗透测试的各个阶段,黑盒测试借助真实世界的黑客技术,暴露出目标的安全问题,甚至可以揭露尚未被他人利用的安全弱点。渗透测试人员应能理解安全弱点,将之分类并按照风险等级(高危、中危、低危)对其排序。通常来说,风险级别取决于相关弱点可能形成危害的大小。渗透测试专家应能够确定可引发安全事故的所有攻击模式。当测试人员完成黑盒测试的所有测试工作之后,他们会把与测试对象安全状况有关的必要信息进行整理,并使用业务的语言描述这些被识别出来的风险,继而将之汇总为书面报告。黑盒测试的市场报价通常会高于白盒测试。
渗透白盒测试:审计员可以获取被测单位的各种内部资料甚至不公开资料,所以渗透测试人员的视野更为开阔。若以白盒测试的方法评估安全漏洞,测试人员可以以最小的工作量达到最高的评估精确度。白盒测试从被测系统环境自身出发,全面消除内部安全问题。从而增加了从单位外部渗透系统的难度。黑盒测试起不到这样的作用。白盒测试所需要的步骤数目与黑盒测试不相上下。另外,若能将白盒测试与常规的研发生命周期相结合,就可以在入侵者发现并利用安全弱点之前,尽可能最早地消除全部安全隐患。这使得白盒测试的时间、成本,以及发现、解决安全弱点的技术门槛都全面低于黑盒测试。
2. 脆弱性评估
脆弱性评估通过分析企业资产面临安全威胁的情况和程度评估内部和外部的的安全控制的安全性。这种技术上的信息系统评估,不仅揭露现有防范措施里存在的风险,而且要提出多重备选的补救策略,并将这些策略进行比较。内部的脆弱性评估可保证内部系统的安全性,而外部的脆弱性评估则是验证边界防护(perimeterdefenses)的有效性。无论进行内部脆弱性评估还是进行外部脆弱性评估,评估人员都会采用各种攻击模式来严格测试网络资产的安全性,从而验证信息系统处理安全威胁的能力,进而确定应对措施的有效性。不同类型的脆弱性评估需要的测试流程、测试工具和自动化测试技术也不相同。这可以通过一体化的安全弱点管控(vulnerability management)平台来实现。现在的安全弱点管理平台带有可自动更新的漏洞数据库,能够测试不同类型的网络设备,而且不会影响配置管理和变更管理的完整性。
与渗透测试的区别:渗透测试不仅要识别目标的弱点,它还设计在目标系统上进行漏洞利用、权限提升和访问维护。换句话说,脆弱性评估虽然可以充分发现系统里的缺陷,但是不会考虑去衡量这些缺陷对系统造成的危害。另外,相比脆弱性评估,渗透测试更倾向于入侵,会刻意使用各种技术手段利用安全漏洞;所以渗透测试可能对生产环境带来实际的破坏性影响。而脆弱性评估以非入侵的方式,定性、定量的识别已知安全弱点。
五、常见的应用安全风险
1. 注入
将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、NOSQL注入、OS注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。
2. 失效的身份认证
通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。
3. 敏感数据泄露
许多Web应用程序和API都无法正确保护敏感数据,例如:财务数据、医疗数据和PII数据。攻击者可以通过窃取或修改未加密的数据来实施信用卡诈骗、身份盗窃或其他犯罪行为。未加密的敏感数据容易受到破坏,因此,我们需要对敏感数据加密,这些数据包括:传输过程中的数据、存储的数据以及浏览器的交互数据。
4. XML外部实体(XXE)
许多较早的或配置错误的XML处理器评估了XML文件中的外部实体引用。攻击者可以利用外部实体窃取使用URI文件处理器的内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击。
5. 失效的访问控制
未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。
6. 安全配置错误
安全配置错误是最常见的安全问题,这通常是由于不安全的默认配置、不完整的临时配置、开源云存储、错误的 HTTP 标头配置以及包含敏感信息的详细错误信息所造成的。因此,我们不仅需要对所有的操作系统、框架、库和应用程序进行安全配置,而且必须及时修补和升级它们。
7. 跨站脚本:(XSS)
当应用程序的新网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建 HTML或JavaScript的浏览器API更新现有的网页时,就会出现xSS缺陷。xss让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。
8. 不安全的反序列化
不安全的反序列化会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,攻击者也可以利用它们来执行攻击,包括:重播攻击、注入攻击和特权升级攻击。
9. 使用含有已知漏洞的组件
组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据丢失或服务器接管。同时,使用含有已知漏洞的组件的应用程序和API可能会破坏应用程序防御、造成各种攻击并产生严重影响。
10. 不足的日志记录和监控
不足的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持续性或转向更多系统,以及篡改、提取或销毁数据。大多数缺陷研究显示,缺陷被检测出的时间超过200天,且通常通过外部检测方检测,而不是通过内部流程或监控检测。
六、实操
Pikachu 漏洞练习平台
Pikachu 漏洞练习平台下载地址
资源:https://blog.csdn.net/m0_74087268/article/details/131704072
1. 安全测试b站教程
https://www.bilibili.com/video/BV1MMqGY2EP1?spm_id_from=333.788.player.switch&vd_source=f01064c075ca23a2e8ed8286c8b3f20f&p=6
2. 在浏览器中安装SwitchOmega代理管理插件
火狐浏览器和谷歌浏览器中均可安装该插件,便于切换和管理多个代理。
3. Burp中NEW_xp_CAPTCHA插件的下载安装和导入
Burp中NEW_xp_CAPTCHA插件的下载安装和导入教程
4. 常见的弱口令和密码字典下载地址
https://weakpass.com/
https://github.com/danielmiessler/SecLists/tree/master/Passwords
5. pikachu初始化
未初始化时,输入账号和密码登录,报错!!!
打开网页localhost/install.php
点击安装初始化,初始化完成!!
6. 常见漏洞
(1)基于表单的暴力拆解
查看它的响应数据-渲染页面
测试第二个账号
登录失败响应数据-渲染页面
(2)4位/6位数字验证码爆破
在bp-Intruder-payload中选择payload类型为数值—4位验证码
若是6位验证码,使用10个bp分批跑。
(3)短信验证码回显漏洞挖掘
漏洞原理:指验证码在发送的时候会存在数据包中,通过观察回显的数据包中的数据,找到验证码。
使用Repeater回放功能查看响应数据,查看验证码是否回显。
(4)验证码与手机未绑定认证关系
漏洞原理:手机验证码的短信一般来说只能用一次,如果手机验证码和手机号没有绑定认证关系,就会存在以下的情况【 A手机收到的验证码B手机可以使用】。
(5)验证码转发漏洞
漏洞原理:有些开发人员在接收手机号的时候采用的是数组接收,或者是遍历手机号,没有对手机号进行校验,我们就可以同时发送验证码到两个手机,从而达到绕过。
使用Repeater回放功能修改手机号的字段,输入多个手机号字段,查看响应数据,是否发送成功。
"mobile":"19386963121.19386963122"
"mobile":"19386963121 19386963122"
"mobile":"19386963121&mobile=19386963122"
"mobile":"19386963121"
"mobile":"19386963122"
(6)短信轰炸
漏洞原理:在一些身份校验处,有的时候需要输入手机号,接受验证码,比如登录、忘记密码、注册、绑定、活动领取、反馈处等,如果没有对发送短信进行约束,可以达到5秒发送10条短信,甚至更多的短信,对业务造成影响。
短信轰炸漏洞分为两种:
1、横向轰炸:对单个手机号码做了接收验证次数,但是可以对不同手机号发送短信无次数限制
2、纵向轰炸:对一个手机号码轰炸多次
(7)常见的FUZZ姿势和工具
Fuzz:模糊测试。在平时漏洞挖掘中,如果没有成果或者是【空白页面】,【目录扫描不出来结果】,【发现更多资产】的时候就需要用到FUZZ技术。
好用的FUZZ字典下载地址
FUZZ可用于:
1、破解密码
2、扫描目录
3、扫描参数
4、测试漏洞
1)目录FUZZ
目录FUZZ是针对网站上存在的文件夹进行FUZZ,看看是否存在可以访问的文件夹让我们更好的了解网站的目录结构。可以逐级FUZZ,查看目录下有那些文件夹,文件夹下有哪些文件/文件夹…
2)末知文件FUZZ
末知文件FUZZ是我们知道存在的文件夹之后,对文件夹下面的文件进行测试,文件后缀类型有【PHP)【JSP】【ASP】【ZIP】【PNG】【JPG】【RAR】【7Z】【MP4】等等。
3)未知参数FUZZ
当我们找到一个页面的时候,如果测试后没有任何的结果。可以使用FUZZ,未知参数,参数值,隐藏的变量等。