登录界面——渗你千千万万遍

2023-11-18

常见的登录界面的渗透测试思路

声明:
未授权情况下攻击站点属于非法行为,请不要进行任何非授权的网络攻击,由于传播、利用本文所提供的信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任(求生欲拉满)


前言:

大家都知道,渗透的过程中,遇见登录框是很常见的,可以说,渗透遇见登录界面的概率,就像玩游戏要打开steam一样了(doge)
下面本小菜鸡就简单总结一下渗透中遇见登录页面的思路:

  • 从登录框突破

既然是登录页面嘛,那最显眼,最核心的功能也就是登录框了,对于突破登录框的方法,由简到难总结如下:

1.弱密码与暴力破解

弱密码与爆破可以说是本小菜鸡在SRC上成功通过的第一个漏洞了,为啥把他们放在一起归类呢,因为在尝试从登录框突破的思路中,我首先会尝试使用类似admin/admin这样的弱密码进行登录,如果失败,那么在条件允许的情况下,便会开始爆破了,爆破的核心也是弱密码。
sqllab的第十一关就可以使用这个思路。
在这里插入图片描述如果同志们想自己构造一些含特殊意义的密码进行爆破(比如收集到目标生日/姓名后)可以使用kail中的一款社工工具Cupp生成字典。
在这里插入图片描述

2.万能密码、SQL与XSS(注入)

2.1 万能密码

万能密码其实是一种SQL注入方法,所以这里就把它与sql、XSS归类到一起。
万能密码与sql注入的原理相同,例如:
一般Mysql数据库的登录框sql语句如下:
select name.passwd from users where username=‘name’ and password=‘pwd’,通过创造一个特殊的字符串带入查找语句,我们可以构造例如下列万能密码尝试绕过:

’ or  ‘1’=’1
‘ or 1=1 - -
admin‘ or 1=1 - -
1'or'1'='1'or'1'='1   
2.2 sql注入

要检验登录框是否存在sql注入,要抓包观察回显信息,原理于上条万能密码相同,也就是使用常规sql注入的方法,例如在登录框中添加’后,观察回显是否不同,是否报错,就可以在登录框实现注入了。也可以利用参数溢出的思路查看是否有报错信息。
sqllab的第十一关就可以使用这个思路:

注入语句:admin' and 1=2 union select database(),2 #

回显如下:
在这里插入图片描述

2.3 XSS+CSRF

xss在登录框比较少见,而且输入框也有字数限制,但是也不是没有,这里主要提供思路,使用目标不限于登录框
这里有两种情况,一种是存储型xss没有csrf,存在的xss也不属于self-xss简称自插(doge),面对这种情况,就要利用到xss平台,创建项目后,在可能存在xss的地方注入。
在这里插入图片描述如果目标管理员打开了插入payload的地方,
回显的cookie会被XSS平台自动收集到箭头所指的地方。
在这里插入图片描述如果获取到完整的cookie数据,包括cookie和session就可以使用postman登录了.
如果不需要session,可以使用cookie插件进行登录。
在这里插入图片描述在这里插入图片描述使用添加模块,确认后刷新即可。

另一种情况是当网站同时存在xss与csrf,但是xss是没啥用的self-xss(self-xss是:只能对本地客户端产生影响的跨站脚本攻击,举例来说就是获取到的cookie是自己的),虽然selfxss没有什么实际危害,但是一旦结合跨站请求伪造则会导致危害升级,并且成为存储型的跨站脚本攻击。当然前提是测出来了存在这两处漏洞。
操作就是用bp拦截xss的数据包,然后生成POC
在这里插入图片描述再制作成钓鱼链接,诱使他人点击。
前几日看见一个挖掘xss的思路觉得不错,也在这记录一下:
Self-XSS的场景:
一些网站为了用户体验在提交信息失败并且需要返回去填的时候会帮你自动把之前填写的信息补全回来但是很多网站也不会对输出进行过滤,这样就可能存在 XSS 的漏洞,比如:用户登录失败的时候网站会自动把上次尝试登陆的用户名补全,但是并没有对用户名信息进行过滤,所以就存在 XSS。


如果通过以上思路从登录框突破,成功登录后可以根据网站功能点继续深入。


  • 寻找逻辑漏洞

如果在登录框无法找到切入点去深入,也可以从发现漏洞的目的挖掘逻辑漏洞。

1.用户名枚举

利用登陆时输入系统存在的用户名错误密码和不存在的用户名错误密码,返回不同的出错信息可枚举出系统中存在的账号信息。
通过这种思路,利用手工方式,输入系统中存在的用户名和不存在的用户名,密码随意,尝试登录,查看其回显内容。例如:输入存在的用户名admin,密码错误;输入不存在的用户名test,用户不存在。
在这里插入图片描述

2.任意密码重置

很多网站存在找回密码功能,但是未对发起密码重置请求的用户身份做校验,导致任意密码重置漏洞的产生。
比如有些网站的忘记密码,重置密码功能中只需要输入待重置密码的账号,并没有向用户绑定手机发送验证消息,导致攻击者可以重置管理员的密码。在这里插入图片描述这里举例的是最简单的一种情况,即便有些网站有向用户手机发送验证短信的功能,也可能存在这样的漏洞。
在这里插入图片描述比如有时候验证码会直接在返回包中生成,或者验证码在本地认证,验证码可爆破,或者网页在找回密码时,向用户填写的手机号发送短信,由于没有校验机制,导致攻击者可以填写自己手机号重置管理员的密码,类似思路有很多,可以根据实际情况随机应变。

3.任意用户注册

应用程序未使用验证码等防自动化操作的方法,可批量注册。注册不需要验证码时,攻击者通过编写自动化脚本,实现程序自动提交注册信息;若注册需要验证码,但验证码位数不多于4位且为纯数字时,通过使用软件burpsuite的intruder功能穷举得到正确的验证码后,再结合自动化脚本工具即可实现批量注册垃圾账号。
在这里插入图片描述

4.短信轰炸

短信轰炸——赏金猎人的最爱
短信轰炸攻击是常见的一种攻击,攻击者通过网站页面中所提供的发送短信验证码的功能处,通过对其发送数据包的获取后,进行重放,如果服务器短信平台未做校验的情况时,系统会一直去发送短信,这样就造成了短信轰炸的漏洞。
短信轰炸又分为任意手机号短信轰炸和当前手机号轰炸,不同情况威胁级别不同。
操作方法用burp重放或爆破都可以。
在这里插入图片描述在这里插入图片描述

利用Null payloads 模块可以指定次数反复重放同一数据包

5.任意用户覆盖

任意用户覆盖是用户注册模块中存在的逻辑漏洞,攻击者可以在注册页面恶意注册与已知用户同名的账号达到注销用户的目的。
在这里插入图片描述同样的思路也可以利用到重置密码的思路中,在正常重置密码的流程最后一步修改重置密码用户。不同网站思路不同,主要根据数据包内容决定思路。

6.验证流程绕过

密码修改一般分为三个步骤:1)用户输入需要修改密码的账号;2)验证;3)密码重置。如果服务器在最后密码重置中没有对上一步流程进行进一步的校验,则可能导致验证步骤可以被绕过,从而可以修改任意用户密码。

测试方法: 在找回密码页面输入自己的账号,点击下一步进入获取验证码页面。点击获取验证码,提交获取的验证码,进入密码重置页面,记录密码重置页面的URL。在找回密码页面输入需要重置密码的他人账号,点击下一步进入获取验证码流程,点击获取验证码。在浏览器地址栏输入记录密码重置页面的URL,测试是否可绕过第二步验证直接进入重置密码页面。如果可以进入,直接输入新密码测试是否可以成功修改密码。


  • 验证码问题

1.验证码不生效/可爆破/可重复利用

