美文网首页ctf
杭电hgame-week1

杭电hgame-week1

作者: byc_404 | 来源:发表于2020-01-25 00:00 被阅读0次

萌新的第一次hgame开始了。week1的难度比较友好,至少从web上来说是这样的,自己目标也不高,争取做到每个week能akweb就满足了。这次的web整体上比较简单,除了我自己被坑到的codeworld(中间居然被ban了ip,我只是用脚本post了一次 ,没拿扫描器扫啊啊啊)剩下的3题加起来基本1小时以内就能做完hh。除此之外还试了试密码学跟misc的简单题,也都写一写过程吧。(另外体会到re,pwn真的是爸爸,爷爷,排名高的基本都是二进制的......,我什么时候才能学会二进制啊)

看到官方发布了才发的,那就贴下官方的:https://github.com/vidar-team/Hgame2020_writeup

WEB

Cosmos 的博客

git

显然提示的是源码泄露。那么就果断GitHack走起。可是拿下来的结果只有index.html与css文件。这时候一开始我陷入了错误的想法,具体参考原来ichunqiu上做过的‘登陆’一题。于是我使用了能够回滚的githack,在它爬下的objects里一个个找(具体方法如下)

git  cat-file -p /两位数/文件名
查看完所有objects也没有什么收获,除了出题人的github......那么是否是历史回滚呢?但用git找却只找到一个版本,感觉不太对劲。那就上github上找找吧......结果还真有。 commit

下面的版本中就有flag的base64编码

接头霸王

题目上来没啥提示,除了一张接头霸王的图片跟you need to come from vidar.club


要说web里跟头有关的,那只能是抓包里常见的Header了。加上come from 某个网址,不难知道就是http Header中referer这个属性。这个属性之所以有名,跟它将错就错的拼写有关,正确拼写显然是referrer,而这个错误拼写是早期规范的错误因为向后兼容遗留至今的。其作用是告诉服务器我们访问者是从哪链接过来的,从而进行区别处理。
那么先加referer头


referer

提示要从本地访问,那就更熟悉不过了,因为这用到已经烂熟于心的XFF头了。常常用于伪造ip。所以我们令XFF头为127.0.0.1.


xff

提示改浏览器,那只需改User-Agent 头,加上cosmos即可。


user-agent
flag要在2077后更新?一看到2077我就想到去年新手上场的中科大hackergame里的信息安全2077,那道题就是通过改header中一个属性来拿flag。这道题应该也一样吧......那么我们要改什么属性呢?先来看看response:
Last-Modified

注意到有Last-Moified这一属性,而requests的请求头中与之对应的就是If-Unmodifed-Since,其官方解释

HTTP协议中的 If-Unmodified-Since 消息头用于请求之中,使得当前请求成为条件式请求:只有当资源在指定的时间之后没有进行过修改的情况下,服务器才会返回请求的资源,或是接受 POST 或其他 non-safe 方法的请求。如果所请求的资源在指定的时间之后发生了修改,那么会返回 412 (Precondition Failed) 错误。

所以改好时间在2077之后:


If-Unmodified-Since

code world

这道题做出来的人数算是所有web里面最少的了,但是自己一开始傻傻的卡了好久......
开始一个403,不过作为ctfer,千万不要相信这个403是真正的403,那么先抓个包,果不其然


302

提示存在302,那么直接访问index.php吧,抓包后发至repeater发现存在405,那么果断改成POST请求方式,得到:


人机验证

那么提示通过url传值,那果断传/?a=5+5啊,结果返回说“再想想”。自己顿时陷入迷茫,一开始想是不是不是用+连接,后来又想,基于题目是codeworld,是不是要代码执行?但是fuzz了一下,发现并没有回显执行的点。于是陷入迷茫。后来,自己在检查自己抓的包时,意外发现了一点:

get传值
对了!在进行get传值时,他会把加号处理成空。也正因如此,题目才会要求url传值并使用相加这种方式来设置限定。所以payload即为
/?a=5%2B5
flag

🐔尼泰玫

游戏题hhh但从游戏角度过分难了。显然游戏只是幌子,应该找到网站里能post值的操作,于是尝试狂点‘开始游戏’,果然提示需要300000分时抓到post包。改包就好。


Crypto

InfantRSA

有生之年还能做出RSA......因为看到RSA几个参数提示的很清楚就干脆去网上嫖脚本了。在装库的时候就很无奈,gmpy2总是弄不好。最后去找了个whl,pip install下总归能用了

import gmpy2
import binascii


