CTFer——文件上传漏洞——白名单检测

代码文件中包含一个数组或者列表,包含一些合法的字符或者字符串

 

如何确认:上传一张图片与一个自己构造的后缀,如果只能上传照片,不能上传其他后缀文件,说明是白名单检测

绕过方式:可以利用00截断的方式进行绕过,包含%00截断与0x00截断。

 

%00截断:%00是一个url编码,url发送到服务器后会进行解码,这时还没有传到验证函数,也就是说验证函数里收到的

不是%00字符,而是%00解码后的内容,即解码成了0x00,在url中%00表示ascll码中的0,而ascll中0作为特殊字符保留表示字符串结束,

所以当url中出现%00就会认为读取已经结束。

 

文件内容检测:

(1):文件幻数检测:通常情况下,通过判断前十个字节,基本就能判断出一个文件的真实类型。

绕过方式:

制作图片马

1:使用16进制编辑器打开一个图片,在图片后面插入webshell

2:cmd指令制作

(2):php标签检测:

<?php echo md5('tag');?> 正常写法 可能会被过滤

<? echo md5('tag');?> 短标签写法

<script language='php' >echo md5('tag');?>

(3):二次渲染

就是根据用户上传的图片,新生成一个图片,将原始图片删除,将新图片添加到特殊的数据库中。

绕过:

先上传一张图片,在重新将图片下载下来作比较,然后在相同的地方,插入webshell

 

posted @   Heck1ng  阅读(163)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示