登陆页面/登陆框渗透测试思路

admin 2024年4月24日07:48:33评论4 views字数 4720阅读15分44秒阅读模式

0.前言

由于都是发自己的文章,所以也不会有那么多的内容发布,一周可能也就更新个两篇,如果工作忙,可能一周就一篇,但是文章都会很细致,暂时只更新学习笔记,至于挖洞思路,小菜鸟还不配。

0.1.免责声明

传播、利用本公众号剁椒鱼头没剁椒所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号剁椒鱼头没剁椒及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

0.2.其它

部分文章由于之前授权给其它公众号发布,所以有些并未加入相关的系列中,还请到历史文章中查看,尤其是提取方面的文章。

由于不少朋友和我说使用CSDN看文章不方便,有时候设置粉丝阅读后还需要登陆账户,所以这里我准备了一个公众号,会陆续将文章同步过来,期间可能也会发一些其它内容。

文章内容太多不适合使用手机观看,手机只适合用来点赞😀

内容同步于CSDN:剁椒鱼头没剁椒

内容同步于Github:https://github.com/djytmdj/Network-security-study-notes

1. 前言

以下内容均从网上汇总过来,可能有些利用方式和部分课程或文章中一致,并非主观意愿,秉承学习分享原则对其内容进行汇总,也是作为自己的笔记。

可能部分总结归类有些不准确,请不要在意这些-.-。

2. 登录页利用汇总

以下内容均是找到相关利用方式,再通过自己的语言进行组织,并非实战教程,但是可以拓宽自己的思路,想必会更好的测试到相关漏洞。

不是实战,不是实战,不是实战,只是总结的思路,所以基本上都是文字,同时图片可能都是网上的,并且是针对渗透测试的时候该要去测试的,不一定全面。

2.1. 验证码

在用户的账号密码重置、注册、登陆都可以尝试测试。

2.1.1. 验证码爆破

通常手机号来注册的网站都会使用到验证码,而手机上的验证码通常都是4位或6位的数据,很少会出现有字母的情况,而你需要做的就是,首先使用自己的手机号来注册以下,看看验证码是多少位,是否存在字母的情况,那么你在注册的可以尝试,设定一定的范围,而这个范围包含你的手机号获取到的验证码,然后看看是否能够对其进行爆破。

而验证码存在的位置不局限于登陆页面,可能也会存在个人信息修改、密码重置等位置,所以这里可以开阔一下的自己的思想,尽量将所有存在验证码的位置都进行测试一下。

2.1.2. 验证码回显

验证码回显其实这个在我的逻辑漏洞文章中都提到过,主要就是关注页面中是否存放明文的验证码,或者在发包的时候抓取一下响应包,有时候验证码就可能会在响应包中存在,多关注一下响应包。

还有就是正常情况下验证码应该是以图片形式返回,但是再包中直接是显示字符串,并且返回前端校验....

2.1.3. 注册码回显

注册码,有些网站需要使用注册码才能够进行注册,而你也可以利用验证码回显的思路,看看回显包中是否存在注册码,有些网站注册码可能都是一个,就会写的比较死,或者直接在包中进行比较,还有就是有些会在回显包中对你输入的注册码进行校验,那么就会出现正确的注册码,那么这也就会出现一个漏洞。

2.1.4. 无效验证码

无效验证码,顾名思义就是这个页面当注册的时候是无效的,比如明明是1234,但是你输入个4321也能够注册成功,这个不单单是注册的时候能够测试,比如登陆的时候,也可以尝试是否验证码生效。

如果无正确的账号密码该如何测试,很简单,一般情况下,登陆页面会先校验验证码是否正确,如果正确再去校验账号密码,那么你就可以随便输入一个账号密码,然后在随便输入一个验证码,如果直接出现账号密码错误,那么可能存在无效验证码的情况,而如果出现验证码错误,那么可能就不存在这个漏洞。

但是不是绝对性。

还有一种情况就是在注册或者找回密码的时候,去抓验证码的包,将验证码字段删除,或者为空,看看是否会生效。

2.1.5. 验证码复用

