目录
环境
DVWA
一开始点开
找了很多文章看不懂页面还是这样,然后我根据上面的路径打开源码,将所有的require_once,改为include_once,保存后重启phpstudy就好了
require():可以包含文件,如果包含错了,直接报错并退出程序的执行
include():在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行
require_once():与require类似,区别在于当重复调用同一文件时,程序只调用一次
include_once():与include类似,区别在于当重复调用同一文件时,程序只调用一次
蚁剑
安装时显示解压代码错误,右键以管理员身份运行就可以了
蚁剑使用:中国蚁剑(AntSword)安装、使用教程_中国蚁剑使用教程-优快云博客
文件上传漏洞
原理
黑客利用文件上传后服务器解析处理文件的漏洞上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。
用户通过界面上的上传功能上传了一个可执行的脚本文件,而WEB端的系统并未对其进行检测或者检测的逻辑做的不够好,若恶意用户对其上传一句话木马,从而实现控制WEB网站的目的。
满足条件
上传的后门文件,需要能被脚本语言解析执行。
对方服务器运行的PHP环境,你不能上传一个JAVA的后门代码。
你上传文件的目录可以被脚本语言解析执行,如果你上传的目录没有执行权限也不行
一般文件上传后会返回你一个地址,如果无法链接到也不能构成文件上传漏洞。(蚁剑)
还有例外情况,非脚本文件也能被成功解析。比如:上传了一个图片,如果对方中间件上存在一些漏洞的话,配合这些漏洞可以实现图片文件按照脚本文件解析。
一句话木马(简称Webshell)
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。
最普通的一句话木马:
<?php @eval($_POST['shell']);?>
<?php system($_REQUEST['cmd']);>
<?php @eval($_POST['123123']); ?>
利用文件上传漏洞,往目标网站中上传一句话木马,然后你就可以在本地通过蚁剑或者中国菜刀即可获取和控制整个网站目录。
@表示后面即使执行错误,也不报错。
eval()函数表示括号内的语句字符串什么的全都当做代码执行。
$_POST['123123']表示从页面中获得123123这个参数值,即该木马密码为123123。
DVWA
LOW
源码分析
代码对上传的文件没有任何限制和过滤,生成上传路径后,服务器会检查是否上传成功并返回相应提示信息。
basename(path,suffix)
函数返回路径中的文件名部分,如果可选参数suffix为空,则返回的文件名包含后缀名,反之不包含后缀名。
步骤
创建一个木马的php文件并上传
MEDIUM
继续上传这个文件
看一眼源码
文件格式只能为jpeg和png,大小小于10000字节
方法一 brup抓包改文件后缀
先将文件后缀改为png,在抓包
将文件的后缀名改为.php
然后点击forward放包,然后切回浏览器,显示上传成功