网络安全|渗透测试入门案例分析,从零基础入门到精通—登录框页面的快速渗透常用检测手段

news2024/9/29 7:31:20

目录

引言

1、弱口令

2、万能密码绕过

​编辑

3、登录认证绕过

3.1.令牌刷新端的错误配置

3.2. 错误的sso配置

 3.3.CMS个例的访问问题

3.4.JWT Token的错误解析

3.5.暴力修改Authentication

4、图形验证码不失效

5、短信验证码不失效

6、短信攻击

7、反射型跨站脚本攻击

8、SQL注入

9、任意用户密码修改/重置

10、敏感信息泄露

11、目录遍历

12、框架漏洞


引言

在网站后台登录的页面常用的渗透办法今天给大家分享一下,这样更好的让大家在日常维护网站的时候好注意在各个方便进行防御。

 

1、弱口令

测试方法:
可以手动测试例如下面的一些高频弱口令,2.根据网站所使用的第三方组件,寻找特定的弱口令或默认口令进行登录。或者直接BP走一波。一个6位数的纯数字密码使用保利破解仅需要3S即可。

admin:123456
admin:admin
admin:admin@123
admin:12345
test:test

2022年安全部门统计发布的Top20弱口令排行榜:

2、万能密码绕过

测试方法:

(1) 用户名输入: ‘ or 1=1 or ‘  密码:任意
(2)Admin’ - -(或‘ or 1=1 or ‘ - -)(admin or 1=1 --) (MS SQL)(直接输入用户名,不进行密码验证)
(3)用户名输入:admin   密码输入:’ or  ‘1’=’1 也可以
(4) 用户名输入:admin' or 'a'='a    密码输入:任意
(5) 用户名输入:‘ or 1=1 - -
(6) 用户名输入:admin‘ or 1=1 - -  密码输入:任意
(7) 用户名输入:1'or'1'='1'or'1'='1   密码输入:任意

 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: 1 or '1'='1'=1
   12: 1 or '1'='1' or 1=1
   13: 'OR 1=1%00
   14: "or 1=1%00
   15: 'xor
   16: 新型万能登陆密码
   用户名 ' UNION Select 1,1,1 FROM admin Where ''=' (替换表名admin)
   密码 1
   Username=-1%cf' union select 1,1,1 as password,1,1,1 %23
   Password=1
   17..admin' or 'a'='a 密码随便


   PHP万能密码
   'or'='or'
   'or 1=1/* 字符型 GPC是否开都可以使用
   User: something
   Pass: ' OR '1'='1

   jsp 万能密码
   1'or'1'='1
   admin' OR 1=1/*
   用户名:admin 系统存在这个用户的时候 才用得上
   密码:1'or'1'='1

 

 

3、登录认证绕过

测试方法:

1)直接访问内部URL。使用扫描工具找到含有admin、manager、administrator、login等词语的路径,尝试使用普通的登录用户访问这些URL。从而获得管理员的权限。
2)修改参数绕过认证。应用程序可能会会使用一个参数或一个隐藏的域表示一个用户是否经过验证了,通过修改这些参数,从而被认为是已经认证过的用户。例如:http://www.xxx.xom/userinfo.jsp?authenticated=no,通过修改authenticated参数为yes,http://www.xxx.xom/userinfo.jsp?authenticated=yes,然后就可以通过认证,直接访问内部页面。
3)可猜测的SessionID。利用规律,猜测到一个有效的SessionID,然后通过修改请求中的SessionID为一个预测到的有效的SessionID,从而冒充会话的真正拥有着,绕过认证环节。
4)CSRF。利用CSRF漏洞在用户不知情的情况下,利用用户的会话进行敏感操作,从而绕过认证。
5)前端验证绕过:修改返回码,一般可以尝试true、success、200、0、1等

3.1.令牌刷新端的错误配置

在这种情况下,用户使用有效凭据登录到应用程序,就会创建身份验证令牌进行身份验证。而此身份验证令牌在一段时间后过会过期。就在过期之前的这段时间内,通过 endpoint/refresh/tokenlogin 向服务器发送了一个包含 username参数的请求,此时返回包中就会出现有效 auth 令牌。

3.2. 错误的sso配置