这个就是一个验证码用完后,并未重新生成,一直都是一个验证码,就导致可以实现账号密码爆破。

2.1.6. 短信轰炸

短信轰炸,简单来说就是对一个手机号进行多次发送验证码,抓个包一直重发,当然你要看看有没有什么cookie值啥的,有的话尝试删除,在测试有没有绕过,有些网站会通过你的IP地址,或者一些时间校验,来限制你发包,比如你发完后,页面会显示60秒后再尝试发送,那么你抓包看看是否真的限制了60秒。

同时短信轰炸又分为,发送给一个手机号,还有就是批量发送给不同手机号。

2.1.7. 批量注册

这个是基于验证码无效的情况,对用户名字段进行不断的修改,使其能够成功注册。

2.2. 数据校验

这个主要就是由于数据包到服务器的时候未再次校验导致的。

2.2.1. 返回包修改

在部分网站中可能会存在返回包的情况,比如会出现错误显示flash,那么可以尝试是否能够将flash修改为ture,或者状态码400,修改成200,但是有些开发人员会有自己的癖好,可能不安套路出牌。

2.2.2. 关系校验

这个关系校验就是当发送验证码的时候,未做手机号或邮箱与验证码之间的关系校验,比如你给你自己的手机号发送一个验证码后,当在修改的时候,对其抓包,将数据包中的手机号进行替换,如果成功,那么就证明验证码未进行关系检验。

这里还可以对其用户名进行校验,比如在重置密码界面,会默认向绑定的手机号发送验证码,那么可以尝试抓包,看看包中是否存在手机号字段,将字段中的手机号修改成自己的,然后放包,当自己的手机号获取验证码后,再输入上去,如果未进行关系校验,那么就能够实现重置,如果校验了,那GG。

2.2.3. 未授权登陆/访问

这个说一个我遇到的,我再企业中,业主上线了一个系统,登陆页面是通过二维码登陆的,并非是输入账号密码,而再测试的时候,我发现甲方将登陆状态的页面发送过来后,不需要扫二维码,直接登陆,然后发现URL中存在甲方的手机号,然后我推出后,凭借URL,直接又登陆进去了,为了测试准确,我将浏览器全部情况,又换虚拟机测试,我发现只要获取手机号后,可以任意登陆。

而这只是一个例子,我还遇到的是,一些源码泄露,使用接口来实现页面接入的,而直接输入这些URL后,可以直接跳转到相关页面,并且可以操作......这....但是也有一些是你能访问这个页面但是操作不了。

2.2.4. 用户名覆盖

这个我也是看到CSDN中一篇文章看到的,简单来说就是数据库未对已存在的用户名进行校验,就会导致重复注册,而重复注册后就会让原先的账户消失,甚至是注销,还有一种就是再修改个人信息的位置,如果你修改的时候,将用户名修改很数据库中存在的用户名,那么就可能会出现将对方的数据同步过来。

2.2.5. 无效用户名

这个和批量注册有点相似,简单来说就是对手机号未进行建议,导致一些类似这类手机号123456789101都可以注册,也就是说未对手机号进行建议,导致虽然是手机号注册,反而成了用户名注册了......当然也是前提条件是验证码无效,很多注册方式都是基于验证码无效才能够成功测试的,或者抓包修改一些参数。

2.2.6. 登录框持久

这个就是当你打开登陆页面的时候发现账号密码都已经填好了,你直接点击登陆就可以了,这类多出自测试系统,或者失误导致的,我之前就遇到过友商家新的测试系统,再端口映射的时候,将测试系统映射上去,结果账号密码还写死了,直接登陆,进去后泄露了很多客户的个人信息,后来我问了一下才知道,这个是测试系统,运维人员映射端口的时候,映射错了,将测试系统的界面映射出来了.....

2.3. 信息泄露

2.3.1. 源码泄露

在部分测试网站中,可能开发人员为了方便,会将密码直接写死,放在源码中,这时候查看一下源码,到密码校验的位置,找一找,有可能会有意想不到的结果。

2.3.2. 敏感信息泄露

