首届“陇剑杯”网络安全大赛(部分WP)

 浅谈~

博主当成一次个人赛玩玩,没想到这次比赛的赛题类型还是很新颖的,基本都是MISC类型的题目

我这里上传了题目在百度云上,希望UU们手下留情~别让它爆了陇剑杯题目(提取码:vuno)

话不多说,直接上题解!!

1.1

使用wireshark打开其中的“Good.pcapng”流量包

首届“陇剑杯”网络安全大赛(部分WP)_第1张图片

发现有HTTP包,直接过滤HTTP包,再结合题目给出的提示,没有发现dns、ftp包,所以判断出是http协议攻击:

所以选择“http”协议的网络攻击

2.1

使用wireshark打开其中的“goroot.pcap”流量包

首届“陇剑杯”网络安全大赛(部分WP)_第2张图片

发现有HTTP包,直接过滤HTTP包,右键选择“追踪流”进入http流,

首届“陇剑杯”网络安全大赛(部分WP)_第3张图片

发现“cookie”部分出现JWT的类型,所以判断出是jwt认证  

首届“陇剑杯”网络安全大赛(部分WP)_第4张图片

2.2

首届“陇剑杯”网络安全大赛(部分WP)_第5张图片

这个有点被坑到了

首届“陇剑杯”网络安全大赛(部分WP)_第6张图片 发现一个“POST /identity”包,直接追踪打开 

下翻,发现

首届“陇剑杯”网络安全大赛(部分WP)_第7张图片

直接拿去base64解码

获得:{"alg":"HS256","typ":"JWT"}{"id":10086,"MapClaims":{"aud":"admin","username":"admin"}}

拿去提交:10086#admin

结果发现是错的~

然后一个一个地跟包,发现在第十个的时候JWT有变动

首届“陇剑杯”网络安全大赛(部分WP)_第8张图片

 直接拿去base64解码,

获得的有效信息:{"alg":"HS256","typ":"JWT"}{"id":10087,"MapClaims":{"username":"admin"}}

 得到:10087#admin

2.3

首届“陇剑杯”网络安全大赛(部分WP)_第9张图片

使用wireshark打开其中的“goroot.pcap”流量包,随着之前的进度,一个个查看HTTP包的传递内容,直到下面的一个http包

发现有HTTP包,直接过滤HTTP包,右键选择“追踪流”进入http流,

首届“陇剑杯”网络安全大赛(部分WP)_第10张图片

首届“陇剑杯”网络安全大赛(部分WP)_第11张图片

发现“alert(“root\n”)”

所以得出黑客获取了root权限

2.4

首届“陇剑杯”网络安全大赛(部分WP)_第12张图片

继续跟进流量包,查看后续的POST包

首届“陇剑杯”网络安全大赛(部分WP)_第13张图片

这里发现了黑客通过命令传递了一大串字符,直接拿去url解码、base64解码

首届“陇剑杯”网络安全大赛(部分WP)_第14张图片

 发现结果是直接保存为1.c文件,所以这个文件就是黑客上传的文件名.

 2.5

首届“陇剑杯”网络安全大赛(部分WP)_第15张图片

 再次跟进HTTP包,查看黑客的行为,

首届“陇剑杯”网络安全大赛(部分WP)_第16张图片

发现了“looter.so”文件,结合题目的提示“.so”文件,猜测就是答案。

2.6

首届“陇剑杯”网络安全大赛(部分WP)_第17张图片

还是继续根据流量包,

首届“陇剑杯”网络安全大赛(部分WP)_第18张图片

发现文件“looter.so”文件被导向/etc/pam.d/common-auth路径,猜测这里就是被修改的配置文件。 

 “/etc/pam.d/common-auth”

3.1

首届“陇剑杯”网络安全大赛(部分WP)_第19张图片

使用 wireshark 打开其中的“hack.pcap”流量包
发现有 HTTP 包,直接过滤 HTTP 包,
首届“陇剑杯”网络安全大赛(部分WP)_第20张图片

跟进“追踪流”,
首届“陇剑杯”网络安全大赛(部分WP)_第21张图片

9得到密码: Admin123!@#

3.4

首届“陇剑杯”网络安全大赛(部分WP)_第22张图片

继续跟进流量包,慢慢寻找POST传递的包

首届“陇剑杯”网络安全大赛(部分WP)_第23张图片

发现一个文件“1.php”,猜测这个就是黑客上传的代码形成的文件。

3.6

首届“陇剑杯”网络安全大赛(部分WP)_第24张图片

继续跟进