随着平台的多样性,用户需求的不断提高,为了方便用户通过一次性用户身份验证登录多个应用程序和网站,大多数平台都会使用 SSO 系统。但是简单地使用 SSO 并不能自动保护系统: SSO 的配置也必须是安全的。

在这里,一个应用程序使用 Microsoft SSO 系统进行身份验证。当浏览internal.test.com网址时,浏览器会重定向到单点登录系统:

 3.3.CMS个例的访问问题

像 WordPress、 Drupal 和 Hubspot 这样的CMS也需要进行安全配置,以免出现这样的漏洞。

这里举一个Liferay的例子,也是基于巧合遇到的。这应用有一个无需身份验证即可访问的登录页面。

Liferay使用 portlet 作为应用的sso,它在数字编号中有一个参数 p _ p _ id。对于Portlet来讲,可以通过将参数更改为值58来访问登录 Portlet。在普通登录页面上,只能访问登录页。但是,通过直接访问 Portlet,可以访问Create Account功能,然后允许self-registration功能访问后台内容,无需授权。

 

3.4.JWT Token的错误解析

JWT 令牌或 JSON Web Token在Web 中应用十分广泛。但是,虽然默认情况下它们有一个安全机制,就是密钥,但是后端服务器的解析机制够不够安全就不一定了。

曾有个网站使用的是JWT,当直接访问时,应用程序将用户重定向到 Microsoft SSO 网页。

但是,一些 JS 文件可以在没有身份验证的情况下访问。测试时发现应用程序使用 JWT 令牌,这些令牌在安全登录后通过Microsoft SSO系统发送。在后端机制中,存在一个安全错误配置,它没有检查是否是为特定应用程序生成的 JWT 令牌——相反,它接受任何具有有效签名的 JWT 令牌。这里使用微软网站上的一个 JWT 令牌示例:

 

3.5.暴力修改Authentication

在此案例中,通过 base64编码的 XML 请求发送到后端验证。在登录机制上,它将用户名、密码分别发送。Scode 参数中的值是密码的md5值。。请求中还有另一个有趣的标志: scode 有一个值为2。

 最终发现,只要提供用户名和空密码就可以绕过认证。

 

4、图形验证码不失效

测试方法:

输入用户名、密码、验证码后,点击登陆按钮同时将数据包使用burpsuite进行拦截,并使用Repeater模块或Intruder模块进行数据重放,重新发送五次观察页面变化,是否会提示验证码输入错误等信息

5、短信验证码不失效

测试方法:

1)请求发送短信,填写任意验证码,然后提交其他操作请求,将验证码参数置空或删除,测试是否可绕过检测;
2)尝试特权验证码,如000000、111111等;
3)同一个短信验证码是否能使用多次;

6、短信攻击

测试方法:

1)手工找到有关网站注册页面,认证页面,是否具有短信发送页面,如果有,则进行下一步。
2)通过利用burp或者其它抓包截断工具,抓取发送验证码的数据包,并且进行重放攻击,查看手机是否在短时间内连续收到10条以上短信,如果收到大量短信,则说明存在该漏洞。

 

 

7、反射型跨站脚本攻击

测试方法:

1、GET方式跨站脚本:
在输入的参数后逐条添加以下语句,以第一条为例,输入http://www.exmaple.com/page.xxx?name=
文本输入框:需要对页面上所有可以提交参数的地方进行测试。具体跨站脚本的测试语句根据实际情况的不同而不同,可自行构造。
2、POST方式
例如:抓包对输入的参数进行构造语句触发XSS

8、SQL注入

测试方法:

1)通过web漏洞扫描工具进行对网站爬虫后得到的所有链接进行检测,或者手工判断是否存在注入点,一旦确认存在漏洞,可利用自动化工具sqlmap去尝试注入。几种常见的判断方法:
a、数字型。
http://host/test.php?id=100 and 1=1 返回成功
http://host/test.php?id=100 and 1=2 返回失败
b、字符型。
http://host/test.php?name=rainman ’ and ‘1’=‘1 返回成功
http://host/test.php?name=rainman ’ and ‘1’=‘2 返回失败
c、搜索型。
搜索型注入:简单的判断搜索型注入漏洞是否存在的办法是:
先搜索(’),如果出错,说明90%存在这个漏洞。
然后搜索(%),如果正常返回,说明95%有洞了。
然后再搜索一个关键字,比如(2006)吧,正常返回所有2006相关的信息。
再搜索(2006%‘and 1=1 and ‘%’=’)和(2006%‘and 1=2 and ‘%’=’)

