HACK80

作者: djg222000
查看: 150|回复: 0

more +随机图赏Gallery

2017年中旬WEB渗透系列课程-25基于php参数开关的提权2017年中旬WEB渗透系列课程-25基于php参数开关的提权
社工库查询工具1.1修改版社工库查询工具1.1修改版
(公开课)SQLMAP第七课之Tamper插件使用(公开课)SQLMAP第七课之Tamper插件使用
论坛新版IOS及Android客户端内测论坛新版IOS及Android客户端内测
(公开课)SQLMAP第八课之file参数使用(公开课)SQLMAP第八课之file参数使用
2017年中旬WEB渗透系列课程-00前言2017年中旬WEB渗透系列课程-00前言
2017年中旬WEB渗透系列课程-24提权分类2017年中旬WEB渗透系列课程-24提权分类
小迪15期的视频教程小迪15期的视频教程
2017年中旬WEB渗透系列课程-27HASH提权2017年中旬WEB渗透系列课程-27HASH提权
2017年中旬WEB渗透系列课程-21webshell免杀相关问题2017年中旬WEB渗透系列课程-21webshell免杀相关问题

PwnLab挑战技术解析

[复制链接]
djg222000 发表于 2018-2-9 19:12:24 | 显示全部楼层 |阅读模式
查看: 150|回复: 0

马上注册,加入HACK80!与我们一起交流。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
概要
这是一个boot2root的叫做Pwnlab的挑战。
我把拿到flag过程记录了下来:
过程
用vbox运行Pwnlab,并用nmap扫描下,扫描结果如下:
我们可以看到开放了80端口,打开发现运行着一个web应用。
这个应用程序包含一个登陆页面,主页和上传页面。我尝试浏览robots.txt文件,然而并不存在。所以我们使用dirb来枚举存在的目录。
打开config.php,页面是一片空白。
对网站进行扫描后,找到了一个本地文件包含漏洞,通过php://filter的方式加以利用。试着来读取index.php的源码:
php://filter/convert.base64-encode/resource=index
注:php://filter可以参考:《谈一谈php://filter的妙用》
可以看到页面显示了一段base64编码后的字符,我们来解码看看是什么内容。
然后,我们通过php://filter来读取config.php文件的内容。
解码后发现数据库的帐号密码
使用mysql客户端来连接看看
找到存放着用户名和密码的用户表
密码也是base64编码后的。很容易解出来。
kent – JWzXuBJJNy
mike – SIfdsTEn6I
kane – iSv5Ym2GRo
有了这些凭证之后成功登陆了网站,找到上传页面
但是上传php后门时页面提示了错误信息。“不允许的后缀,请上传图片文件“
照旧读取upload.php看看文件是怎么写的吧
php://filter/convert.base64-encode/resource=upload
base64解码之后:
可以看到代码里有一个白名单后缀,意味着它将只接受那些白名单的文件格式。另外一个功能是使用getimagesize函数有效地确认上传文件是否是一个图像。这样的话大部分的上传方法会失败,另外还有其他的函数可以用来检查上传文件的图像尺寸。
唯一的方法是上传一个真实的图片来通过验证而不是绕过检查。我们上传一个有GIF头的php反向shell图片,图片后缀是gif。
图片文件上传之后访问,发现nc没有接收到任何反向连接。(QAQ如果真收到了那就见鬼了)
然后我又重新读了下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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|HACK80 ( 沪ICP备15007512号 )

GMT+8, 2018-2-18 07:06 , Processed in 0.064082 second(s), 24 queries .

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.