一次PwnLab挑战的技术解析 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

一次PwnLab挑战的技术解析

Change 技术 2016-08-21 16:16:28
251025
收藏

导语:这是一个boot2root挑战,叫做Pwnlab。我门用vbox运行Pwnlab,并用nmap扫描了下,扫描结果如下:

这是一个boot2root挑战,叫做Pwnlab。我门用vbox运行Pwnlab,并用nmap扫描了下,扫描结果如下:

我们可以看到开放了80端口,果不其然运行着一个web应用。

这个应用程序包含一个登陆页面,主页和上传页面。我尝试浏览robots.txt文件,然而并不存在。所以我们使用dirb工具来枚举存在的目录。

我们打开那个config.php,页面却是一片空白。

对网站进行一阵扫描后,找到一个本地文件包含漏洞,通过php filter的方式加以利用。试着读取index.php的源码:php://filter/convert.base64-encode/resource=index。

我们可以看到页面显示了一段base64编码后的文字,我们进行解码看看是什么内容。

同理,我们读取config.php文件的内容。

解码后发现数据库的帐号密码。

我们使用mysql客户端进行连接。

找到用户表,这个表里面存放着用户名和密码。

密码一看就是base64编码后的。很容易解出来。

kent – JWzXuBJJNy
mike – SIfdsTEn6I
kane – iSv5Ym2GRo

有了这些凭证之后我们成功登陆了网站,打开上传页面。

但是我们上传php后门时失败了,页面提示了错误信息。(后缀不允许,请上传图片文件)

让我们看看upload.php文件是怎么写的吧。

php://filter/convert.base64-encode/resource=upload

解密之后如下图:

代码中我们可以看到有一个白名单后缀数组,意味着它将只接受那些白名单的文件格式。另外一个功能是使用getimagesize函数有效地确认上传文件是否是一个图像。在这一点上,大部分的上传方法将会失败(还有其他的函数可以用来检查上传文件的图像尺寸)。

唯一的方法是上传一个真实的图片通过这些验证而不是绕过检查。我们上传一个有GIF头的php反向shell图片,后缀是gif。

图片文件上传上去了,但是当我们访问之后,nc没有接收到任何反向连接。(译者:如果真收到了那就见鬼了)

此时我又重新读了下index.php的源码,发现include会包含$_COOKIE[‘lang’]的值。这意味着我们可以设置一个cookie,lang的值为上传后的图片路径。这样index.php就会去包含这个图片,执行其中的反向shell代码。

Nc提示接收到一个连接。

将其转换成交互式的shell,方便运行su。在终端中执行:

echo “import pty; pty.spawn(‘/bin/bash’)”> /tmp/asd.py
python /tmp/asd.py

使用我们从数据库中收集到的凭证。

居然登陆进去了,我们看看kane用户目录下面有什么东西。有个msgmike文件,运行出错。显示尝试用cat去读取mike用户目录下的msg.txt文件失败。

我们创建一个cat文件,并设置成可执行文件。

在执行cat命令之前先设置环境变量,执行命令:export PATH=.:$PATH,然后再执行./msgmike文件。

文件执行之后我们有了mike用户的权限。我们在mike的用户目录下面发现更多的可执行文件,其中一个叫做msg2root。执行msg2root之后,得到了一个root权限的/bin/sh会话。

我们在root目录下找到了flag.txt文件。

引用:http://hackers2devnull.blogspot.in/2013/05/how-to-shell-server-via-image-upload.html

  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务