首届“陇剑杯”网络安全大赛(部分WP)_第25张图片

获得一串十六进制代码,直接010Editor打开

首届“陇剑杯”网络安全大赛(部分WP)_第26张图片

得到IP:192.168.239.123

3.7

首届“陇剑杯”网络安全大赛(部分WP)_第27张图片

跟随3.6一样,使用010Editor在那一串十六进制代码里面发现了

“ socks5

plugin_user = 0HDFt16cLQJ

plugin_passwd = JTN276Gp”

=》0HDFt16cLQJ#JTN276Gp

4.1

首届“陇剑杯”网络安全大赛(部分WP)_第28张图片

首届“陇剑杯”网络安全大赛(部分WP)_第29张图片

 发现日志存在很多404回馈,所以查看一下没有404的记录,使用python脚本跑一下就行

string=''
with open('access.log') as f:
    
    string=f.readline()
    while(string !=''):
        if("404" not in string):
            print(string)
        string=f.readline()

            

        
        

首届“陇剑杯”网络安全大赛(部分WP)_第30张图片然后从筛选出来的数据进行分析,发现

 平时打WEB的应该都有经验,这个“www.zip”一般放着leak的源码

=》源码文件:www.zip

4.2

首届“陇剑杯”网络安全大赛(部分WP)_第31张图片

 同样是分析非404的数据,发现

 这里有tmp,机灵的人已经拿去urldecode了

 =》文件名:sess_car

4.3

首届“陇剑杯”网络安全大赛(部分WP)_第32张图片

 同样是在/tmp目录下的操作,发现

 =》类:SplFileObject

7.1(相比于4,这里更简单了,毕竟是“简单日志分析”)

首届“陇剑杯”网络安全大赛(部分WP)_第33张图片

 查看一下日志文件,

首届“陇剑杯”网络安全大赛(部分WP)_第34张图片

 连脚本都可以不改,除了文件名不一样外~

下面三行数据就是全部的解题内容了~~~

 很容易就发现,攻击参数是GET类型的?user

所以,=》攻击参数:user

7.2

首届“陇剑杯”网络安全大赛(部分WP)_第35张图片

对之前的数据中间的参数分别拿去base64解码,发现第二条有我们需要的

首届“陇剑杯”网络安全大赛(部分WP)_第36张图片=》绝对路径:/Th4s_IS_VERY_Import_Fi1e 

7.3

首届“陇剑杯”网络安全大赛(部分WP)_第37张图片

同理7.2,

首届“陇剑杯”网络安全大赛(部分WP)_第38张图片

=》IP:192.168.2.197:8888

8.1

首届“陇剑杯”网络安全大赛(部分WP)_第39张图片

 将日志文件“access.log”拿去URL解码,或者我们也可以很明显地看出来,这就是一个bool盲注首届“陇剑杯”网络安全大赛(部分WP)_第40张图片

 =》手法:布尔盲注

8.2

首届“陇剑杯”网络安全大赛(部分WP)_第41张图片

简单查看了一下日志,发现可以直接在日志获取到结果,

得到库名:sqli 、表名flag 、字段flag

=》sqli#flag#flag

8.3

获取字段值,可以一个一个慢慢查看获取(这样比较费时间,还需要有耐心)

这里提供python脚本获取,

from urllib import parse
num=0
line=0
tmp1=1
tmp2=2
str1=''

with open("access.log",'r') as f:
    string=f.readline()
    while(string !=''):


        if("sqli.flag" in string):
            
            string=parse.unquote(string)
            num=string.find("sqli.flag")#字符
            num+=19
            line=string.find("sqli.flag")
            line+=11
            if(string[line+1] ==","):
                tmp1=int(string[line])
            elif(string[line+1] !=","):
                num+=1
                tmp1=int(string[line:line+2])

      
            if(tmp1 ==tmp2): #发现目标字符,是上一行的
                tmp2+=1
                print(str1,end="")

        str1=string[num] #保留上一行的字符
        string=f.readline()



 =>flag{deddcd67-bcfd-487e-b940-1217e668c7db}



小结

“签到”:1.1

“jwt”:2

“webshell” :3

"日志分析":4

“流量分析”:5

“内存分析”:6

“简单日志分析”:7

“SQL注入”:8

“wifi”:9

"ios":10

"机密内存":11

本次比赛上博主自己解出来的题目都在上面的WP上了,还有一些题目是提交错误次数上了三次,所以算是解题失败不计分~~~还是觉得自己有点菜鸡,比不上很多大佬

你可能感兴趣的:(CTF,网络安全)