或者直接登录框输入用户名的后面输入’看是否报数据库错误

9、任意用户密码修改/重置

测试方法:
密码修改的步骤一般是先校验用户原始密码是否正确,再让用户输入新密码。修改密码机制绕过方式大概有以下三种:

1)如果输入新密码的接口可以直接访问,那么在未知原始密码的的情况下即可直接修改密码,通常知道了他人的用户名即可任意修改他人的密码。
2)如果系统未校验修改密码的用户身份,那么在提交修改密码请求时,攻击者通过输入密码,将用户名或者用户ID修改为其他人的,即可成功修改他人的密码。
3)当修改密码时系统需要电子邮件或者手机短信确认,而应用程序未校验用户输入的邮箱和手机号,那么攻击者通过填写自己的邮箱或手机号接收修改密码的链接和验证码,以此修改他人的密码。

10、敏感信息泄露

测试方法:

1)如果比较有耐心的话可以找一下页面源码、JS文件,全局搜索password,userlogin等一些敏感词等可能存在意想不到的收获
2)查找URL信息是为了找到账号密码验证成功后跳转的URL地址,然后尝试访问此地址,看是否出现未授权访问漏洞
此处已显示账号密码验证成功后的跳转地址,直接访问此地址看是否可以未授权访问。

11、目录遍历

测试方法:

可以利用web漏洞扫描器扫描web应用进行检测,也可通过搜索,网站标题包含“index of”关键词的网站进行访问。

12、框架漏洞

常见的框架漏洞如下所示:在这里就不一一给大家解释了。

Spring框架漏洞
Struts2框架漏洞
ThinkPHP 框架漏洞
shiro框架漏洞

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/670948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL数据库】MySQL 高级SQL 语句二

