Hgame-week1

发布于 2023-01-06  0 次阅读


WEB

Classic Childhood Game

兔兔最近迷上了一个纯前端实现的网页小游戏,但是好像有点难玩,快帮兔兔通关游戏!

前端嘛,直接找js,搜一下“通关”“胜利”“结束”“恭喜”这类字眼就能找到了(因为还不知道flag格式)

发现在游戏通关后会调用mota()函数,所以咱们自己调用一下就OK啦

Guess who I am

刚加入Vidar的兔兔还认不清协会成员诶,学长要求的答对100次问题可太难了,你能帮兔兔写个脚本答题吗?

脚本题,首先得把成员名单拉下来弄个字典,直接复制粘贴就行

后来发现我错了,这个网页上的名单有一大半都是有问题的,不是多个空格就是少个字符,需要用他们给的Hint: https://github.com/Potat0000/VidarWebsite/blob/master/src/scripts/config/member.js

dict_pri = {"ba1van4":"21级 / 不会Re / 不会美工 / 活在梦里 / 喜欢做不会的事情 / ◼◻粉","yolande":"21级 / 非常菜的密码手 / 很懒的摸鱼爱好者,有点呆,想学点别的但是一直开摆","t0hka":"21级 / 日常自闭的Re手","h4kuy4":"21级 / 菜鸡pwn手 / 又菜又爱摆","kabuto":"21级web / cat../../../../f*","R1esbyfe":"21级 / 爱好歪脖 / 究极咸鱼一条 / 热爱幻想 / 喜欢窥屏水群","tr0uble":"21级 / 喜欢肝原神的密码手","Roam":"21级 / 入门级crypto","Potat0":"20级 / 摆烂网管 / DN42爱好者","Summer":"20级 / 歪脖手 / 想学运维 / 发呆业务爱好者","chuj":"20级 / 已退休不再参与大多数赛事 / 不好好学习,生活中就会多出许多魔法和奇迹","4nsw3r":"20级会长 / re / 不会pwn","4ctue":"20级 / 可能是IOT的MISC手 / 可能是美工 / 废物晚期","0wl":"20级 / Re手 / 菜","At0m":"20级 / web / 想学iot","ChenMoFeiJin":"20级 / Crypto / 摸鱼学代师","Klrin":"20级 / WEB / 菜的抠脚 / 想学GO","ek1ng":"20级 / Web / 还在努力","latt1ce":"20级 / Crypto&BlockChain / Plz V me 50 eth","Ac4ae0":"*级 / 被拐卖来接盘的格子 / 不可以乱涂乱画哦","Akira":"19级 / 不会web / 半吊子运维 / 今天您漏油了吗","qz":"19级 / 摸鱼美工 / 学习图形学、渲染ing","Liki4":"19级 / 脖子笔直歪脖手","0x4qE":"19级 / &lt;/p&gt;&lt;p&gt;Web","xi4oyu":"19级 / 骨瘦如柴的胖手","R3n0":"19级 / bin底层选手","m140":"19级 / 不会re / dl萌新 / 太弱小了,没有力量 / 想学游戏","Mezone":"19级 / 普通的binary爱好者。","d1gg12":"19级 / 游戏开发 / 🐟粉","Trotsky":"19级 / 半个全栈 / 安卓摸🐟 / P 社玩家 / 🍆粉","Gamison":"19级 / 挖坑不填的web选手","Tinmix":"19级会长 / DL爱好者 / web苦手","RT":"19级 / Re手,我手呢?","wenzhuan":"18 级 / 完全不会安全 / 一个做设计的鸽子美工 / 天天画表情包","Cosmos":"18级 / 莫得灵魂的开发 / 茄粉 / 作豚 / 米厨","Y":"18 级 / Bin / Win / 电竞缺乏视力 / 开发太菜 / 只会 C / CSGO 白给选手","Annevi":"18级 / 会点开发的退休web手 / 想学挖洞 / 混吃等死","logong":"18 级 / 求大佬带我IoT入门 / web太难了只能做做misc维持生计 / 摸🐟","Kevin":"18 级 / Web / 车万","LurkNoi":"18级 / 会一丢丢crypto / 摸鱼","幼稚园":"18级会长 / 二进制安全 / 干拉","lostflower":"18级 / 游戏引擎开发 / 尚有梦想的game maker","Roc826":"18 级 / Web 底层选手","Seadom":"18 级 / Web / 真·菜到超乎想象 / 拼死学(mo)习(yu)中","ObjectNotFound":"18级 / 懂点Web & Misc / 懂点运维 / 正在懂游戏引擎 / 我们联合!","Moesang":"18 级 / 不擅长 Web / 擅长摸鱼 / 摸鱼!","E99p1ant":"18级 / 囊地鼠饲养员 / 写了一个叫 Cardinal 的平台","Michael":"18 级 / Java / 会除我佬","matrixtang":"18级 / 编译器工程师( 伪 / 半吊子PL- 静态分析方向","r4u":"18级 / 不可以摸🐠哦","357":"18级 / 并不会web / 端茶送水选手","Li4n0":"17 级 / Web 安全爱好者 / 半个程序员 / 没有女朋友","迟原静":"17级 / Focus on Java Security","Ch1p":"17 级 / 自称 Bin 手实际啥都不会 / 二次元安全","f1rry":"17 级 / Web","mian":"17 级 / 业余开发 / 专业摸鱼","ACce1er4t0r":"17级 / 摸鱼ctfer / 依旧在尝试入门bin / 菜鸡研究生+1","MiGo":"17级 / 二战人 / 老二次元 / 兴趣驱动生活","BrownFly":"17级 / RedTeamer / 字节跳动安全工程师","Aris":"17级/ Key厨 / 腾讯玄武倒水的","hsiaoxychen":"17级 / 游戏厂打工仔 / 来深圳找我快活","Lou00":"17级 / web / 东南读研","Junier":"16 级 / 立志学术的统计er / R / 为楼上的脱单事业做出了贡献","bigmud":"16 级会长 / Web 后端 / 会一点点 Web 安全 / 会一丢丢二进制","NeverMoes":"16 级 / Java 福娃 / 上班 996 / 下班 669","Sora":"16 级 / Web Developer","fantasyqt":"16 级 / 可能会运维 / 摸鱼选手","vvv_347":"16 级 / Rev / Windows / Freelancer","veritas501":"16 级 / Bin / 被迫研狗","LuckyCat":"16 级 / Web 🐱 / 现于长亭科技实习","Ash":"16 级 / Java 开发攻城狮 / 996 选手 / 濒临猝死","Cyris":"16 级 / Web 前端 / 美工 / 阿里云搬砖","Acaleph":"16 级 / Web 前端 / 水母一小只 / 程序员鼓励师 / Cy 来组饥荒!","b0lv42":"16级 / 大果子 / 毕业1年仍在寻找vidar娘接盘侠","ngc7293":"16 级 / 蟒蛇饲养员 / 高数小王子","ckj123":"16 级 / Web / 菜鸡第一人","cru5h":"16级 / 前web手、现pwn手 / 菜鸡研究生 / scu","xiaoyao52110":"16 级 / Bin 打杂 / 他们说菜都是假的,我是真的","Undefinedv":"15 级网安协会会长 / Web 安全","Spine":"逆向 / 二进制安全","Tata":"二进制 CGC 入门水准 / 半吊子爬虫与反爬虫","Airbasic":"Web 安全 / 长亭科技安服部门 / TSRC 2015 年年度英雄榜第八、2016 年年度英雄榜第十三","jibo":"15 级 / 什么都不会的开发 / 打什么都菜","Processor":"15 级 Vidar 会长 / 送分型逆向选手 / 13 段剑纯 / 差点没毕业 / 阿斯巴甜有点甜","HeartSky":"15 级 / 挖不到洞 / 打不动 CTF / 内网渗透不了 / 工具写不出","Minygd":"15 级 / 删库跑路熟练工 / 没事儿拍个照 / 企鹅","Yotubird":"15 级 / 已入 Python 神教","c014":"15 级 / Web 🐶 / 汪汪汪","Explorer":"14 级 HDUISA 会长 / 二进制安全 / 曾被 NULL、TD、蓝莲花等拉去凑人数 / 差点没毕业 / 长亭安研","Aklis":"14 级 HDUISA 副会长 / 二次元 / 拼多多安全工程师","Sysorem":"14 级网安协会会长 / HDUISA 成员 / Web 安全 / Freebuf 安全社区特约作者 / FSI2015Freebuf 特邀嘉宾","Hcamael":"13 级 / 知道创宇 404 安全研究员 / 现在 Nu1L 划划水 / IoT、Web、二进制漏洞,密码学,区块链都看得懂一点,但啥也不会","LoRexxar":"14 级 / Web 🐶 / 杭电江流儿 / 自走棋主教守门员","A1ex":"14 级网安协会副会长 / Web 安全","Ahlaman":"14 级网安协会副会长 / 无线安全","lightless":"Web 安全 / 安全工程师 / 半吊子开发 / 半吊子安全研究","Edward_L":"13 级 HDUISA 会长 / Web 安全 / 华为安全部门 / 二进制安全,fuzz,符号执行方向研究","逆风":"13 级菜鸡 / 大数据打杂","陈斩仙":"什么都不会 / 咸鱼研究生 / <del>安恒</del>、<del>长亭</del> / SJTU","Eric":"渗透 / 人工智能 / 北师大博士在读"}

