0、环境准备
0.1、安装靶场
由于自己的电脑是win10系统,上传一句话木马被系统自动拦截删除,文件上传的靶场安装在win7虚拟机。把upload-labs安装包复制到老版小皮的C:\phpstudy\PHPTutorial\WWW\
目录下解压,然后启用小皮,启用服务Apache,在运行模板边上切换版本选择【php版本】5.2.17。(说明:为什么选择老版本的小皮,是由于我实验的文件上传靶场很多功能要实验通过,有版本要求,在新版本的小皮无法验证对应功能点。老版本的小皮在win7虚拟机有自带)
老版小皮在桌面的图标是这个
0.2、一句话木马
一句话木马文件命名onehack.php
,在后面实验过程中都是同一个,源码内容如下
# 可连接服务端的
<?php
@eval($_POST['自定义密码'])
?>
打印服务器相关信息的,命名info.php
<?php phpinfo();?>
1、Pass-01
1.0、攻击思路
先按符合条件上传,上传前按F12,选择Network看请求URL,然后再按上传一句话木马的文件onehack.php
,看是否请求,如果没有请求只是弹窗提示,那么先绕过前端的JS验证,再上传onehack.php
看是否成功。
1.1、文件上传验证
正常上传一个图片,在网络看到请求URL是http://127.0.0.1/upload-labs/Pass-01/index.php
上传一句话木马,发现网络请求并没有变化,界面弹窗提示信息,因此可确定是属于前端JS验证。
1.2、木马上传
从上面的步骤初步确定是前端JS验证,也得知文件上传请求的URL,可以copy网页源码下来,去掉form里面的onsubmit="return checkFile()"
,需要自己手动添加action,然后把文件上传请求的URL放到form的action。然后访问该html文件pass01.html
,选择onehack.php
上传,发现上传成功了。
上传成功后会自己跳转到文件上传页面,如下
获取得到地址http://127.0.0.1/upload-labs/upload/onehack.php
,在外部连接测试时,把127.0.0.1换成ipconfig查出的值就可以了。
1.3、蚁剑连接
使用蚁剑连接验证,可以连接成功,并且可以进入目标服务器的终端进行执行命令
2、Pass-02
2.0、攻击思路
直接上传一句话木马的文件info.php
,上传前按F12,选择Network看请求URL,发现直接请求服务端,返回验证文件内容类型不通过信息,可以断定是服务端的验证,因此要想办法绕过。可用Burp Suite拦截来处理。
2.1、BurpSuite拦截
看到拦截的内容有Content-Type: application/octet-stream
把它修改为图片的值,不知道的情况可以用正常上传成功的值Content-Type: image/jpeg
来替换,然后再点BP工具的Forward让提交到服务端。
在图片身上右击,选择新建标签页打开图像打开访问。
2.2、木马解析成功
3、Pass-03
3.0、攻击思路
直接上传一句话木马的文件info.php
,上传前按F12,选择Network看请求URL,发现直接请求服务端,返回文件名后缀验证不通过信息,可以断定是服务端的验证,因此要想办法绕过。可用Burp Suite拦截来处理。
3.1、确认httpd.conf
httpd.conf文件在老版小皮Apache下,win7虚拟机路径是C:\phpstudy\PHPTutorial\Apache\conf\
由于后缀名的限制,要解析php文件,需要确认Apache的配置,在IfModule节点确认配置【application/x-httpd-php
配置】,我在后面再添加了.php3 .php4 .html
,除了php外有其他后缀名即可,在文件上传时可以用除.php外的后缀名解析为php。
AddType application/x-httpd-php .php .phtml .php3 .php4 .html
修改完保存一定要重启Apache服务才会生效。
3.2、上传文件
先上传一句话木马的文件info.php
重命名为info.phtml,上传成功。
在图片身上右击,选择新建标签页打开图像打开访问。
3.3 、木马解析成功
4 、资料获取
请关注我的公众号:大象只为你,回复:文件上传,获取文件上传漏洞靶场。
如果之前没有下载过win7虚拟机的话,请回复关键字:虚拟机,获取win7虚拟机,加载到VM ware即可用。
5、下期内容预告
下期继续分享文件上传靶场实战,敬请关注我的公众号:大象只为你,持续更新中…