实验过程和结果
步骤1:尝试直接上传php木马,失败,截图如下:
步骤2:将php木马后缀改为jpeg尝试上传,依旧失败,截图如下:
步骤3:将真实的jpeg图片1.jpeg上传,成功,截图如下:
步骤4:将真实的jpeg图片修改后缀为png上传,成功,截图如下:
步骤5:将真实jpeg图片后缀名改为php上传,失败,截图如下:
可以推测,检查是否为JPEG/PNG图,是依靠文件的后缀、文件头字段信息来进行双重检测的。为此,要尝试将木马明文写在真实JPEG/PNG图片中。
步骤6:通过cmd的copy指令,将php代码隐写到jpeg文件中,截图如下:
步骤7:010editor查看隐写情况,确实已经附在了jpeg文件尾部,截图如下:
步骤8:上传木马隐写入的jpeg文件,成功,截图如下:
步骤9:上传的是jpeg文件,不能直接执行,所以需要利用文件包含漏洞;这里新上传一个phpinfo,用于检验是否成功利用,然后再尝试包含木马。截图如下:
然而直接包含显示文件不存在
步骤10:查看High等级文件包含漏洞防护,截图如下:
发现必须以file打头或者为include.php文件,为此可以通过file://伪协议实现调用文件
步骤11:确认路径,首先随便输入一传路径,回显出完整路径截图如下:
得到几条路径:
D:\phpStudy_64\phpstudy_pro\WWW\DVWA-master\vulnerabilities\fi\index.php
http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=include.php
再根据文件上传路径时的信:
http://127.0.0.1/DVWA-master/vulnerabilities/upload/#
../../hackable/uploads/1.jpeg succesfully uploaded!
可得文件上传所在目录和文件包含所在目录的位置关系
步骤12:通过file伪协议包含上传的图片马,截图如下:
http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=file:///D:\phpStudy_64\phpstudy_pro\WWW\DVWA-master\hackable\uploads\jpegphpinfo.jpeg
虽然报语法错,但确实包含了——然而报错位置是图片原先的部分——这意味着拼接在最后的木马还是首先会遇到上述报错。
步骤13:寻找新的jpeg文件,尝试上传,截图如下:
没有错。
步骤14:接下来如法炮制,上传webshell木马,截图如下:
看起来没有问题,接下来用蚁剑连接
步骤15:蚁剑连接,设置cookie,截图如下:
步骤16:连接getshell
二、实验收获
通过本实验,我学会了文件上传漏洞和文件包含漏洞的利用方式。一方面,(任意)文件上传漏洞指的是上传非预期的文件格式(如php文件)到目标服务器,而通过其他方式(直连、包含等)进行执行来进一步利用。另一方面,利用文件包含漏洞,能够把静态文件中的php代码通过回显转发的方式进行包含执行。
过程中遇到很多问题:1.high的包含漏洞保护措施没有关注 2.一些jpeg/png图片被解析时,自身的一些字符会被错误识别为php代码,而往往会导致语法错误,通过copy到最后的隐写代码将不被执行,本例中我重新选了一个图片即可解决。