网鼎杯第二场 wafupload详解

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

0x00 有些wp里比较简略的内容,略做些分析,顺便记录点学到的姿势

 

0x01 wafupload

先放源码,标了几处重点。

详细分析一下代码

第一个判断MIME就是content-type是不是image/jpeg,在burp中抓包直接改掉即可。

第二个判断比较关键,判断扩展名是否是jpg、png、gif

 

问题出在代码是如何获取扩展名的。

1、首先,文件被上传时,判断是否POST了filename字段,如果有,就把$file变量直接赋值为POST上来的值,可以是数组。

如果没有POST该字段,$file变量取上传时的name,即$_FILES[‘file’]['name']

 

2、若$file文件名不是数组,就对字符串中的点号. 进行explode分割,分割成数组

如上传aa.bb.php会被切为

[0]  = > 'aa'

[1] => 'bb'

[2] => 'php'

这样的数组

 

3、获取扩展名代码

$ext = end($file);

利用了end函数,这个函数可以返回数组的最后一项。

也就返回了最后的php作为$ext,再经过判断ext是否是jpg、png、gif的一种。

 

这样获取扩展名有问题吗?

没毛病,但是。。。

在生成最终上传文件名时,没有用同样的方法获取扩展名

$filename = reset($file) . '.

2020大赛部分题解 1. boom 解压之后会发现是一个可以运行的程序 运行之后会出现一个MD5乱码,这个我们通过解码会得到en5oy,然后我们输入进去会提示你进入下一关。 输入进去后我们发现方程组,我们解方程得到X=74,Y=68,Z=31 然后得到下列一元二次方程,这个方程我用的python代码算出来的得到89127561,但是我们输入进去后,会发现谈谈弹窗消失,然后我们去看这个程序的代码。 下面是部分代码截图,我们发现flag的拼接方式 拼接过后得到flag{en5oy_746831_89127561}。自 阅读详情

相关推荐

MISC--minified(writeup)

  题目链接: https://pan.baidu.com/s/1NZ4O5_zhGRYkx7ZBxPy6zA 密码: xfum 打开文件。。。文件中只有一张图片   通常图片的题。。首先就丢到binwalk分析一波。。然后stegsolve。。前两步没结果再用winhex打开分析   这题首先binwalk无果。。。 所以用stegsovle打开 调到a0和g0的通道...

灬彬的博客 1万+

2020半决赛awdplus题目

2020半决赛awd plus题目,包含pwn和web,解压密码在公告文本里。pwn ciri未开放无解压密码

-第三场-杂项-track_hacker

2018年8月28日···-第三场-杂项-track_hacker