找回密码的时候获取的验证码缺少时间限制,仅判断了验证码是否正确,未判断验证码是否过期,导致验证码可以重复利用,同时如果验证码为4位存数字,可以利用正确验证码与错误验证码的返回值不同判断枚举验证码是否正确。
在这里插入图片描述

2.验证码可识别

指图片验证码比较"存粹",没有点和线的干扰,可以利用工具自动识别验证码达到绕过
captcha-killer开发者出品的使用指南
在这里插入图片描述

3.验证码绕过

3.1 验证码回显前端

获取验证码时验证码回显前端,并直接返回在Response内容中
在这里插入图片描述

3.2 本地验证的绕过

客户端在本地进行验证码的正误的判断,判断结果也可以在本地修改,导致可以修改状态值达到绕过效果。
在这里插入图片描述
绕过人机验证的技巧


  • 页面非功能点突破

如果在上述功能点中未找到突破口或漏洞,这时候可以换一种思路从网站本身去发现问题,比如敏感信息泄露等。

1.目录扫描

通过目录扫描发现敏感信息或是后台与文件
曾经我就听同学介绍过他的一种思路:在发现登录页面后扫描后台,发现后台存在集合了用户真实姓名和生日的表,并且这个生日就是用户密码。这无疑也证明了敏感信息泄露的可利用性之高。

2.页面JS文件

成因:一些粗心的开发者将各式敏感信息存储在JavaScript脚本中,由于JS的特性,攻击者可以对这些信息一览无余,右键源代码就可以。
有时候JS文件较多也可以逐个审查,很可能会找到敏感信息或接口。
JS扫描工具JSFind:

3.NMAP端口扫描

nmap用来发现其它端口,大家应该都熟
nmap使用方法:click here

4.URL重定向/存在黑页、后门等

指的是网络应用程序接受用户可控的输入作为到外部站点的链接,然后在重定向中使用该链接。可以认为是SSRF一种,通过将URL值修改为恶意站点,攻击者可以成功启动网络钓鱼诈骗并窃取用户凭据。
常见的参数名

redirect 
redirect_to 
redirect_url 
url jump 
jump_to 
target 
to
link 
linkto 
domain

例如:http://www.aaa.com/bbb?url=http://ccc.com,如果成功跳转指定的URL,说明存在URL跳转漏洞。
如果没有成功跳转,不能说明不存在URL跳转漏洞。后台可能会对用户请求的链接进行处理。这里我们要尝试绕过。
绕过技巧


  • 框架、中间件问题

框架与中间件问题是个说不完的问题,由于我没自己设计过页面,对页面框架的了解有限,所以就简单说说,要是了解更深了,就再开一篇。
框架问题分为CMS,网页框架,中间件框架等

1. CMS

CMS,内容管理系统,也可以理解成为网站建设系统。如果知道网站CMS类型,可以有针对性的调用漏洞库相应xday进行渗透。
常见cms
识别网站CMS的方法:
在线指纹识别网站:
在线指纹识别1
在线指纹识别2
还有一些工具 比如whatweb CMSeeK,也可以通过robots.txt文件进行识别,比如可以看出这个是WordPress的CMS
在这里插入图片描述或者直接写出了用了什么cms在这里插入图片描述最简单的办法是直接复制路径去搜索引擎查询,回显可能显示CMS类型

在收集到CMS类型后,可以针对性的调用xday。
在这里插入图片描述

2.中间件

通过端口识别:
Webshpere应用程序,默认端口号为9080
webshpere管理工具,默认端口号9090
JBOSS,默认端口号为8080
TOMCAT,默认端口号为8080等
同样,有时通过抓包也可以能获取到中间件信息。报错界面有时也会暴露中间件信息。
在这里插入图片描述五种常用中间件渗透思路


  • 一些风险

1.明文传输

认证或者修改密码等传输过程中未对密码等敏感信息加密。这个洞很多网站都有,一些密级不高的网站不会收取这个漏洞,因为加密会增加成本,也会影响用户体验。
测试方法很简单,就是再提交用户名密码的时候抓包,观察数据包中敏感信息是否未明文。
在这里插入图片描述