p = gmpy2.mpz(681782737450022065655472455411)
q = gmpy2.mpz(675274897132088253519831953441)
e = gmpy2.mpz(13)
phi_n = (p-1)*(q-1)
d = gmpy2.invert(e, phi_n)
c = gmpy2.mpz(275698465082361070145173688411496311542172902608559859019841)
m = pow(c, d, p*q)
print("十进制:\n%s"%m)
m_hex = hex(m)[2:]
print("十六进制:\n%s"%(m_hex,))
#print("ascII:\n%s"%((binascii.b2a_hex(hex(m)[2:])).decode('hex'),))
print("ascii:\n%s"%(binascii.a2b_hex(m_hex).decode("utf8"),))

RSA

misc

欢迎参加HGame!

Li0tIC4uLi0tIC4tLi4gLS4tLiAtLS0tLSAtLSAuIC4uLS0uLSAtIC0tLSAuLi0tLi0gLi4tLS0gLS0tLS0gLi4tLS0gLS0tLS0gLi4tLS4tIC4uLi4gLS0uIC4tIC0tIC4uLi0t

一开始不太清楚这是什么编码,后来百度一下发现就是base64。回头想想,发现毕竟是数字+字母的组合,可以考虑base系的编码。
解码后为morse电码,在线解一下就好了。

壁纸

题目下下来打开是个图片,扔winhex里看发现末尾提示flag.txt以及密码是图片id,图片名则标注了pixiv。。。估计是要改成压缩包了,所以也没去看有没有压缩包文件,头就直接改zip,果不其然是压缩包,内容为flag.txt,需要密码。那就直接上p站找这个画师吧(感觉吃了一波强行安利啊)找到图片后用密码看flag.txt,最后结果ascii解码一下就好。

签到题ProPlus

一时兴起还是看了看这道misc。上来先给了一个压缩包一个文件,文件内容

Rdjxfwxjfimkn z,ts wntzi xtjrwm xsfjt jm ywt rtntwhf f y   h jnsxf qjFjf jnb  rg fiyykwtbsnkm tm  xa jsdwqjfmkjy wlviHtqzqsGsffywjjyynf yssm xfjypnyihjn.

JRFVJYFZVRUAGMAI


* Three fenses first, Five Caesar next. English sentense first,  zip password next.

看到fences跟ceaser就想到了栅栏跟凯撒密码了。加上提示先3栅栏,再5凯撒,那么在线解下码,对应组数与偏移数分别为3,5即可。解出来前面一句话如下:
Many years later as he faced the firing squad, Colonel Aureliano Buendia was to remember that distant afternoon when his father took him to discover ice.
出自百年孤独,不知道有什么用。解出的密码用来解压加密的压缩包,得到文档

data:text;ook,
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.............

有点摸不着头脑,于是谷歌一下,发现这是属于brainfuck编码中的一种,不禁让我联想到了原来伤眼睛的jsfuck编码......那么在线解码一下(找个好点的网站,开始我找的网站只解了一部分),得到base32编码。再base32解码,发现得到的结果可以进行base64解码,且结果开头有图片的文件头。那么可以确认是图片文件内容进行了base64编码。那直接解出文件就好了(可以用python,也可以在线)。得到二维码,直接扫码得flag。

相关文章

  • 杭电hgame-week1

    萌新的第一次hgame开始了。week1的难度比较友好,至少从web上来说是这样的,自己目标也不高,争取做到每个w...

  • 杭电助手

    杭电助手(服务号hduhelp,订阅号hduhelper)是隶属于杭州电子科技大学党委学工部的校级组织,我们有前端...

  • 杭电2015

    这道题看起来不复杂,但做起来还是挺费工夫的。里面要用很多的循环结构,很容易在些小地方出错。我就是因为那些小问题而搞...

  • 杭电打卡

    这题主要是数学方法求解,其他没什么难度,关键是得出递推公式。 假如第一个和最后一个格子能相同颜色,我们可以很快算出...

  • 杭电oj 第11页 java版答案

    杭电oj 第2000- 2099 题 全答案杭电oj 第十一页答案 具体路径在 src/main/java/com...

  • 杭电ACM1001

    不再更新,杭电ACM的题转到csdn博客

  • 杭电ACM(1013)

  • 二零一七杭电赏梅

    西邻专司花千尊, 东毗惟和草万匀, 纷落梅卿诱草生, 葱绿淡粉妆美人。

  • 杭电-1009 elevator

    这题就是简单的计算,没什么坑直接就ac了,注意更新当前电梯的位置就行。 AC代码

  • 杭电oj 1004

    杭电oj的1004 从这个题开始 我会把自己ac的题目放在简书上方便自己查看 也顺便帮助别人吧

网友评论

    本文标题:杭电hgame-week1

    本文链接:https://www.haomeiwen.com/subject/noeczctx.html