BUUCTF--[ACTF2020 新生赛]Upload

一、解题思路:

打开链接,是一个很不错的网页

先上传一个webshell试试看

burpsuite无法抓包,还有弹窗题型

黑名单检测一般弹窗:不允许上传xxxxx后缀文件

白名单检测一般弹窗:只允许上传xxxxx后缀文件

所以我推测应该是前端验证,我们可以查看源代码验证一下

果然有JavaScript的痕迹

两种方法绕过前端校验

1.删除前端校验的关键函数checkFile(),但是每次上传都需要进行删除

2.禁用JavaScript

我们就直接删除checkFile()函数

上传后发现失败语句,说明还有后端校验

我们只能上传弹窗所提示后缀的文件,否则都会被后端认为是Bad file

那我们post.php后缀改为.jpg

因为我们绕过了前端校验,所以可以进行抓包 

上传post.jpg,并抓包

因为我们上传的是jpg文件,无法解析为webshell,后续也无法进行连接

但是php后缀文件又被禁了(这应该也算黑名单检测)

所以把.jpg,改为php的特殊后缀phtml

上传成功

拼接一下路径

http://649cc9e9-0af3-45d6-9a4e-559934997634.node5.buuoj.cn:81/uplo4d/1406a3b458d663eb5c3e61b80d160948.phtml

蚁剑连接

在根目录下成功找到flag

二、总结:

1.这一题包含了前端校验和后端的黑名单校验

2.上传后的jpg文件后缀记得更改,刚开始我直接上传了一个图片马,成功上传但蚁剑怎么也连接不上。最后才想起来是因为图片马的后缀是.gif,服务器无解析为webshell,需要更改后缀

### 关于 BUUCTF ACTF2020 新生 Web Include 题目分析 #### 背景介绍 该题目属于Web安全领域中的文件包含漏洞利用。通过特定的URL参数绕过服务器端的安全检查,最终读取到目标文件的内容。 #### 技术细节解析 在本题中,攻击者可以控制`file`参数来指定要加载的文件路径。由于存在两层URL编码机制,使得原本受限的字符能够成功传递给PHP解释器处理: - `%253F`经过第一次解码变为`%3F` - 经第二次解码后成为问号(`?`),这有助于规避某些基于字符串匹配方式实现的简单防护措施[^1] 因此,当访问如下链接时: ``` http://url.to.target/?file=hint.php%253F/../../../../ffffllllaaaagggg ``` 实际上是在尝试从根目录向上回溯多个层级并请求名为`ffffllllaaaagggg`的目标文件。这种技巧常用于测试是否存在本地文件包含(Local File Inclusion, LFI)漏洞以及评估其严重程度。 #### 实际操作建议 为了验证上述理论,在实验环境中应当谨慎构建类似的payload,并确保只针对授权范围内的资源进行探索。同时注意观察返回的数据流特征变化情况,比如页面布局结构调整或是新增加了异常提示信息等现象。 ```python import requests target_url = "http://example.com/index.php" payload = "?file=hint.php%253F/../../../../etc/passwd" response = requests.get(target_url + payload) if b'root:x:' in response.content: print("[+] Potential Local File Inclusion vulnerability detected.") else: print("[-] No obvious signs of a vulnerable condition found.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值