[杭电新生赛]hgame-week1-web-wp
hgame第一周总结
(官方wp更加简洁明了、直入主题,个人比较菜,所以过程繁琐
写好了一直没发qwq(就是懒(bushi)
一、Tetris plus!
题目里说玩到3000分就给flag,还真有点点难度,手机玩到3000跳出来flag被隐藏了,于是又用电脑玩(这里经历了重重磨难,首先手机上用了3部手机,前两部刚开始就飞出页面外了,不知道是不是代码不兼容的问题,电脑主机上也是这样,最后还好虚拟机里游戏可以正常运行)
第一天的时候找啊找,能做的都做了(瞎猫乱撞),最后锁定在几个js代码里,发现了几个可疑的地方:
前面两个好像没什么作用,那么这个突然出现的长串jsfuck就值得关注了,先是去解了个码,好像有点接近了,可能是方式不太对,查了一下,jsfuck一般放在控制台运行(先按提示允许粘贴大量代码),然后运行。下面是解码和控制台运行结果:
我们就得到了flag!
hgame{jsfuck_1s_S0_fUu1n}
二、蛛蛛...嘿嘿我的蛛蛛
看名字猜测是网页的爬虫,心中窃喜(啥都不会啊喂),打开一看,有点像hackergame某题,无限点点点
hackergame2021是这样的
(从1970-01-01点到2021当天)那题比较简单一点,payload后面的数字对应往后几天,当时先输了一个很大的数,跳到了2030那年某日,然后二分法调整一下就出来了,,再来看这道题:
这里注意初始的payload,后面每一个页面前半部分的payload都是一样的,但是我们没法从后面的payload里找到顺序,那么还剩连点器和脚本,假设它和hackergame那个一样,甚至更多,那么连点器会很难控制停止页和次数。
,上脚本,,,什么?不会爬虫?自学他个2天!,,还是要请教一下大佬们关于python的使用,减少走歪路。在引导之下,我使用了如下代码:(官方wp要简单很多)
# coding=utf-8
from cgitb import text
import requests
from bs4 import BeautifulSoup
import re
def xhtml( stra,num = 0 ):
flag_num = 1
strHtml = requests.get(stra) # Get方式获取网页数据
html = strHtml.text #结果转换为文本格式
soup=BeautifulSoup(html,"html.parser")#转换成xml格式方便提取,这个用法不常见,需要百度其用法
if html.count("你现在在") == 0:#或者("flag")==2 #或者长度不为特定1-x天页面字数固定某几个长度(有一点猜测的成分,但是多试几次就好了,实现方法很多。这里代码的意思是当前页面没有了你现在在这四个字。
flag_num = 2
global keykkK
for k in soup.find_all('a'): #a标签,超链接(打开源代码可以看到有几个点我试试就有几个a标签,而每次都只有一个a标签里面有内容,即?key=……,那么我们把它取下来和前面的url进行拼接
num = num + 1 # 用于验证
if len(k['href']) != 0:
keykkK = k['href'] #直接获取a标签href属性值
# 查找flag实现 待实现 之后将flag带到while中判断
return flag_num ,keykkK,num
# 返回 flag标记、url、当前关卡数
uflag = 1 # flag 初始化
key = 0 #验证 第几个页面
a = 0 #验证 第几关
straa = 'https://hgame-spider.vidar.club/ba357f7c0a'
while uflag == 1 :#直到出现目标停止循环
if key == a:
key += 1 #相等就证明在运行正常
resu = xhtml(straa)
#获取返回值
print("第"+ str(resu[2]) +"关")
a = resu[2]#当前页面几个[点我试试]
uflag = resu[0]#获取标志参数情况
kk = resu[1] #key值,进行url拼接
straa = 'https://hgame-spider.vidar.club/ba357f7c0a' #强制重置URL
straa = straa + kk
print(straa)
这里插一句,观察网页页面特征和源代码极为重要,就像这个a标签里的内容就是观察得知
运行脚本:
计数器最后跳回了第一关(只是一个标记),说明找到了,最后这个100关和第1关的网址就是存在flag的那一页
然后就找找了,找到flag:
hgame{8a777c618441180e3c3ca82ad2a13023c8d3602197b69ab373f8724e2381f368}
三、Fujiwara Tofu Shop
这道题出的很好,下次不准再出了。。把我这菜菜逼疯了
上来一个不熟悉的地址xxx.xxx.top,提示qiumingshan.net,很蠢的试了亿下,还各种抓包,啥事儿没有,几经周折,噢,原来是http报文头,,解题常用:Referer、Cookie、User-Agent、XFF
burp请求和响应报文头例如:
通用头部字段 : 1.Cache-Control 2、Connection 3、Transfer-Encoding 4、Via
请求头部字段: 1 Accept 2 Accept-Encoding 3 Accept-Language 4 Authorization 5 If-Match 与If-None-Match 6 If-Modified-Since与If-Unmodified-Since 7 If-Range 8 Referer 9 User-Agent
响应头部字段: 1 Accept-Ranges 2 Age 3 Etag 4 Location 5 Server 6 Vary 7 WWW-Authenticate
实体头部字段: 1 Allow 2 Content-Encoding 3 Content-Language 4 Content-Length 5 Content-MD5
Cookie相关的头部字段:1. Set-Cookie 2.Cookie
解:试了一下,qiumingshan.net是referer伪造(表示来源,这里个人理解为创造了一个秋名山的地点来源)
然后是User-Agent(用户代理)
oh,树莓曲奇,曲奇很容易想到cookie,那就cookie吧,试了一下啊,啥都没有
卡的有点久,东找找西找找看到了个警告,cookie的flavor值,说明要flavor=Raspberry
emmm,这里没办法了,抓个包试试
好家伙,再一查汽油的英文:gasoline,真好,,
下面就是XFF填本地地址了127.0.0.1
焯!大黑阔,大黑客……要干啥?应该是我填错了头,不是xff,查了一下还有X-Real-IP,true-client-ip之类的,这里是X-Real-IP(xff的第一个地址)
一整个大出乎意料给到,奇怪的姿势增加了,X-Real-IP,而且如果XFF存在的话会把它覆盖掉,所以
:X-Real-IP: 127.0.0.1
nice!虽然中间走了很多弯路,浪费不少时间,但是还是有收获哒……
hgame{I_b0ught_4_S3xy_sw1mSu1t}
四、easy_auth
首先题目描述里面,题目auth提示登录(验证用户是否拥有访问系统的权利)(即鉴权问题),描述里“没有调试完”提示存在弱密码等问题,f12查看,只有一处出现了反常,本地存储里出现了token(前后端交互使用)。正常登录获得自己的token
,前往jwt解析工具
翻译了一下,签名无效(验证失败),把secret删了,成功
看上面的信息,手动改username: "admin"(题目描述),猜测id: 1(1,2,3……)(原来username为另外字母,id好像是6049)。然后重新生成了一个encoded
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJRCI6MSwiVXNlck5hbWUiOiJhZG1pbiIsIlBob25lIjoiIiwiRW1haWwiOiIiLCJleHAiOjE2NDQzNTUyMzQsImlzcyI6Ik1KY2xvdWRzIn0.-j4xVQDz-41hFneJoAychIMhZn0umBJr6Sfr93XgaYs
重新放到token里
得到
hgame{S0_y0u_K1n0w_hOw_JwT_Works1l1lL}
[杭电新生赛]hgame-week1-web-wp的更多相关文章
- [HGAME] Week1 Web WriteUp
一 .Cosmos的博客 打开题目之后,首页直接给了我们提示: 版本管理工具常用的有git和svn两种,这里提示了GitHub,考虑Git信息泄露,先访问/.git/目录考虑用Githack获取泄露信 ...
- 搬砖--杭电校赛(dfs)
搬砖 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submissi ...
- ACM组队安排-——杭电校赛(递推)
#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> #in ...
- 逆袭指数-——杭电校赛(dfs)
逆袭指数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- ACM 五一杭电赛码"BestCoder"杯中国大学生程序设计冠军赛小记
对于这项曾经热爱的竞赛,不得不说这是我最后一年参加ACM比赛了,所以要珍惜每一次比赛的机会. 五一去杭电参加了赛码"BestCoder"杯中国大学生程序设计冠军赛,去的队伍包括了今 ...
- 可持久化线段树的学习(区间第k大和查询历史版本的数据)(杭电多校赛第二场1011)
以前我们学习了线段树可以知道,线段树的每一个节点都储存的是一段区间,所以线段树可以做简单的区间查询,更改等简单的操作. 而后面再做有些题目,就可能会碰到一种回退的操作.这里的回退是指回到未做各种操作之 ...
- 高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”
按 被中科大软件学院二年级研究生 HCOONa 骂为“误人子弟”之后(见:<中科大的那位,敢更不要脸点么?> ),继续“误人子弟”. 问题: 题目:(感谢 王爱学志 网友对题目给出的翻译) ...
- 杭电acm阶段之理工大版
想參加全国软件设计大赛C/C++语言组的同学,假设前一篇<C和指针课后练习题总结>没看完的,请先看完而且依照上面的训练做完,然后做以下的训练. 传送门:http://blog.csdn.n ...
- HDU 1290 献给杭电五十周年校庆的礼物(面分割空间 求得到的最大空间数目)
传送门: 献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
随机推荐
- Solr集群安装Version5.5.2(cloud模式)
Solr安装cloud模式,基于Solr的安装版本为5.5.2. 安装规划 Solr IP/机器名 安装软件 运行进程 zdh-7 solr jar zdh-9 solr jar zookeeper ...
- docker简单安装
docker的安装官网有很直接的教程,直达链接: Ubuntu:https://docs.docker.com/engine/install/ubuntu/ CentOS:https://docs.d ...
- css 基础 rgba表示法
color:rgba(); //r表示red 红色 //g表示green 绿色 //b表示blue 蓝色 //a 表示透明度 color:rgb(0,0,0,0) //黑色 color:rgb(255 ...
- 【计项02组01号】Java版图形界面计算器
Java版图形界面计算器1.0版本 项目分析[1.0] 组成部分 代码结构 (1)窗口的创建 在<JDK 核心 API>中我们提到,创建一个窗口需要使用 JFrame 类.在本实验中,我们 ...
- CentOS 系统 查看 cpu核数
转载自 :Centos下查看cpu核数 - 韩憨 - 博客园 (cnblogs.com) 1.概念物理CPU:实际Server中插槽上的CPU个数.物理cpu数量:可以数不重复的 physical i ...
- redis 重启服务丢失 密码设置 现象 与 解决过程
1. 前言 今天开电脑,开启redis服务后,项目使用redis的时候提示 不能找到 redisPools,并提示密码错误, 然后我用cmd打开却可以使用,真是奇了怪了!!! 2.使用现象: (1)c ...
- Echart可视化学习(九)
文档的源代码地址,需要的下载就可以了(访问密码:7567) https://url56.ctfile.com/f/34653256-527823386-04154f 官网找到类似实例, 适当分析,并且 ...
- RootersCTF2019 I ♥ Flask
最近也是一直在做ssti方面的题目,我发现了两款比较好用的工具,一个是arjun(用来探测参数),另一个是Tplmap(用来探测ssti漏洞),我们这里以一道题目为例来演示一下 题目 我们拿到题目 分 ...
- 【Warrior刷题笔记】143.重排链表 【线性化 || 双指针+翻转链表+链表合并】详细注释
题目一 力扣143.重排链表 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reorder-list/ 1.描述 给定一个单链表L的头节点he ...
- 《剑指offer》面试题26. 树的子结构
问题描述 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A: 3 / ...