在文件上传章节就用upload-labs靶场
一、文件上传基础及一句话木马
1、首先了解一下 “一句话木马“如:<?php @eval($_POST["pass"]) ?> 是最简单的一句话木马
那它是啥意思呢?
这是一段php代码,写在<?php ?>里面才能被服务器解析;
@符号是不报错,即使执行错误也不报错
$_POST是用post方法接受变量pass的值
eval()函数是把字符串当成PHP代码执行
所以,利用文件上传漏洞,往目标网站中上传一句话木马,然后你就可以在本地通过中国菜刀chopper.exe或者蚁剑即可获取和控制整个网站目录。@表示后面即使执行错误,也不报错。eval()函数表示括号内的语句字符串什么的全都当做代码执行。$_POST[‘attack’]表示从页面中获得attack这个参数值。
2、文件上传漏洞的知识点
文件上传漏洞出在哪里呢?
—只要网站有上传点就有可能存在上传漏洞
上传了一句话木马文件后,用AntSword蚁剑连接,添加成功后就可以拿到权限了
二、本地JS&远程content-type验证突破
首先判断验证方式:通过弹出的警告窗口可以判断其验证方式为js
那该如何突破呢?
第一种:直接利用浏览器的插件(功能是直接关闭JS)
第二种:把页面中JS的验证代码删除。—先把页面另存为到桌面,然后用Notepad++打开把js验证代码删除,再把提交表单的提交网址改成你要上传的地方,即可成功上传!
–用以上两种方法pass-01通关
现在是pass-02
思路:
先判断验证方式
没有弹窗所以不是js验证,这是一个HTTP请求验证,这种情况下,一般用burpsuite去抓包,把包发送到repeater
然后判断用什么样的验证方式(可查看源码对上传文件是怎么过滤的)
$_FILES’upload_file’ == ‘image/jpeg’
然后更改content-type为image/jpeg
然后成功上传!
三、phtml绕过及htaccess绕过和大小写绕过
pass-03!
首先上传一个php文件试试看: