LOFTER-网易轻博

gxnnctf 线上wp
kerling 2016-12-08



Basic100

转unicode编码,然后百度Myspace Data Dump,找到https://myspace.thecthulhu.com/这个链接



复制decryption key到框里面,download,出来一个超链接,f12看到key

MISC MP4

查看音频是128格式的 那么明显就是mp3stege隐写了

不过可惜最后没猜出来密码。。。密码是gxnnctf2016

BASIC 二维码

这道题也是有点可惜。最后都没有做出来, 因为拼接太操蛋。。。后来听说解出来的队伍是直接打印然后用剪刀剪的 - - 这都行 最后扫描出来得到字符串 然后根据openssl +md5 之后 得打key

Basic100

百度girolanmo cardano解密,然后第一项有一篇文章,卡尔达诺栅格码。

看到这个



百度spammimic这个网站,点decode,复制下载的内容进去


WEB200_0

直接改xff 为127.0.0.1 然后用admin admin 登入


Web200_2

按照php的;来分行

Line 7 加个

echo $yDeM2817;

然后跑出来

再把eval 改echo再跑


Web 200 3

一道社工题。。。可惜是密码没跑出来。。。直接根据 weibo的生日还有用户ID 林丹生日林丹名字 组合生存 字典 然后用微博ID作为用户名 跑密码。 得出flag( - -字典太差 没跑出来。。)

Linux_RE100

脱到ida 得到 

v3 = "AmeWsOGQ";

   "Ux7o1sYM";

           "QPgzj2PI";

  for ( i = 0; i <= 9; ++i )

  {

  v3[8 * (9 * i % 3)] [((((unsigned int)(3 * i >> 31) >> 29) + 3 * (_BYTE)i) & 7)- ((unsigned int)(3 * i >> 31) >> 29)]

  }

二维数组,下面算出来就是key


Misc 400

Cbc翻转 就是使得原本只能 加密特定 长度的aes 变成 可加密多字节


过程对的

#encoding:utf-8

from Crypto.Cipher import AES

import sys

import binascii

import struct

front_psd=""

re_key=""

temper=""

def test2(lists):

pass

front_text="nF2K9jdPDolzCiil"

IV="0000000000000000"

front_psw=binascii.unhexlify(lists[1])

key=lists[0]

temp=decrypt(front_psw,key)

print "VI is "+xorstr(front_text,temp)

 

def reverser():#跑出来结果以后写的逆函数

inputs="nF2K9jdPDo1zCiilM5bqhoIewLymzzxz"

IV="uTA7CXqM7J5N6ATA"

key="S3JfJzujgw1Rw975"

encoder="72651fdcc33addfc09c3498b712741eddf5f202015c84a74a301fc821b4649e0"

aes= AES.new(key,AES.MODE_CBC,IV)

if binascii.hexlify(aes.encrypt(inputs))==encoder:

print "ok it's eaqual"

 

def key_s(): 

key="S3JfJzujgw1Rw9"

temp=[]

strs=""

for i1 in L1:

for i2 in L1:

strs=key+str(i1)+str(i2)

temp.append(strs)

 

return temp

last="df5f202015c84a74a301fc821b4649e0"

inputs="nF2K9jdPDo1zCiil"#M5bqhoIewLymzzxz"#M5bqhoIewLymzzxz

key="S3JfJzujgw1Rw9"#"S3JfJzujgw1Rw9??"

L1=[]

num=range(0,10)

upper=[chr(i) for i in range(65,91)]

lower=[chr(i) for i in range(97,123)]

L1.extend(num)

L1.extend(upper)

L1.extend(lower)

def byte(v):

    return struct.pack('<B', v)

def xorstr(str1,str2): #xor

    orxstr=""

    for i in range(0,len(str1)):

        orxstr=orxstr+byte(ord(str1[i])^ord(str2[i]))

    return orxstr

def decrypt(message,parser): #first is encode then the key

pass

aes= AES.new(parser,AES.MODE_ECB)

return aes.decrypt(message)

 

def encrypt(message,parser): ##first is msg then the key

pass

aes= AES.new(parser,AES.MODE_CBC,IV)

return aes.encrypt(message)

 

def test():

key=key_s()#生成key所有可能

for x in key: #遍历key

str1=decrypt(binascii.unhexlify("df5f202015c84a74a301fc821b4649e0"),x) #和分块解除第一块密码快

temp=xorstr("M5bqhoIewLymzzxz",str1)#xor 运算

temp=binascii.hexlify(temp)# 再转16进制

#print temp

#print temp

if temp[0:4]=="7265": #开头是 7265 就输出

print "key is "+x

print "front_pass is "+temp

result=[] #填装到result里方便接下来调用

result.append(x)

result.append(temp)

return result

 

a=test() #导出 密文 key

#print a[0]+"\n"+a[1]

test2(a) #解出 vi

reverser()#再写加密算法 验证结果

Reality 300

http://www.tuicool.com/articles/Bfqiua7

http://blog.csdn.net/he520478/article/details/45581405 

前阵子大火的zabbix注入

原本想直接mysql.users的 不知为啥读不出来=- = 

所以读了session 然后登入执行命令弹shell

最后在配置文件(好像叫zabbixxxx.conf)里面 读到了flag (cat zabbx,conf)也就是mysql 密码

Android100

Classes.dex  解包了,还原代码 有个while循环 i是用随机数生成的 然后while里面做post

用了个i边界数值(1 还是-1 来着。。。不记得了)然后火狐hackbar模仿post 上去得flag

Misc 200 神秘流量

wireshark查看所有post包 研究过一点的 都知道那是菜刀的数据流  选了两个write的数据

还原十六进制之后第二张图出现key



Reality  500

原本是比较忙,但还是来看了下,小伙伴直接发webshell过来看,但还是踩了下点,扫了下端口,有php和jsp环境,看了一下jsp,8080端口,在看下界面,jboos,那估计是新出的注入,还有那个注册新用户提权的漏洞或者是有名的java反序列化。

 

果然还是java反序列化,然后直接载入jar,可以直接反弹一个shell到我们的vps,环境比较坑爹,弹了3次才成功,至此获取到一个shell

 

弹出来的shell很不稳定,就echo一个webshell到目标主机,随手翻了翻几个程序的配置文件,把一些帐号密码做成字典

翻找过程中发现许多前辈留下的exp和工具,大部分是提权。。sys权限不知道为何还要提,小伙伴建议继续弹3389或者端口出来

被我拒绝了,前期tasklist发现进程有avg.exe  有杀软还是慢慢来吧,老规矩直接上了两个控(仅作权限稳固,执行命令仍然效率不行)

 

 

目标地址为乌拉圭,时差为11H,但平时白天上班,晚上再回来看的话就是目标管理员刚好上线,

先是把流量转到本地,meterpreter搞起,不知道什么原因,可能是太多人搞,目标机的内存状态不是很稳定。本地只是普通域用户权限,只能sock4a代理了一下,大概的走一圈内网,机子不是很多,但乌拉圭用的是西班牙语,还得慢慢翻译(查看域管和域用户会泄漏很多机器信息)。

 

其中机子宕机了好多次。。。我也和出题的老师沟通几次,用法国神器mimi抓了几次密码并不是很成功,其中因素太多,那就来其他的吧从其他小伙伴那里讨来一个神器,开机截取令牌等功能,然后设置上班高峰期10:30分(北京时间21:30)把目标主机关机,15分钟后,神器没有反应。gg,感觉是被杀了,赶紧veil走了一圈,测了一会不杀,抓了下本地的,然而抓到的东西中间有个空格,什么鬼...登陆不上,作罢。但还是决定第二天同时间再测

 

第二天依旧10:30  管理员这次比较懒,30分钟才来重启,这次神器直接弹信息到vps,域管的哈希拿到了,接着用WCE进行哈希注入,获得了域管理员权限,然后这次再

tasklist  /s  xx.xx.xx.xx    /v  

这次能成功列Uxxxxx那个数据机的进程了

然后建立映射

net  use  x:  \\xx.xx.xx.xx\c$  

从跳板机传个mimi过去,打包成bat,利用at命令执行(注意利用systeminfo查看时间等信息和时差)

读取明文,获取完明文,就截获信息,清后门。管理员一直再踢另一个账户...2333不知道是哪一队的

////////////////

后面以为是uxxx目标的password的hash再md5才是flag,最后沟通才发现是明文加密才是flag    //尴尬

 

|||||||||

统计  

两个控已卸载    ,

两个mimi和神器

三个webshell等已清 

 

Web 200_1

上传点有点奇葩,然后上传后测试了普通的解析漏洞没多大效果,或者是结构比较奇葩,使用名字加密几种md5来进行文件爆破也无解,用扫描探针爆破了下发现,是window的环境,想到以前zone里面有人处理过windows的apache畸形解析上传

用burp改包 ::$DATA  go一波,即可返回flag

其实还有几种上传方法,虽然不能getflag,

http://www.waitalone.cn/php-windows-upload.html

Basic 200

下载附件后发现是音频文件,听起来有明显的断续和长短特征,判断为莫尔斯电码,用auducity打开,放大后发现明显的长度,然后记录下来,对照莫尔斯电码表进行翻译

然而智商不够用,用cwget也是可以的


the key ip773m...-.zmso6w2ou395zlt69...-.end

 

中间的  …-.翻译不了,软件也不出来

因为是5个点。那就是数字的形式

用py跑一波

ip773m0zmso6w2ou395zlt69

ip773m1zmso6w2ou395zlt69

ip773m2zmso6w2ou395zlt69

ip773m3zmso6w2ou395zlt69

ip773m4zmso6w2ou395zlt69

ip773m5zmso6w2ou395zlt69

ip773m6zmso6w2ou395zlt69

ip773m7zmso6w2ou395zlt69

ip773m8zmso6w2ou395zlt69

ip773m9zmso6w2ou395zlt69

 

 

最后测试是  ip773m3zmso6w2ou395zlt69 为flag

感谢kod rootrain 与我撰写wp




推荐文章
评论(0)
联系我们|招贤纳士|移动客户端|风格模板|官方博客
网易公司版权所有 ©1997-2018 浙公网安备 33010002000017号ICP备:浙B2-20090185-5增值电信业务经营许可证:浙B2-20090185
分享到
转载我的主页