文件包含漏洞配合图片一句话Getshell

  • A+
所属分类:网络安全文章

upload.html是可以上传图片的页面

  1. <html>
  2. <body>
  3. <form action="upload.php" method="post" enctype="multipart/form-data">
  4. <label for="file">Filename:</label>
  5. <input type="file" name="file" id="file" />
  6. <br />
  7. <input type="submit" name="submit" value="Submit" />
  8. </form>
  9. </body>
  10. </html>

index.php是存在本地文件包含的页面

  1. <? php
  2. if (($_FILES["file"]["type"] == "image/jpeg") && ($_FILES["file"]["size"] < 20000)) {
  3.     if ($_FILES["file"]["error"] > 0) {
  4.         echo "Return Code: ".$_FILES["file"]["error"].
  5.         "<br />";
  6.     } else {
  7.         move_uploaded_file($_FILES["file"]["tmp_name"],
  8.             "upload/".
  9.         "logo.jpg");
  10.         echo "Stored in: ".
  11.         "upload/".
  12.         "logo.jpg";
  13.     }
  14. else {
  15.     echo "Invalid file";
  16. }
  17. ?>

index.php

  1. <?php
  2. if (isset($_GET[page])) {
  3. include $_GET[page];
  4. else {
  5. include "default_page.php";
  6. }

到这里一个存在漏洞的站点就制作完成了,然后我们只需要用phpstudy或者wampsever将站点部署上去就可以实战练习了.

 

需要用到的工具或材料:

1.一款十六进制编辑器(笔者用的是HxD)

2.任意一张后缀为.jpg的图片

这两样东西准备好了后我们就可以开始制作图片一句话木马了

打开HxD,将准备好的图片拖拽到HxD中:

文件包含漏洞配合图片一句话Getshell

拖进去后我们看到的界面大概可以分为两部分:

左边是文件内容的十六进制

右边是十六进制对应的ASCII码

举个例子:

文件包含漏洞配合图片一句话Getshell

如果我们在右边输入一个字符a,a对应的ASCII码是97,然后97转换为十六进制就是61了

而制作一个图片马的方法很简单,就是直接在右边文件的末尾加上我们的一句话木马就可以了。

文件包含漏洞配合图片一句话Getshell

保存一下.

 

上传图片然后利用本地文件包含漏洞来执行一句话

访问upload.html,然后选择我们刚才制作好的图片一句话木马

文件包含漏洞配合图片一句话Getshell

直接上传

文件包含漏洞配合图片一句话Getshell

我们可以知道上传的图片文件是在upload目录下,文件名为logo.jpg
当然在真实环境中不会直接写路径,可能是一个用户头像什么的,我们可以在网页源代码中找到图片的路径。

利用文件包含漏洞来执行一句话

我们知道在index.php中又如下这一句代码:

if (isset($_GET[page])) {
include $_GET[page];

那么我们就去index.php页面构造如下参数:

index.php?page=/upload/logo.jpg

我们知道被include包含的文件会被当作php文件来执行,这样我们在图片中隐藏的一句话木马就可以运行起来了。

文件包含漏洞配合图片一句话Getshell

包含这个页面后,我们会看到很多乱码,这些都是jpg文件的内容,当然我们在页面上是看不到一句话木马的语句的,因为已经被解析为php代码在后端运行的,不会显示在页面上。

菜刀连接getshell

然后使用菜刀来连接我们的一句话木马

注意我们连接的地址是/vul/index.php?page=/upload/logo.jpg,不要写成了图片的地址了,因为只有在index页面利用文件包含漏洞我们藏在图片中的一句话木马才能被运行。

文件包含漏洞配合图片一句话Getshell

我们在对一个站点进行测试的时候,不要局限于单一漏洞的利用,有些时候多个简单的漏洞组合起来使用也能发挥出巨大的威力。比如本例就是一个简单的多个漏洞的组合利用,看似文件上传处无法突破,但是只要存在一个文件包含漏洞就可以轻易getshell了。

  • 服务器购买微信群
  • 阿里云&腾讯云&国外VPS
  • weinxin
  • 服务器购买QQ群
  • 阿里云&腾讯云&国外VPS
  • weinxin
CE安全网

发表评论

您必须登录才能发表评论!