[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的主要内容,如果未能解决你的问题,请参考以下文章