CTFHub:web前置技能-HTTP协议-基础认证篇

CTFHub个人学习记录

第二章:web前置技能-HTTP协议-基础认证篇



前言

路漫漫其修远兮,吾将上下而求索。
本文涉及以下知识点,去引用文章学习即可:
https://blog.youkuaiyun.com/qq_45705626/article/details/127709037
https://blog.youkuaiyun.com/Dongguabai/article/details/109312694

Basic 认证原理
Basic 认证是HTTP协议支持的最简单形式的身份验证机制。它的原理基于“用户名:密码”的凭据,通过HTTP头部进行传输。具体来说,当用户尝试访问一个需要认证的资源时,服务器会返回一个401 Unauthorized响应,同时在响应头中包含WWW-Authenticate字段,提示客户端需要提供认证信息。
用户提供的用户名和密码将按照以下格式组合:username:password
然后,这个字符串被Base64编码。编码后的字符串被放置在后续请求的Authorization头部中
格式如下:Authorization: Basic
服务器接收到这个请求后,会解码Base64字符串,提取用户名和密码,并验证这些凭据是否允许用户访问请求的资源。如果认证成功,服务器会返回所请求的资源;否则,它会再次返回401 Unauthorized状态。


一、解题过程

1.基本知识了解到了,打开靶机看见有题目附件下载如下图所示:

在这里插入图片描述

2.发现个标志,让我们点击,弹出用户名密码登录,结合题目给的字典猜测一下是暴力破解,如下图所示:

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

3.那我们就用用户名密码:aaa,bbb随便登录看看抓包看看更多细节,抓到以下数据,如下图所示:

发现本文预备知识点:authentication basic,里面的数据是base64编码的,由=可以看出(不懂可看文章开头引用文章学习),当然你也可以把我们发送的编码用在线解密解出得到aaa:bbb是我们输入的用户名和密码,这下全懂了吧。
在这里插入图片描述在这里插入图片描述

4.我们发送到Request模块,send一下看看他回显什么,可以看到有提示,用户名是admin如下图所示:

在这里插入图片描述

5.把数据包发送到intruder模式,使用bp四种暴力破解模式中的sniper模式,添加变量,如下图所示:

Sniper(狙击手)
作为比较常用的模式,Sniper的作用是对其中选定的参数一个一个依次遍历字典并且替换然后测试
在这里插入图片描述

6.加载官方给我们提供的字典,如下图所示:

在这里插入图片描述

7.我们已经知道 BASIC 认证发送的字符串内容是由用户名 ID 和密码构成,两者中间以冒号(:)连接后,再经过 Base64 编码处理。其中用户名我们已经知道是admin,格式中间以:分割那么add prefix(添加前缀),添加前缀admin:,如下图所示:

在这里插入图片描述

8.由上可知编码格式为base64,那我们添加编码,编码为base64-encode,这里也要把payload encoding里url-encode勾选去掉,base64后的=会被转成%3d,影响我们的爆破字典,如下图所示:

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

9.结果出来了,找status是200的,response查看flag,提交即可还记得200状态码表示什么吗?没事贴心的我提前帮你找了,如下图所示:

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


总结

大概思路和涉及的知识点(这里我一律复制网上师傅总结的即可,网上的师傅们总结的很完美,我就不东施效颦)

思路:
根据题意和字典,找到用户名admin,考察authentication basic基础认证的步骤和格式,另一点也考察了关于抓包工具暴力破解模式的基础使用.

### CTFHUB Web 前置技能 RCE 挑战及解题思路 #### 远程命令执行简介 远程命令执行(Remote Command Execution, RCE),是指攻击者能够通过应用程序接口发送特定指令,在服务器端执行任意操作系统级别的命令。这种漏洞一旦被利用,可能导致整个系统的完全控制。 #### 发现潜在的RCE漏洞 当面对可能存在RCE漏洞的应用程序时,通常会寻找可以输入数据的地方,比如表单提交、URL参数等位置。如果这些地方的数据未经严格验证就直接用于构建并执行系统调用,则可能成为RCE攻击的目标[^1]。 #### 验证是否存在RCE漏洞 为了确认是否真的存在这样的安全风险,可以通过尝试注入一些简单的测试语句来观察响应情况。例如,在支持PHP环境的情况下,可以试着向目标页面传递如下payload: ```php <?php phpinfo(); ?> ``` 如果上述代码被执行并且返回了PHP配置信息,则说明确实存在未受保护的入口点允许外部传入的内容影响到内部逻辑处理流程。 #### 利用已知条件构造有效载荷 假设经过初步探测之后发现了某个变量可以直接参与到shell_exec()函数之中去,那么就可以精心设计一段能实现预期目的同时又不会引起怀疑的日志记录脚本作为最终的有效负载。这里给出一个简单例子用来获取当前目录下的文件列表: ```bash ls -al ``` 当然实际操作过程中还需要考虑更多因素,如编码方式转换、特殊字符转义等问题以确保成功绕过防护机制达到想要的效果。 #### 安全建议 对于开发者而言,预防此类问题的发生至关重要。应当遵循最小权限原则分配资源访问权;对所有来自客户端的信息都应做充分校验过滤后再参与后续运算过程;定期审查源码查找安全隐患及时修复补丁版本更新至最新状态等等措施均有助于减少遭受恶意侵害的可能性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值