美文网首页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