CTF靶场系列-Pentester Lab: From SQL injection to Shell II – 作者:陌度

下载地址

https://download.vulnhub.com/pentesterlab/from_sqli_to_shell_II_i386.iso

实战演练

使用netdiscover命令查找靶机的IP。

image.png

使用nmap查看靶机开放的端口

image.png打开80端口

image.png

直接用sqlmap测试显示是没有漏洞的

image.png查了资料发现需要添加这个header,X-Forwarded-For
image.pngimage.png

现在尝试使用以上凭据访问管理控制台,再次在浏览器中打开目标IP:192.168.0.104并单击登录选项卡,然后键入login作为管理员,密码作为P4ssw0rd。

恭喜!!!第一项任务完成。

现在最后一项任务是上传PHP webshel​​l。在管理控制台下,您将看到一个链接添加新图片以在此Web服务器中上载图像。单击添加新图片以上载图像。

image.png直接上传PHP文件,无法上传

image.png

遇到上传功能时,可以执行以下步骤:

  • 确保文件在Web根目录中上载(因此您可以访问它以解释它)。
  • 确保代码检查扩展并且无法绕过它。
  • 确保代码检查内容类型并且无法绕过它。

通过使用合法的图像(.png.jpg.gif文件),我们可以看到,文件被在网络上传的根,并得到改名基础上,当前时间,文件扩展名是保持不过。

如果您尝试上传与PHP扩展名不同的文件.png.jpg或者.gif该文件被拒绝。似乎没有旁路可用。

如果您尝试上传具有正确扩展名但没有正确内容的文件(如名为的文本文件test.jpg),该文件也会被拒绝。

最后,如果您尝试上传具有正确扩展名,正确内容但内容操作较少的文件(通过添加额外的单词vi),该文件也会被拒绝。

唯一的可能是上传一个有效的文件,并尝试获取代码执行。我们还可以注意到PHP代码不会调整文件的大小。

2010年,80sec.com发布了Nginx服务器配置中常见问题(中文)。Neal Poole在2011年也对此问题进行了详细介绍。

基本上,如果没有正确配置Nginx / PHP,当有人访问URL http://vulnerable/admin/uploads/hacker.png/x.php时,该文件hacker.png将被解释为PHP代码。

我们可以通过上传恶意图像来使用这种错误配置来在服务器上获得代码执行。但是,正如我们之前测试的那样,文件需要是有效的图像。我们需要找到一种方法在保留有效文件的同时在图像中注入PHP代码。

一种简单的方法是将我们的有效负载注入图像的EXIF数据中作为注释。这可以通过使用该工具来完成exiftool

很多PHP应用程序使用的库`gd`在图像调整大小时删除了EXIF数据。幸运的是,情况并非如此。它仍然值得测试,因为很多人(特别是照片)想要保留这些信息,即使图像调整大小并决定从`gd`转移到`ImageMagick`。

首先,我们需要创建有效负载(shell.php):

webshell

image.png

搞定之后,直接上传就行
image.pngNC反弹

image.png

来源:freebuf.com 2019-08-19 21:37:37 by: 陌度

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论