dic = {value:key for key,value in dict_pri.items()}

class Keys(object):
    """
    Set of special keys codes.
    """

    NULL = '\ue000'
    CANCEL = '\ue001'  # ^break
    HELP = '\ue002'
    BACKSPACE = '\ue003'
    BACK_SPACE = BACKSPACE
    TAB = '\ue004'
    CLEAR = '\ue005'
    RETURN = '\ue006'
    ENTER = '\ue007'
    SHIFT = '\ue008'
    LEFT_SHIFT = SHIFT
    CONTROL = '\ue009'
    LEFT_CONTROL = CONTROL
    ALT = '\ue00a'
    LEFT_ALT = ALT
    PAUSE = '\ue00b'
    ESCAPE = '\ue00c'
    SPACE = '\ue00d'
    PAGE_UP = '\ue00e'
    PAGE_DOWN = '\ue00f'
    END = '\ue010'
    HOME = '\ue011'
    LEFT = '\ue012'
    ARROW_LEFT = LEFT
    UP = '\ue013'
    ARROW_UP = UP
    RIGHT = '\ue014'
    ARROW_RIGHT = RIGHT
    DOWN = '\ue015'
    ARROW_DOWN = DOWN
    INSERT = '\ue016'
    DELETE = '\ue017'
    SEMICOLON = '\ue018'
    EQUALS = '\ue019'

    NUMPAD0 = '\ue01a'  # number pad keys
    NUMPAD1 = '\ue01b'
    NUMPAD2 = '\ue01c'
    NUMPAD3 = '\ue01d'
    NUMPAD4 = '\ue01e'
    NUMPAD5 = '\ue01f'
    NUMPAD6 = '\ue020'
    NUMPAD7 = '\ue021'
    NUMPAD8 = '\ue022'
    NUMPAD9 = '\ue023'
    MULTIPLY = '\ue024'
    ADD = '\ue025'
    SEPARATOR = '\ue026'
    SUBTRACT = '\ue027'
    DECIMAL = '\ue028'
    DIVIDE = '\ue029'

    F1 = '\ue031'  # function  keys
    F2 = '\ue032'
    F3 = '\ue033'
    F4 = '\ue034'
    F5 = '\ue035'
    F6 = '\ue036'
    F7 = '\ue037'
    F8 = '\ue038'
    F9 = '\ue039'
    F10 = '\ue03a'
    F11 = '\ue03b'
    F12 = '\ue03c'

    META = '\ue03d'
    COMMAND = '\ue03d'

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome()
driver.get(r"http://week-1.hgame.lwsec.cn:30219/")
driver.refresh()
time.sleep(2)
while True:
    time.sleep(2)
    intro = driver.find_element(By.CLASS_NAME, 'question').text
    print(intro[25:])
    print(dic[intro[25:]])
    driver.find_element(By.CLASS_NAME, 'n-input__input-el').send_keys(Keys.CONTROL, "a")
    driver.find_element(By.CLASS_NAME, 'n-input__input-el').send_keys(dic[intro[25:]])
    driver.find_element(By.CLASS_NAME, 'n-button__content').click()
    time.sleep(2)
    driver.switch_to.alert.accept()
    score = driver.find_element(By.CLASS_NAME, 'score').text
    print(score)
    print("-"*20)