我觉得这个我要说的话可能和未授权登陆/访问有点相似,但是又是不同的两个东西,可以通过上述说过的方式来看看有没有敏感信息泄露,还有就是让登录框报错,登录框输入的内容是需要提交到数据库中处理的,那么你可以随便输入一些字符让其报错,看看有没有将一些敏感路径泄露的。

2.4. 用户名相关

这个更多的是在用户名出可能会出现的。

2.4.1. 万能密码

这个其实就是sql注入,这个就不说了,百度一搜一大堆。

asp aspx万能密码
 
1:  "or "a"="a
2:  '.).or.('.a.'='.a 
3:  or 1=1--
4:  'or 1=1--
5:  a'
or' 1=1--
6:  "or 1=1--
7:  '
or.'a.'='a
8:  "or"="a'
='a
9:  '
or''='
10: '
or'='or'
11: admin'
or 1=1#
PHP万能密码
 
admin'/*
密码*/'

 
'or 1=1/*
"or "a"="a
"or 1=1--
"or"="
"or"="a'
='a
"or1=1--
"or=or"
'
'or'='or'
') or ('a'='a
'.).or.('.a.'='.a
'or 1=1
'
or 1=1--
'or 1=1/*
'
or"="a'='a
'or' '1'='1'
'or''='
'or''=''or''='
'or'='1'
'or'='or'
'or.'a.'='a
'or1=1--
1'
or'1'='1
a'
or' 1=1--
a'
or'1=1--
or '
a'='a'
or 1=1--
or1=1--
jsp 万能密码
     
1'or'1'='1
admin' or 1=1/*

2.4.2. 用户名爆破

这个简单来说就是通过对用户名处做爆破,有些网站会对用户名处进行模糊处理,比如,你输入的账号密码错误,而如果出现,你输入的用户名错误,或者密码错误,当出现密码错误的时候,就证明有这个用户,那么你就可以收集这些信息,那么这样就证明网站在页面未作模糊处理。

2.4.3. 账号锁定

这个简单来说就是网站没设置多次错误锁定账户的情况,那么就可以实现密码爆破。

2.5. 漏洞类

使用一些历史漏洞来实现登陆绕过,或者其它漏洞。

2.5.1. RCE漏洞/nday

这一类基本上都局限于使用一些框架中会出现,比如什么OA系统呀等等。

2.5.2. 弱口令

这个就用sg库搞一搞,或者简单的密码一直试试,字典跑等。

2.5.3. XSS

XSS这个也不用说了吧,有洞就插,有框就插。

2.6. 越权类

这个就需要深入的挖了。

2.6.1. 垂直越权

由于后台应用没有做权限控制,或仅仅在菜单、按钮上做了权限控制,导致恶意用户只要猜测其他管理页面的URL或者敏感的参数信息,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。

2.6.2. 水平越权

指攻击者尝试访问与他拥有相同权限的用户资源。例如,用户A和用户B属于同一角色,拥有相同的权限等级,他们能获取自己的私有数据(数据A和数据B),但如果系统只验证了能访问数据的角色,而没有对数据做细分或者校验,导致用户A能访问到用户B的数据(数据B),那么用户A访问数据B的这种行为就叫做水平越权访问。

2.7. URL类

2.7.1. UID拼接

比如微博、CSDN都是url后面添加UID能够实现查看对方的主页,而这种是公开的,所以没有什么影响,如果是不允许这样操作的呢,那你通过修改url中的UID实现查看对方的主页是不是就成了未授权访问了?

2.7.2. URL跳转

URL跳转就是在部分登陆的页面中可能会存在?后面出现另外一个地址,而且如果能够修改,是不是就实现了URL跳转,如果再做一个钓鱼界面呢?

3. 总结

总之再登陆框的位置还有很多的测试方式,可能不全面,但是找的也差不多了,并且有些方式组合到一起可能会有意想不到的收获哦!!

原文始发于微信公众号(剁椒鱼头没剁椒):登陆页面/登陆框渗透测试思路

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月24日07:48:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   登陆页面/登陆框渗透测试思路https://cn-sec.com/archives/2081811.html

发表评论

匿名网友 填写信息