[happyctf热身赛](web)web1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[happyctf热身赛](web)web1相关的知识,希望对你有一定的参考价值。

参考技术A 比赛地址:www.happyctf.org

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

尝试注入——无效

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

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

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

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

flag在哪?

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

要是管理员身份才能拿到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 

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

注册成功后登陆

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

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

这里需要一个脚本

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

试了试  到6就出来了

p牛还是6啊

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

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

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

2018年省赛热身赛第4场

A:CSU 1547: Rectangle (思维题加一点01背包)


B:1548: Design road (思维题 做法:三分找极值)


C:1549: Navigition Problem (几何计算+模拟 细节较多)


D;1550: Simple String (做得少的思维题,两个字符串能否组成另外一个字符串问题)


G:1553: Good subsequence (很奇妙的set模拟题,也可以直接暴力)


H:1554: SG Value (巧妙的模拟题,也属于思维题)


I:1555: Inversion Sequence (通过逆序数复原序列 vector的骚操作!!!)







以上是关于[happyctf热身赛](web)web1的主要内容,如果未能解决你的问题,请参考以下文章

热身赛5

2021 ICPC 江西省大学生程序设计竞赛(热身赛)完结

AcWing 第二场热身赛 题解

2018年省赛热身赛第2场

Acwing 第 1 场热身赛 完结

2018年省赛热身赛第4场