思路很简单,获取一下question类里面的介绍,之后当做key拿字典对出来,把value扔进那个input里再点一下button和弹出来的alert就可以了

Show Me Your Beauty

登陆了之前获取的会员账号之后,兔兔想找一张自己的可爱照片,上传到个人信息的头像中 :D 不过好像可以上传些奇怪后缀名的文件诶 XD

文件上传,前后端检验都有。前端把js禁用,后端修改后缀为不常见的php3,php4,php5,pht,phtml,phps绕过即可

上蚁剑,根目录下拿到flag

Become A Member

学校通知放寒假啦,兔兔兴高采烈的打算购买回家的车票,这时兔兔发现成为购票网站的会员账户可以省下一笔money…… 想成为会员也很简单,只需要一点点HTTP的知识……等下,HTTP是什么,可以吃吗

要啥给啥

GET / HTTP/1.1
Host: week-1.hgame.lwsec.cn:31236
Cache-Control: max-age=3600
Referer: bunnybunnybunny.com
x-forwarded-for:127.0.0.1
Upgrade-Insecure-Requests: 1
User-Agent: Cute-Bunny
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Length: 53
Cookie: code=Vidar

{
"username":"luckytoday","password":"happy123"
}

MISC

Sign In Pro Max

兔兔没有抢到回家的车票,一个猫猫头像的学长给了他一个候补车票抢票软件,但是这个软件的验证码太难了,你能帮他解一下吗? flag 英文字母为全小写,自行使用 hgame{}包裹后提交

