Chybeta

XMAN夏令营-2017-比赛系统-writeup

逻辑问题、任意用户密码重置

Task

1
http://202.112.51.217:8013

Solution

有登陆和注册的功能,其中登陆处还有忘记密码。结合url:

1
2
http://202.112.51.217:8013/logic2_regist.php
http://202.112.51.217:8013/logic2_login.php

猜测应该是逻辑问题。

我们注册一个账号

对我这个账号而言,其密保问题和答案均为chybeta

接下来看看登陆功能,用刚刚注册的账号登陆,得到提示:

1
普通用户登录成功,没什么用

那估计要登陆超级用户咯,比如admin。接下来用到忘记密码功能。

我们先输入用户名chybeta


输入密保答案chybeta

抓包!

可以看到有个username字段。我们猜测后端忘记密码的流程是这样的,先从数据库中抽取与用户名相对应的密保问题与答案,之后只要判断我们输入的答案是否和密保答案是否一致即可修改密码,而没有再一次的检查用户名。所以可能存在任意用户密码重置漏洞。

修改username为admin,然后forward掉。然后就可以重置admin的密码了。

重置后登陆得到;

1
FLAG{You_Kookokoko_logic_OK}

微信扫码加入知识星球【漏洞百出】
chybeta WeChat Pay

点击图片放大,扫码知识星球【漏洞百出】

本文标题:XMAN夏令营-2017-比赛系统-writeup

文章作者:chybeta

发布时间:2017年08月22日 - 17:08

最后更新:2017年08月22日 - 17:08

原始链接:http://chybeta.github.io/2017/08/22/XMAN夏令营-2017-比赛系统-writeup/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。