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

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


前言:

大家都知道,渗透的过程中,遇见登录框是很常见的,可以说,渗透遇见登录界面的概率,就像玩游戏要打开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搭建

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