一道web题(wafUpload

思路:burpsuite截取post数据包,上传木马,菜刀连接。 截取上传的数据包,对filename参数使用数组绕过,上传php.php,同时得到php.php路径。 附: PHP一句话木马:<?php @eval($_POST['key']);?> ASP一句话木马:<%eval request['key']%> ASPX一句话木马:<%@ Page L...

洞若观火 1671

第二场 wp

本来应该是高校组,结果报错了,弄成了第二场........尴尬........ cal(web) 这题在url后面加robots.txt可以看到python报错,所以应该是python命令执行 试下1+1|ls,发现触发waf,然后继续试下读文件的函数,一波尝试后获得flag 1+1+int(([].__class__.__base__.__subclasses__()[40]('/fla...

Xi4or0uji 1432

我的WafBypass之道(upload篇)

好文章,值得转载:https://xianzhi.aliyun.com/forum/read/458.html 0x00 前言 玩waf当然也要讲究循序渐进,姊妹篇就写文件上传好了,感觉也就SQLi和Xss的WafBypass最体现发散性思维的,而文件上传、免杀、权限提升这几点的Bypass更需要的是实战的经验。本文内容为沉淀下来的总结以及一些经典案例。想到哪写到哪,所

Master'Blog 2645

i春秋 upload

 打开题目链接: 可以随意上传文件, 上传图片,txt文件,php文件等都能上传上去; 试着上传一句话; 当上传一句话木马时,上传成功后,原文件变成了如下: 把<?和php过滤掉了,再上传另一个一句话;  <script language="PHP">  @eval($_POST["code"]); </script> 上传后连接菜刀;   ...

慢慢变小佬的博客 1889

php end 上传 ctf,代码审计_文档上传ctf题 ~ Huuuz

第二场 wafUpload题目

weixin_36470210的博客 528

waf绕过总结开篇

单点:tpscan,wpscan,struts2-scan。数据包特征:请求方式,模拟用户,爬虫引擎,白名单机制。请求速度:延时,代理池,爬虫机制,白名单机制。未开cc防护:注意请求方式是否和人工请求时相同。抓包技术,waf说明,fuzzing测试。综合:awvs,xray,appscan。漏洞payload:数据变异,冷门扫描。waf绕过之漏洞发现之代理池指纹识别。扫描速度:延时,代理池,白名单。工具指纹:特征修改,模拟用户。开上cc防护:注意流量监测。

m0_61786761的博客 674

【干货】记一次WAF对抗赛详解&全方位绕过WAF

0x01 preview 上个星期参加了某巨头厂商承办的挑战赛,比赛周期48小时,题目是成功渗透在安全宝保护下的五个通用cms靶场,其中包括论坛、商城、资源站等 从靶场布置来看很明显是在测试安全宝对于几种不同类型cms的对攻击的防御能力。 这样的比赛模式区别于常见的CTF线上模式稍有不同,实战味道较强。常规的CTF在Web题目上面主要考察的是漏洞挖掘和利用,难点一般凸显在发现难和利

Enweitech Software Works 1万+

文件上传和WAF的攻与防

Author:JoyChouDate:20180613 1. 前言 本文的测试环境均为 nginx/1.10.3 PHP 5.5.34 有些特性和 语言及webserver有关,有问题的地方,欢迎大家指正。 2. 文件上传的特征 先来了解下文件上传的特征,抓包看看这段文件上传代码的HTTP请求。 upload.php <?php if...

dfdhxb995397的博客 376

第一届“百度”信息安全攻防总决赛-----Upload

  ================================== 个人收获: 1.某个加密方式可能使用2遍 2.后缀改为pht可绕过上传限制解析为php       ======================================   题目界面: 利用burp没有发现302跳转 但是在源码里面发现这段 就是说用post的方法发送ichunqiu...

大方子 2161

CTF-Solyd_2019

CTF 2019 Solyd Resoluçãoda CTF de 2019 da

CTFHub-Crypto-「」track_hacker

CTFHub-Crypto-「」track_hacker

m0_64254014的博客 830

从零开始做题:track_hacker

2018年比赛赛题,服务器被入侵了,快找到攻击者的痕迹吧。

weixin_44626085的博客 778

【CTF WriteUp】2020第二场Crypto题解

Crypto b64 题目给了一个密文,和一组对应的明文密文,因此肯定是先通过已知对应明密文破解出加密算法,再利用加密算法和密文得到flag。根据题目名称b64,将给定明文base64加密一下看,发现指定位置变换相同,所以本题应该是一个单表代换再加一个base64解密。 大致得到对应表如上,但是很糟糕的是,明密文变换没有直接的对应关系,这里应该是随机映射。所以我们需要进行暴力破解。 统计一下已知的字母变换对,发现有22个字符还不知道。而未知的9个位置中,有6种不同字符。爆破6种字符的选择,再根据flag格

cccchhhh6819的博客 3526

180829 (4-apl)

今天这个难度比较恐怖,只做了一个有类似题目的misc-apl,其实觉得比较接近逆向题 代码解base64后得到看起来很奇怪的apl代码 {⍵(~⍵)/('No_Please_continue')('Yes,This_is_flag')}(∊(41(41)0+140)(⎕UCS('µě»ÕĀ$#Ğ$èáËĞĞĝ`âÞĠ\x9d#"!Ġ"KE(©$#Ğ$Q&lt;k'))146){+/⍺≠33...

whklhhhh的博客 1681

第二届强 web签到题

前言 线上赛的时候,没有充裕的时间打,后期做了做,虽以记之. 时间好快,2018已经过去了1/4,加油. 欢迎进群交流: 363034250 题目及知识点 题目描述 该题目一共分为三关,前两关都是基本的php中md5()函数特性利用.下面分别对每一关进行解析. 第一关 源码 &lt;h2&gt;The Fisrt Easy Md5 Challenge&lt;/...

StriveBen的博客 2840
上一篇: PHP混淆后门解剖分析(反抓流量、加密结果)
下一篇: 网鼎杯第三场总结(关于parse_url、JWT生成token、python注入)
publicStr
博客等级 码龄8年 40粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值