刘功瑞的博客

有一天你突然惊醒,发现这一切,都只不过是一场梦。

2018年CNAS网络安全等级保护测评能力验证与攻防大赛writeup

 
 

 
 

1.考点:身份验证

 
 

 

查看源码得到提示www.zip, 下载解压得到一个username.txt和password.txt, 分别有100个用户名和100个密码,这里在burpsuite里使用Pitchfork模式,然后单线程延时2000毫秒可以爆破成功。

 

 
 

2.考点:访问控制

 
 

 

注册账号登录系统后,有个查看个人信息的功能,将uid改为1即可获取flag

 
 

3.考点:安全审计

 
 

 

打开页面,提供有一个sqlmap进行注入的访问日志,具体过程是一个盲注的过程。

将所有内容url decode后,分析注入过程,可知页面长度为192的时候所执行的SQL语句查询为true,187的长度时查询为false。

可知逐位注入的最后一次查询时,长度为192时,说明“>”比较为true,真实ascii码值就是该位+1,长度为187时,说明“>”比较为false,真实ascii码值就是该位的值。

从而可以获取到注入过程中的数据:

Path: /apkdownload/apk.apk

Username: admin

Password: 0fb0864ee919bccb515bdd5ada9e7bc2

下载到apk后,逆向可知存在接口:

直接访问该接口获取flag

 
 

4.考点:通信保密性

 
 

 

页面打开如下:

仅有一个输入框,输入id=1和id=2内容不同,其他没有发现有注入,经过多次尝试,发现页面存在宽字节注入,可以直接union注入获取数据:

利用sqlmap可以识别出存在注入:

sqlmap -u http://172.17.1.184/?id=12 --dbms mysql --prefix "%df%27" --union-col=2 --technique U -v 3

后续可以获取出当前数据库ctf存在3个表,tool、cipher和key。这里sqlmap无法获取数据,直接手工获取数据:

访问http://172.17.1.184/t0015/gmssl.zip下载解压得到一个py文件,内容是sm4国密算法的实现,有了key和cipher,直接在py脚本中添加代码:

运行得到:

 
 

5.考点:软件容错

 
 

 

 

从题目内容得知是weblogic的反序列化漏洞,访问http://172.17.1.205:7001/wls-wsat/CoordinatorPortType11发现页面存在,猜测应该是CVE-2017-10271漏洞

Payload直接写入webshell:

Webshell地址:http://172.17.1.205:7001/bea_wls_internal/pass.jsp?pwd=023&i=whoami

获取flag:

 
 

6.考点:通信完整性

 
 

 

使用test/test登录,得到cookie

Auth的第一段解base64得到{"alg":"HS512","typ":"JWT"},第二段解base64得到{"username":"test"},知道是jwt认证,那么改下username=admin即可,kali里有jwt模块可以计算,其中secret key在页面中

 
 

7.考点:资源控制

 
 

 

打开页面提示要NewCore浏览器和本地登录,分别修改UA和XFF头。

这里应该是SSRF漏洞,尝试使用file协议读取本地文件

当读取/var/www/html/coreshow.php时,提示要求来自www.newcore.com,于是添加Referer读取coreshow.php,提示源码在core.php中,再读取core.php获取flag.

 
 

8.综合题

 
 

 

页面打开为一个登录页面login.php,使用万能密码admin’ or ‘a’=’a/1可以登录,登录后为一个上传页面。

这里的上传文件不会被重命名,尝试解析漏洞没成功,然后用了pht后缀绕过了黑名单限制得到webshell。

目录下有个flag,是个ELF文件,需要进行逆向。

拿回来发现存在upx壳,直接命令行脱掉。

由于时间有限,这题解了一半,没做完。


 


发表评论:

Powered By Z-BlogPHP 1.5.2 Zero

Copyright www.liugongrui.com.All Rights Reserved.