Hgame-2021-Week2 部分Writeup

# week2-水文


week2的部分题目,过年了..没做几道题目

WEB

LazyDogR4U

存在源码泄露,www.zip下载

image_1etve36jf1vm0m1a19111qms11gt9.png-11.7kB

分析一下代码逻辑。config.ini里面存储这用户的信息

image_1etve66l81kn114nnc4k10061uium.png-18.8kB

解了一下md5发现解不出来,看一下判断登陆的逻辑

image_1etve8snu1ef3pluj671ihkbrn13.png-23.2kB

对输入的密码进行md5加密后对比,testuser的密码进行md5加密后为0e开头的字符,我们可以通过md5的0e漏洞进行绕过登陆,不过我们需要先确定一下flag的获取方式

image_1etvef6nk1dn1fiv3mi1vkr4or1g.png-18kB

必须是admin用户才能登陆,那testuser用户就没有用了,主要看一下如何让我们自己成为admin用户,或者让session中的username为admin用户,这里看一下lazy.php

image_1etvehq891q6gcns42kk4cbok1t.png-41.8kB

我们可以推测问题就出在lazy.php上了,由于开发人员为了方便,将这几种变量都进行了注册,这样的话我们可以直接通过传参的方式修改这些变量,虽然题目中用了preg_replace()对可疑字符进行替换,但是我们可以用双写的方式进行绕过,传输

_SESSESSIONSION[username]=admin

image_1etvenkrh1bp01vtv155ctli1lb22a.png-97.6kB

Liki的生日礼物

这个题目本来是很基础的…但是因为自己浏览器的原因,一直抓不到接口的数据包,导致在盲猜参数,后来调控制台Network才发现一直能看到接口数据包,不过我给隐藏了….太傻逼了

题目思路很简单,给了注册登陆接口,登陆进去后是一个商城

image_1eucdjb701n264spvinnpjgoq1t.png-87.6kB

告诉我们只要买52个以上就有flag,遇到商城问题就是汇率转换、整数溢出、条件竞争,本来测试条件竞争的时候没有发现可疑点,后来把线程调大,忽然就能买51个了,直接抓buy接口的包

image_1eucdoe6jijihf51en01pf7r8o2a.png-94.1kB

image_1eucds72f1ra71kg41nbdb4tlj12n.png-67.5kB

在爆破模块调大线程后自动跑即可

image_1eucduoq6150o1abn1iids131u5h34.png-39.5kB

看一下页面

image_1eucdveo71idoiiv9ih1ca31je13h.png-49.7kB

点击兑换即可获取flag

image_1euce03g01lp010cvps11oom1uiq3u.png-55.1kB

CRYPTO

WhitegiveRSA

N = 882564595536224140639625987659416029426239230804614613279163
e = 65537
c = 747831491353896780365654517748216624798517769637260742155527

直接给了N、e、c,使用在线网站分解一下N

image_1etveqijk1eek1sn7mf4e61hup2n.png-30.1kB

分解出p、q,直接仿队内密码大手子的博客给脚本套上

image_1etvesj031i6e4nv6mh1c87i6g34.png-61kB

import binascii
import gmpy2
n=882564595536224140639625987659416029426239230804614613279163
p=857504083339712752489993810777
q=1029224947942998075080348647219
e=65537
c=747831491353896780365654517748216624798517769637260742155527

phi=(p-1)*(q-1)
d=gmpy2.invert(e,phi)
m=pow(c,d,n)
print(hex(m))
print(binascii.unhexlify(hex(m)[2:].strip("L")))

image_1eu0kaucaisr29vg3ms1473h.png-30.5kB

MISC

Hallucigenia

拿到图片后,看完没有隐藏文件啥的,用stegsolve看一下

image_1eu0kmj5kpkbsbijd0efmg8f3u.png-129.4kB

发现存在二维码,扫码获取一下内容

image_1eu0kn78qgaol2l1340thj1okg4b.png-140.4kB