Part1, is seems like baseXX: QVl5Y3BNQjE1ektibnU3SnN6M0tGaQ==
Part2, a hash function with 128bit digest size and 512bit block size: c629d83ff9804fb62202e90b0945a323
Part3, a hash function with 160bit digest size and 512bit block size: 99f3b3ada2b4675c518ff23cbd9539da05e2f1f8
Part4, the next generation hash function of part3 with 256bit block size and 64 rounds: 1838f8d5b547c012404e53a9d8c76c56399507a2b017058ec7f27428fda5e7db
Ufwy5 nx 0gh0jf61i21h, stb uzy fqq ymj ufwyx ytljymjw, its'y ktwljy ymj ktwrfy.

p1 AYycpMB15zKbnu7Jsz3KFi(base64) -> MY2TCZBTMEYTQ===(base58) -> f51d3a18

p2/p3/p4本意应该是让你了解一下SHA-1/SHA-2这些,但是利用网站可以自动识别,算是逃了个课

md5在线解密破解,md5解密加密 (cmd5.com)

md5在线加密解密

p2 f91c
p3 4952
p4 a3ed

p5盲猜凯撒,移位21后得到原文

Part5 is 0bc0ea61d21c, now put all the parts together, don't forget the format.

五个part的长度是8-4-4-4-12,直接拼起来答案不对,这时很容易想到8-4-4-4-12是UUID的格式

例如这样

最后flag:hgame{f51d3a18-f91c-4952-a3ed-0bc0ea61d21c}

PWN

test_nc

嗯,能连上网

Reverse

test your IDA

签到,附件到群里下载吧,链接不好使了

嗯,IDA能用


若金色的阳光停止了它耀眼的光芒,你的一个微笑,将照亮我的整个世界