MySQL 高级 SQL 语句二 一、连接查询1.1 inner join(内连接)1.2 left join (左连接)1.3 right join(右连接) 二、CREATE VIEW ---- 视图三、 UNION - - 连集3.1 UNION3.2 UNION ALL 四、交集值(取两个SQL语句结果的交集…

经典:商业智能BI解读,值得收藏

关注新闻的朋友们可能注意到了,最近这段时间关于数据要素、数字经济、数字化转型的相关行动越来越多,一方面是各级政府的政策规划以及大规模的发展行动,另一方面是则是各行各业的企业开始探寻数字经济,通过数字化转型进行改革&…

angular学习笔记

目录 1、认识Angular![在这里插入图片描述](https://img-blog.csdnimg.cn/17fe3ec067b64d75bf9d24a4e71403ed.png)2、路由2.1、路由懒加载2.2、路由守卫 3、模版指令4、生命周期4.1、父子生命周期 5、依赖注入6、RXJS7、自定义事件,自定义指令8、自定义管道9、获取d…

内网渗透(八十八)之委派攻击

委派 委派是大型网络中经常部署的应用模式,给多跳认证带来了很大的便利与此同时也带来了很大的安全隐患。利用委派,攻击者可结合其他漏洞进行组合攻击,导致攻击者可获取本地管理员权限甚至域管理员权限,还可以制作深度隐藏的后门。 委派是指将域内用户的权限委派给服务账…

【Adversarial Attack in Object Detection】物理对抗攻击和防御

目录 安全监控 **有无意义**无意义的补丁有意义的补丁 光学对抗攻击对抗灯干扰相机成像 攻击方法White-box attacksGradient-based attacks Optimization-based attacks Black-box attacksQuery-based attacksEvolution algorithm OUTLOOK 在计算机视觉中,根据实现…

征服Go世界,御剑江湖!学习路线与顶级资源一网打尽

引言 Go语言(也称为Golang)是一种开源的编程语言,由Google开发。它具有简洁的语法、高效的并发性能和良好的内存管理,因此在近年来迅速获得了广泛的关注和采用。本文将为您提供一条学习Go语言的路线图,并介绍一些优质…

二分查找 - 数据结构和算法教程

二分查找被定义为在排序数组中使用的一种搜索算法,它通过重复将搜索间隔分成两半来实现。二分查找的思想是利用数组被排序的信息,将时间复杂度降低到O(log N)。 在数据结构中应用二分查找的条件 数据结构必须排序。访问数据结构的…

mac为什么读取不了NTFS格式硬盘,Tuxera NTFS for Mac 2022 读写ntfs移动硬盘插件

使用 Mac 的巨大痛点之一:移动硬盘只能打开文件,但是无法写入新的资料。有人说格式化硬盘,改成苹果的 macOS扩展格式,但是原先硬盘的数据要转移,而且拿到 Windows 系统里无法被识别。 有人说格式化硬盘,改…

关于nginx,正向代理和反向代理是什么意思

为什么要使用nginx 很多公司会用到nginx做代理服务器,为什么用nginx,tomcat服务器不行吗? tomcat缺点:并发量小,用户使用的少 nginx:高并发,高性能,cpu、内存等资源消耗却非常低&…

在 Navicat Premium 中管理 MySQL 用户 | 第 4 部分:权限管理员工具

第 4 部分:权限管理员工具 在本系列中,我们一直在探索如何使用 Navicat 的旗舰产品 Navicat Premium 执行常见的用户管理任务。在上一篇文章中,我们研究了新用户对象选项卡的“服务器权限”、“权限”和“SQL预览”选项卡。 在上一篇文章中…

前程无忧guid、acw_sc__v2

文章目录 声明目标网站acw_sc__v2分析python调用测试话外拓展-风控浅析往期逆向文章推荐 声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除&#x…

【测试】Selenium操作Cookie

1.操作Cookie 操作Cookie无非就是读取和删除Cookie,下面这些是主要方法 from selenium.webdriver import Chrome, ChromeOptions from selenium.webdriver.chrome.service import Serviceoptions ChromeOptions() options.add_argument("--ignore-certifica…

07-source-map

source-map是从已转换的代码,映射到原始的源文件。使浏览器可以重构原始源并在调试器中显示重建的原始源。 根据源文件,生成source-map文件,webpack在打包时,可以通过配置生成source-map; 在转换后的代码,…

Springboot整合mybatisplus实战

Springboot整合mybatisplus,纯后端,验证结果是通过postman调用的,记录一下 1、建表语句以及初始化数据脚本 CREATE TABLE tbl_book (id int NOT NULL AUTO_INCREMENT,type varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT…

Django之模板层

一、模板简介 在刚刚介绍完的视图层中我们提到,浏览器发送的请求信息会转发给视图进行处理,而视图在经过一系列处理后必须要有返回信息给浏览器。如果我们要返回html标签、css等数据给浏览器进行渲染,我们可以在视图中这么做 from django.s…

Git进阶系列 | 3. 基于Pull Request实现更好的协作

Git是最流行的代码版本控制系统,这一系列文章介绍了一些Git的高阶使用方式,从而帮助我们可以更好的利用Git的能力。本系列一共8篇文章,这是第3篇。原文:Better Collaboration With Pull Requests[1] 本文是“Git进阶系列”的第三篇…

Keil 重定向 fputc 函数 以及 printf 函数的代码尺寸测试

本文的开发环境为 Keil Cortex-M3 内核处理器。 重定向 fputc 函数方法 如果想使用库函数 printf ,必须要将 fputc 重定向到自己的串口上。 术语 重定向 可以理解为用户重写 fputc 函数,在重写的函数体内调用自己硬件的串口发送函数。 在 Keil 环境中…

Android Binder通信原理(二):servicemanager启动

源码基于:Android R 0. 前言 下图是android 8.0 之前binder 的软件框架,依赖的驱动设备是/dev/binder,binder机制的四要素分别是client、server、servicemanager和binder驱动。 对于android 8.0后的binder 和vndbinder依然同这个框架&#…

【Python版】手把手带你如何进行Mock测试

什么是mock? mock测试是以可控的方式模拟真实的对象行为。程序员通常创造模拟对象来测试对象本身该具备的行为,很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为 为什么要使用Mock? 之所以使用mock测试,是因为真…

js+html+css 封装一个弹窗组件

HTML中通过一个按钮触发显示弹窗的函数showPopup(),弹窗的内容包含在一个div元素中,初始设置为隐藏状态。 CSS中定义了弹窗的样式,包括背景、位置、边框等。 JavaScript中定义了两个函数showPopup()和hidePopup(),分别用于显示和隐…