美文网首页CTF
[happyctf热身赛](web)web1

[happyctf热身赛](web)web1

作者: _Deen | 来源:发表于2017-06-29 16:40 被阅读130次

0x00 题目概述


比赛地址:www.happyctf.org

使用thinkphp框架写的登录注册页面。

尝试注入——无效

扫描看目录泄露——存在include,但没有得到有用的信息

注册登录成功后会提示不是管理员,存在admin用户。

注册一段时间后会删除账号。

cookie信息有两个,base64,解码出来是乱码。

flag在哪?

很显然,flag应该是以管理员身份登录成功后才会回显的。

0x01 个人思路流程


要是管理员身份才能拿到flag的ctf题并不少见

这里要感谢p牛的一篇文章,传送门:https://www.leavesongs.com/PENETRATION/mysql-charset-trick.html

所以,这里,我们抓包。注册: admin%c2

是注册成功的,然后登陆:

使用用户名为admin,密码为我们刚刚注册的,并不能成功。

也就是说,并没有重置admin的密码。

这里有一个问题我也还没搞懂,为什么加了%c2之后 可以 一直注册成功 ,而不会提示用户名重复。

卡住了,寻找还有什么有用的信息。

这题的一个关键就是,验证身份是通过cookie里面的uid来验证的,是比较常见的base64,所以很自然的想到,是不是我把管理员的uid搞到手,就行了。

要获取管理员uid,然后替换cookie,第一想到的是把这加密算法搞懂,这里还有一个username呢,也是base64。

于是接下来我不停地注册,观察用户名和cookie里面username之间的关联。想要搞懂是则么实现这加密的,默认cookie里面两个值加密的方法是一样的。

没有收获,搞不出他的加密算法。

算是又卡住了。

页面停留在抓包页面,突然想到,如果我把uid的值替换到username去呢,会怎样?如图

5121

恍然大悟,这就是uid啊,这不就是一个加密一个解密函数么?

我拿管理员的uid去注册不久行了么?

什么?管理员的uid只有一位数?注册长度不够?

1%c2%c2 

0x02 最后题解


是用形如 1%c2%c2的用户名去注册

注册成功后登陆

将登陆成功的得到cookie的username 去替换uid

判断是不是管理员只是根据uid来判断的,和username无关。

这里需要一个脚本

但我想的是先试了1-10不行再写脚本

试了试  到6就出来了

0x03 总结


p牛还是6啊

题目挺好的,给出题人一个赞

怎么说,没有思路是绝对错的这一说,只有相对题目而言的对错

想了挺长时间的,自己太菜了,学吧!Go ahead!

相关文章

网友评论

本文标题:[happyctf热身赛](web)web1

本文链接:https://www.haomeiwen.com/subject/crbmcxtx.html