当前位置: 首页 > news >正文

打靶日常-upload-labs(21关)

准备工作:选择低版本,高版本可能有问题

注意参数设置中这几个选项,如有其他问题,可以留言,博主看到会回复.

准备一个10乘10像素的照片,(尽量小一点),一个一句话木马,执行以下指令:

结果:

1.发现是一个前端验证:直接上传c.jpg,然后在bp里面改个包

用重放器把c.jpg改成c.php即可:

然后访问图片页面,再修改URL为c.php:看见下面页面就说明是成功了

因为我的一句话木马使用的是request,参数是x,所以get和post都可以测试:

get测试:

post测试:这里工具为hackbar

当然也可以蚁剑连接:

2.操作如上,屡试不爽

注意要自己会找图片的位置

3.黑名单

我们发现php为后缀已经让禁止了

可以随便修改一个php3

在找图片地址的时候,发现他在存的时候自动取名:

我们查第一回返回的包

然后成功

4.也是黑名单验证

没有禁用.htaccess文件

解释:.htacesss相对于一个apache的子配置文件,可以放在单独的目录下(路径下)去控制当个访问路径的行为。

漏洞前提:

<FilesMatch "c.jpg">
setHandler application/x-httpd-php
</FilesMatch> 

然后成功

5.做之前要切换版本

使用前提:1、要求php版本大于5.3,2、并且使用fastcgi模式(phpstudy里面nts代表fastcgi模式)3、上传目录下必须已经存在可以被执行的php文件

.user.ini,默认修改时间是5分钟生效

auto_prepend_file=d.jpg

d.jpg写一句话木马

6.啥也不用改,大小写绕过:window不区分大小写

7.虽然已经增加了大写-->小写转换,但是没有使用trim()去除空格,所以可以使用空格绕过黑名单

8.加.绕过

9.利用windows特性:文件流特殊字符:

::$DATA,如果文件名+::$DATA,windows会把这个文件当成文件流处理,不会检
测具体的后缀名。且保留::$DATA之前的文件名

10.deldot函数:从后往前检测,当检测到末尾的第一个点时会继续它的检测,但遇到空格就停止检测

码源:

所以我们用. .绕过

11strireplace会把检测到的黑名单列表里面的后缀名替换为空(只会替换一次,从前往后识别)

12.白名单验证,00截断


利用move_uploaded_file函数漏洞(C语言的特性:PHP执行引|擎底层就是C语言)
C语言的特性:遇到0x00会截断(十六进制的00代表结束符),URL编码:%00
前提:需要php版本小于5.3.4,magic_quotes_gpc关闭
在文件上传的时候添加%00

显示为404

修改URL即可

13.也是00截断,不过是post请求

把2b改为00

14.文件包含漏洞

15.方法同上

16.php扩展的php_exif要打开

过程同上

17.是对图片进行了两次编译:

后序更新第二种解法

18.白名单

条件竞争问题:
条件竞争:多个程序或者进程争取同一个资源。最后的结果取决于程序对资源操作的先后顺序
关键逻辑:在于判断文件类型到删除文件是需要一定时间的,如果此时有一个进程去访问上传的文件,可能导致访问文件
的进程和删除文件的进程造成了条件竞争。如果访问文件的进程抢在删除文件之前成功访问了。那么文件就已经被加载到
内存中执行了
可以用多线程发包,一边不停的上传文件,一边不停的去访问上传的文件路径

19.白名单

7z后缀没有在mime类型里面规定。利用apache未知文件解析漏洞
上传—个b.php.7zI

20.黑名单


move_uploaded_file: 会忽略文件末尾的 / .
可以把文件名后缀改为 Iphp/ .

拦截改这里即可

21.数组绕过


explode(a,b)函数以a为分割,把b转为数组。
reset()函数把数组内部指针移动到数组第一个元素,并返回值。
end()把数组内部指针移动到数组最后一个元素,并返回值。
count()函数数组元素的数量。
Sfile = explode(', strtolower($file);
把文件名通过点号进行分割为数组。

收官!!!

http://www.lryc.cn/news/615994.html

相关文章:

  • Spring Boot配置文件加密详解
  • crc32算法php版----crc32.php
  • 【redis初阶】--------Set 集合类型
  • 如何通过API接口实现批量获取淘宝商品数据?(官方与非官方渠道分享)
  • Linux 路由子系统深度分析:框架、实现与代码路径
  • [Python 基础课程]常用函数
  • X265性能分析开源代码
  • 【高等数学】第八章 向量代数与空间解析几何——第六节 空间曲线及其方程
  • Video Lecture 8 Page Fault
  • 使用 Python 进行图片识别的项目开发
  • git merge和git rebase的区别
  • MIRO中文本如何传入FI凭证的
  • 基于Spring SSE构建实时监控系统
  • SpringCloud详细笔记
  • es-drager-blog
  • Java 日常开发笔记(小程序页面交互传参-id)
  • 震动马达实现库函数版(STC8)
  • 升级 JDK 17 碰到的请求 https 问题
  • 如何在Python中使用flask框架搭建web服务?
  • org.apache.hadoop.hbase.TableNotFoundException: ApplicationIndex
  • C/C++类型转换(C++四大强制类型转换)
  • 6.3 完成 RAG
  • TSF应用开发与运维部署
  • 下载UOS桌面专业版系统镜像
  • 强制类型转换
  • [TryHackMe]OverPass2(流量包分析+sha256+suid提权)
  • 【Vue✨】Vue3 中英文切换功能实现
  • 计算机网络:如何理解目的网络不再是一个完整的分类网络
  • RAG技术与应用
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘optuna’问题