【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛

【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第1张图片
科莱杯

MISC

签到题 5pt

关注大赛微信公众号,发送:科来杯选拔赛,你就能得到flag啦...

backdoor 15pt

黑客在服务器上种了个后门,从服务器上偷取了重要文件,找到那个文件。
通过分析,我们能发现黑客上传了一个zip文件,内容如下:

【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第2张图片
25号请求

通过分析代码可以知道黑客把这一串数据上传到服务器上并保存为 reverseshell.zip
稍微改一下代码然后在本机的php环境中执行

然后打开web目录下的1.zip文件,里面只有一张二维码图片(左下角我就当没看见好了)


【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第3张图片
二维码

流量包分析 15pt

找到特殊的脚本文件,你就能得到flag
重点分析POST shell.php的几个请求


14299号请求

【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第4张图片
对应的响应信息

执行一下这段代码,输出结果如下:


结果

Mobile

babyApk 15pt

又又又又是Login......
使用jadx-gui反编译apk文件,在MainActivity的onCreate方法中找到密文和解密算法,复制出来编译执行一下即可得到flag。


【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第5张图片
密文和解密算法

Web

有趣的PHP与JS 20pt

闯关开始...
http://47.105.128.100:2333/
打开网站,查看源代码,在http请求头中伪装一下IP即可


网站首页源代码

与客户IP有关的请求行:

x-forwarded-for
x-remote-IP
x-originating-IP
x-remote-ip
x-remote-addr
x-client-ip
x-client-IP
X-Real-ip
【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第6张图片
构造HTTP请求

懒得挨个测试了,都复制进去了。


【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第7张图片
返回结果

根据返回结果,访问另一个url


【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第8张图片
要求使用Mac OSX 99

修改User-Agent即可
Mozilla/5.0 (Macintosh; Intel Mac OS X 99) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A
【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第9张图片
返回结果

没毛病,果然还有第二关


【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第10张图片
这应该是第二关吧

很简单,利用两个字符串的MD5都是0e****开头就好了,php会认为这是科学记数法表示的数值。
提供几组md5

240610708 0e462097431906509019562988736854
314282422 0e990995504821699494520356953734
571579406 0e972379832854295224118025748221
903251147 0e174510503823932942361353209384
1110242161 0e435874558488625891324861198103
1320830526 0e912095958985483346995414060832
【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第11张图片
第三关

仔细看和第二关的区别
如果给md5函数传一个对象的话会返回null,所以我们可以传两个不一样的数组对象过去

http://47.105.128.100:2333/********.php?a[]=1&b[]=2
【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第12张图片
第四关

【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第13张图片
第四关

后面的6位字符每次刷新都会变化,爆破代码如下:

import hashlib, sys

for i in range(1, 10000000):
    s = str(i)
    hl = hashlib.md5()
    hl.update(s.encode(encoding='utf-8'))
    de = hl.hexdigest()
    print('MD5加密前为 :' + s)
    print('MD5加密后为 :' + de)
    if de[:6] == '3b01a4':
        sys.exit()
爆破成功
【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第14张图片
最后一关

查看源代码,找到pin码


【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛_第15张图片
PIN码

Reverse

re-elf 10pt

Give me something interesting

你可能感兴趣的:(【Writeup】科莱杯第七届山东省大学生网络安全技能大赛选拔赛)