2.密码复杂度缺陷等

密码复杂度缺陷指系统对密码复杂度未作要求,用户或管理员可能设置简单的弱口令作为密码,导致弱口令。

在这里插入图片描述


思路千万条,(靶场)实战第一条,同志们记得给个赞b( ̄▽ ̄)d,拜拜ヾ(•ω•`)o
皮卡出搭建
DWA搭建

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

登录界面——渗你千千万万遍 的相关文章

  • HTML编码与解码

    由于HTML是一种由符号标记的语言 所以该语言占用了一些表示的符号 而页面随时需要表示这些符号 所以HTML将一些被占用的符号或一些特殊功能的符号使用了一些特殊的方法标记 以便展示 这些方法就是HTML编码 HTML 中的预留字符必须被替换
  • js 给对象写 JSON.stringify 的方法

    但我们自己定义的对象 想要执行 JSON stringify 没法被序列化的属性就会产生报错 这时候应该用 toJson 来重写 具体代码是 object toJSON function return outputA a ouputB b
  • sqlite数据库处理大量数据(千万)

    先挖坑 连接 https www shuzhiduo com A VGzlVep15b
  • 5分钟学会创建微信小程序,超简单的入门指南

    小程序商城是一种在手机端直接购买商品的平台 它能够为商家提供便捷的销售渠道 并为消费者提供方便快捷的购物体验 要搭建一个小程序商城 我们可以通过乔拓云网进行操作 首先 我们需要登录乔拓云网的后台管理系统 在登录后台后 我们可以看到一个商城管
  • 解决 logback不打印 Mybatis SQL等相关日志 日志

    我使用的是 logback 1 2 3版本 其 maven 依赖如下

随机推荐

  • xd插件ui face

    简介 方便使用随机头像 使用 1 安装 略 2 在画布上画多个个圆圈 SHIFT CLICK画正圆 ALT CLICK复制 3 使用alt 框选全部的圆圈 4 对齐排列 5 如图点选 6 如图点选2 然后按 Apply 按钮
  • 【华为OD机试真题2023 JS】通信误码

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 通信误码 时间限制 1s 空间限制 32MB 限定语言 不限 题目描述 信号传播过程中会出现一些误码 不同的数字表示不同的误码ID 取值范围为1 65535 用一个数组记录误码出
  • 使用Jenkins自动部署vue项目

    1 Jenkins简介 Jenkins是开源CI CD软件领导者 提供超过1000个插件来支持构建 部署 自动化 满足任何项目的需要 2 Jenkins安装 这里是使用docker compose安装Jenkins 所以需要先安装docke
  • 2018-10-22心得

    gtest 今天学习使用了gtest gtest 主要使用方法就是在一个 TEST TEST F 里写测试用例 然后通过在main函数使用 RUN ALL TEST 即可运行 gtest 对于TEST F 实际跟TEST 基本一样 但是它多
  • 随机信号分析实验(matlab仿真实验)

    一 实验内容 1 产生均匀分布的随机数 高斯分布的随机数和其他分布 瑞利 卡方 的随机数及画图 对生成的随机数进行分析 2 检验 1 中产生的均匀分布 高斯分布的数学期望和方差 并画出各种分布的随机变量的概率密度直方图 3 两组及多组独立的
  • redis缓存的预热、降级、雪崩、穿透、击穿

    一 预热 指将一些可能经常使用数据在系统启动的时候预先设置到缓存中 这样可以避免在使用到的时候先去数据库中查询 还有一种方式就是添加一个缓存刷新页 这样通过人工干预的方式将一些可能为热点的key添加到缓存中 二 降级 当访问量突然剧增 服务
  • JS中定时器的用法以及窗口的滚动条函数

    在JS中定时器由setInterval函数设置 第一个参数为定时器的回调函数 第二个参数为间隔 单位为毫秒 窗口的滚动由window对象的scrollBy函数和scrollTo函数完成 例子如下
  • 通过安装cpolar内网穿透在Kali上实现SSH远程连接的步骤指南

    文章目录 1 启动kali ssh 服务 2 kali 安装cpolar 内网穿透 3 配置kali ssh公网地址 4 远程连接 5 固定连接SSH公网地址 6 SSH固定地址连接测试 简单几步通过cpolar 内网穿透软件实现ssh 远
  • jsonp跨域

    由于浏览器的同源策略 前端请求存在跨域问题 jsonp解决跨域是利用了html的有些标签 例如script link img iframe等的天生具有跨域请求的特点 例子如下 a href 测试 a
  • 逃跑吧少年辅助快乐羊儿吧

    逃跑吧少年是4399刚刚推出的一款小游戏 收到热烈欢迎 绝对的高热度2d刺激小游戏 同时我还发过一个帖子不过被CSDN删掉了 所以我来这里我自己的博客重新发一遍 下载地址 点我下载 点击后会跳转到诚通网盘 有三个按钮 大家点击普通下载按钮
  • 渗透测试——cookie注入

    1 cookie注入原理 Cookie最先是由Netscape 网景 公司提出的 Netscape官方文档中对Cookie的定义是这样的 Cookie是在HTTP协议下 服务器或脚本可以维护客户工作站上信息的一种方式 Cookie的用途非常
  • CTFHUB-时间注入

    时间盲注 页面回显的结果只有一种 原理和布尔盲注盲注类似 用 if exp sleep N 1 为例 true 页面执行了sleep N 就会等待N秒再执行 false 页面秒刷新 常用函数 sleep N 暂停或睡眠或等待脚本执行N秒 查
  • Android常见SWT/ANR原因

    文章目录 一 为什么需要SWT 二 常见问题类型 三 常见SWT ANR原因有如下几种 1 等锁 2 SurfaceFlinger卡住 3 Native方法执行时间过长 4 Binder Server卡住 5 Zygote fork进程时卡
  • error: #29: expected an expression,error: #140: too many arguments in function call

    新手学习stm32遇到的小问题分享 小白有时候头脑发热就会出现低级错误 以此自戒 函数调用出现错误 函数只有在定义或声明时需要定义参数才需要用到数据类型 如果调用时再使用数据类型就会出现一下问题 只需把RCC Config void 改为R
  • 前端面试题:一个200*200的div在不同分辨率屏幕上下左右居中,用css实现。

  • Bootstrap页面内容——边框、颜色、显示、嵌入

    Bootstrap 一 边框 1 添加边 2 删除边框 3 边框颜色 4 边框圆角 4 大小 二 颜色 1 文字颜色 2 背景颜色 3 背景渐变 三 显示Display 1 常用显示属性 2 none 3 设备 4 嵌入 1 长宽比例处理
  • Jupyter 的安装及使用,超详细懂中文就会

    这里是本文的目录 Jupyter 是什么 Jupyter Notebook 的安装 命令行安装 Jupyter Notebook VsCode 安装Jupyter Notebook Anaconda 安装Jupyter Notebook V
  • 华为od机考题目-HJ68-成绩排序(比较难)

    while 1 try count int input reverse True if input 0 else False temp lt
  • Go面试必会基础题

    文章目录 1 请指出下面代码的错误 2 下面代码输出什么 3 下面代码输出什么 4 下面的代码有什么问题 5 下面代码输出什么 6 下面代码有几处错误的地方 请说明原因 1 请指出下面代码的错误 package main var gvar
  • 登录界面——渗你千千万万遍

    常见的登录界面的渗透测试思路 声明 未授权情况下攻击站点属于非法行为 请不要进行任何非授权的网络攻击 由于传播 利用本文所提供的信息而造成的任何直接或间接的后果及损失 均由使用者本人负责 文章作者不为此承担任何责任 求生欲拉满 前言 大家都