扫码出来是一串base64,解码后发现明文后面像是图片的头,根据题目提示:颠倒了左右前后,猜测我们需要把base64获取到的明文倒序一下,python处理起来比较麻烦,直接用php

php > $str="gmBCrkRORUkAAAAA+jrgsWajaq0BeC3IQhCEIQhCKZw1MxTzSlNKnmJpivW9IHVPrTjvkkuI3sP7bWAEdIHWCbDsGsRkZ9IUJC9AhfZFbpqrmZBtI+ZvptWC/KCPrL0gFeRPOcI2WyqjndfUWlNj+dgWpe1qSTEcdurXzMRAc5EihsEflmIN8RzuguWq61JWRQpSI51/KHHT/6/ztPZJ33SSKbieTa1C5koONbLcf9aYmsVh7RW6p3SpASnUSb3JuSvpUBKxscbyBjiOpOTq8jcdRsx5/IndXw3VgJV6iO1+6jl4gjVpWouViO6ih9ZmybSPkhaqyNUxVXpV5cYU+Xx5sQTfKystDLipmqaMhxIcgvplLqF/LWZzIS5PvwbqOvrSlNHVEYchCEIQISICSZJijwu50rRQHDyUpaF0y///p6FEDCCDFsuW7YFoVEFEST0BAACLgLOrAAAAAggUAAAAtAAAAFJESEkNAAAAChoKDUdOUIk=";
php > echo bin2hex(strrev(base64_decode($str)));
89504e470d0a1a0a0000000d49484452000000b4000000140802000000abb3808b0000013d494441546881ed96cb1683200c44a1a7ffffcb74a1a5943c1c50b4d2b90b8f629249022221104208218711d5d194d2fa3aea06bf4f2e2173662d7fa12e65fa821c12878ca69aa9b80c2d2b2bdf04b1797cf914c6e5557a5531d5c8aa16928fb4c966d687a2ee88958b5a6935827839ea7eed887a9580d50d5fdd89fc79cc461d37f2eae4a48e3806f2c6b1b11250e92bb9c9bd49d42901a974a7ba15ed61c59a98d67fdcb2350e4ae642ad4d9eb8299274df49f6b4f3afffd371287f9d23520a455652ebaae582ee1cf10d62961fc18622917340c4ccd7ea761c31496aeda516d8f963535ad4d79da32a5b36c2394fe41520bdac8fa0fc82d5a66fe6236d9099ab9a6e45f685402f2414d26764c41aecb009d6817404606dfbc3de884b92ef38ad4f7520bdf58a69629e4a534af31433359c29420821841042c82d7801ad6aa366b1e03afa0000000049454e44ae426082

因为base解码后明文存在不可见字符,而且推测是png图片,我们直接转换成16进制字符串,使用010editer导入生成图片

image_1eu0l99771tu91ni51qhu7ho13424o.png-0.6kB

生成逆序的flag图片,再次逆序一下即可获取到flag

DNS

题目比较基础,给提示了一个新的知识,题目名是DNS,我们直接看域名相关的,看了一下HTTP流

image_1eucd6mp62jp17bp1gmu1o931ioj9.png-26.3kB

告诉我们SPF是解题关键点,百度一下是dns记录类似的,直接找一下域名

image_1eucd7t18r7um8l8o21bqt605m.png-32.9kB

根据百度文章所说

image_1eucd8ddh19b11dfp1ena1h8a16dn13.png-15.2kB

我们直接查一下这个域名

image_1eucd8u7m1sgd1qn41jnsnqkrbo1g.png-128.4kB

成功获取到flag

Telegraph:1601 6639 3459 3134 0892

标注的音频隐写内容

通过Audacity查看波谱图,提示我们850Hz

image_1eucehmgp23p1nm7r23mk113d44b.png-405.7kB

设定好采样率后,我们可以直接获取到一串摩斯电码,解码即可获取flag

image_1eucevevr19ml2b81a4ltoa45d4o.png-8.4kB


发表评论

邮箱地址不会被公开。 必填项已用*标注