解题报告 濮元杰部分:

王者归来: 120

场景

小王入职了一段时间,最近有点无聊。Web安全项目不多,白天看着其他项目组的同事忙得热火朝天,小王有点坐不住了,这也许是新人都会有的想法,乐于助人。想到这,小王一眼看到了隔壁的小丽,哎,IT界小丽绝对算得上是一位美女啦,于是小王凑了过去对小丽说:小丽,看你眉头紧锁的,需要本大侠帮忙吗?小丽转头看着小王,愣了足足有10秒,突然说:那,那好吧,如果你帮我搞定这三个问题,嗯~我请你吃晚饭,就我们两个。天哪,这,这,小王已经按耐不住突如其来的喜悦,战斗力倍增,大喝一声:好,来吧! (为了得到美女垂青,小王决定放手一搏)

描述

题干:小丽被分派去破解一份被加密的数据库登录配置文件,小丽通过N次测试后发现,原来TEST 用户的密码竟然是TEST123123,但这个数据库帐号能用的功能太少了,而小丽的组长却要求她分析出SA的密码。于是小丽把这个任务作为第二个难题抛给了小王。事实上,这件事对于小王来说也不算难,小王沉下心来努力还原算法,最终得到了 sa的密码(flag)。
DatabaseName="TEST" user="TEST"
password="00560041005b00440011007200b3013100300037"
DatabaseName="GCOA" user="sa"
password="0071007e007f006a004b002a00e70163006d0065002900500003"

解题:一开始关注到了后面的数字都比前面的大,并且是四个四个一组的,上了个厕所后脑洞大开,TEST123123--------ascii----》84 69 83 84 49 50 51 49 50 51------binary---à 1010100 1000101 1010011 1010100 110001 110010 110011 110001 110010
110011

0056 0041 005b
0044 0011 0072 00b3 0131 0030 0037------binary------à1010110 1000001 1011011 1000100 10001 1110010 10110011 100110001
110000 110111

将两个二进制放在一起并且添加前导0对比:

1010100 1000101
1010011 1010100 110001 110010 110011 110001 110010 110011

1010110 1000001
1011011 1000100 10001 1110010 10110011 100110001 110000 110111

发现上下两个串便是XOR 10 100 1000 10000 100000…10 100 1000….找到规律后迅速解决了这题

1110001 1111110
1111111 1101010 1001011 101010 11100111 101100011 1101101 1100101 101001
1010000 11  --》

1110011 1111010
1110111 1111010 1101011 1101010 1100111 1100011 1101111 1100001 100001 1000000
100011

Answer:
szwzkjgcoa!@#

抽丝剥茧: 140

场景

这是一次高手间的较量。就在5分钟前,吴总把小王叫到办公室,神秘的对他说:小王,你在公司表现一直不错,我关注你已经很久了。现在,公司里可能出现了商业间谍,我们初步怀疑是小丁,但没有证据。这件事我决定交给你去处理,但是你要绝对保密。小王寻思:小丁也是一名出色的信息安全工程师,想要从他留下的蛛丝马迹中找出线索,完成吴总交代的任务,着实是一件头痛的事情。

描述

题干:据相关情报得知,小丁一直在公司中访问一个网址的文件服务器,并上传了一些数据,这里很可能都是公司的机密数据,但是这台服务器安全性很好,暂时无法突破,所以我们需要调查小丁使用的密码,这个密码我们一直怀疑跟小丁计算机上的一个压缩文件有关,至于存在什么关系,我们目前还不得而知。(提示:找到最后指向那个文件中隐藏的flag)
地址:http://range.jsxajs.cn:8080/file/one/index.docx

解题报告:这题困了我们大概一天的时间吧,第一天把文件改成rar,发现能打开,无果,寻病终。第二天终于找对了方向,先是在文件中想搜一下flag关键字,谁知搜着搜着搜到了一个白色的http开头的字符,将其变成红色后发现:Next Document
http://range.jsxajs.cn:8080/file/one/ e9d520bb983c5ed0.docx

下载之,发现里面有隐藏字符(能那么快发现是因为我的word默认开启了查看隐藏字符233333),直接下载发现一幅图片:b2e514b8576fab1a.jpg

Winhex打开之发现里面藏着另一个图片的地址,再去下载发现1306f3da181885e4.jpg

仍是winhex打开,末尾发现PK文件头,应该是主办方要我们用.rar打开它,但文件应该没有压缩,因此直接往下翻一下就看到了答案:address.txt 鹁?答案字符串 1002F07D8F0088

兵不厌诈: 120

场景

两个星期后,小王顺利入职了公司,首先是为期三个月的实习期。小王与同事A、B、C一同入职,相互比较熟悉。同事A擅长加密与解密,同事B擅长逆向反汇编,同事C主要研究的是移动终端安全,小王自己擅长渗透测试。经公司领导讨论后,决定将小王与A、B、C组成一个团队。于是,小王的实习期开始了。 (声明:web类题目使用扫描工具无效,如因扫描堵塞自己学校的网络出口,后果自负)

描述

题干:揭晓入侵者如何进入后台后,开始对前端1元订单的事件进行处理。下面地址是一个购买页面,队员需要改变商品价格(1元)然后提交订单,获取flag。(提示:key的提交形式为flag:{xxxx})
地址:http://218.2.197.250/Ticket/index.html

题目大意:一开始我用fiddle抓包,但是什么包都没有抓到,再看form的action发现属性 是传到本地的,但搜索了try
again关键字,都没有,于是很好奇try
again到底是从哪里来的。

CSS不能弹窗,思来想去只能是js的问题,翻到bootstrap.min.js,硬着头皮看了下它的代码,用subline整理以及高亮了它的代码后,我这个强迫症终于能看它的代码了,上下翻了一下,唯一值得注意的表示一个eval函数,上下翻了下,发现alert,try,again ,flag等关键字都在里面,心情顿时好了好多

把文件头eval(function(p,a,c,k,e,r)搜索了一下 发现这个http://www.jb51.net/article/9705.htm

于是本地构造了这个HTML ,把eval函数整个放进去,解密出来看到还是加密了的内容,再次解密一下,发现了当值大于100 alert(“try
again”),否则alert flag:{a10V101IGlzIGY101MTIzayEyWyky}

本来还以为要把里面这串再decode,后来发现想多了,直接把这个输进去即是答案,好开心

庐山真面: 120

场景

小王工作了一段时日,已经对现有的工作驾轻就熟了,他一直希望不断丰富自己的经验技能。正好公司即将举行底层安全工程师的竞岗考试,对于小王来说,这无疑是一个巨大的挑战。本次考试的考官是公司里出了名的“黑面罗刹”李经理——公司里做逆向分析技术的泰斗。据同事说,此次竞岗考试都是基础题目,只考核是否具备基本的逆向知识,小王略松了一口气,走进了考场。

描述

题干:李经理分发给参加每一个竞岗考试的员工一个被加密的html,李经理要求大家分析这个文档并给出第一轮考试的明文通关flag。
hash="118,97,114,32,74,61,102,117,110,99,116,105,111,110,40,109,41,123,114,101,116,117,114,110,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,109,94,50,41,125,59,101,118,97,108,40,74,40,49,48,54,41,43,74,40,57,57,41,43,74,40,49,49,51,41,43,74,40,49,48,54,41,43,74,40,51,52,41,43,74,40,54,51,41,43,74,40,51,52,41,43,74,40,51,55,41,43,74,40,56,51,41,43,74,40,49,49,48,41,43,74,40,49,49,52,41,43,74,40,49,48,57,41,43,74,40,55,55,41,43,74,40,56,54,41,43,74,40,54,56,41,43,74,40,54,52,41,43,74,40,56,53,41,43,74,40,56,49,41,43,74,40,56,56,41,43,74,40,56,54,41,43,74,40,56,53,41,43,74,40,57,49,41,43,74,40,49,49,53,41,43,74,40,53,53,41,43,74,40,49,48,49,41,43,74,40,49,49,57,41,43,74,40,49,48,49,41,43,74,40,54,55,41,43,74,40,54,55,41,43,74,40,54,55,41,43,74,40,57,57,41,43,74,40,55,50,41,43,74,40,49,48,49,41,43,74,40,55,52,41,43,74,40,56,51,41,43,74,40,56,51,41,43,74,40,55,55,41,43,74,40,53,50,41,43,74,40,49,49,55,41,43,74,40,56,51,41,43,74,40,54,55,41,43,74,40,54,53,41,43,74,40,54,55,41,43,74,40,54,55,41,43,74,40,55,57,41,43,74,40,56,55,41,43,74,40,49,49,55,41,43,74,40,54,55,41,43,74,40,54,55,41,43,74,40,56,51,41,43,74,40,55,49,41,43,74,40,49,50,51,41,43,74,40,55,54,41,43,74,40,55,57,41,43,74,40,57,57,41,43,74,40,55,51,41,43,74,40,49,49,48,41,43,74,40,55,54,41,43,74,40,56,51,41,43,74,40,55,52,41,43,74,40,56,50,41,43,74,40,56,54,41,43,74,40,56,50,41,43,74,40,49,50,51,41,43,74,40,55,48,41,43,74,40,57,49,41,43,74,40,56,53,41,43,74,40,54,52,41,43,74,40,55,54,41,43,74,40,54,56,41,43,74,40,52,57,41,43,74,40,55,50,41,43,74,40,54,56,41,43,74,40,55,55,41,43,74,40,54,56,41,43,74,40,54,53,41,43,74,40,56,51,41,43,74,40,49,48,55,41,43,74,40,49,49,50,41,43,74,40,49,49,49,41,43,74,40,54,53,41,43,74,40,53,50,41,43,74,40,54,55,41,43,74,40,54,51,41,43,74,40,51,55,41,43,39,39,41,59,10"

解题报告:一看这题眼都花了,密集恐惧症伤不起TUT
仔细看下数字范围确定是ASCII值,虽然比较水,但好歹是密码吧混了3年,CCBC出题及参赛都经历过的,岂能败在编码题上!把ascii跑出来后发现是var
J=function(m){return String.fromCharCode(m^2)};eval(J(106)+J(99)+J(113)+J(106)+J(34)+J(63)+J(34)+J(37)+J(83)+J(110)+J(114)+J(109)+J(77)+J(86)+J(68)+J(64)+J(85)+J(81)+J(88)+J(86)+J(85)+J(91)+J(115)+J(55)+J(101)+J(119)+J(101)+J(67)+J(67)+J(67)+J(99)+J(72)+J(101)+J(74)+J(83)+J(83)+J(77)+J(52)+J(117)+J(83)+J(67)+J(65)+J(67)+J(67)+J(79)+J(87)+J(117)+J(67)+J(67)+J(83)+J(71)+J(123)+J(76)+J(79)+J(99)+J(73)+J(110)+J(76)+J(83)+J(74)+J(82)+J(86)+J(82)+J(123)+J(70)+J(91)+J(85)+J(64)+J(76)+J(68)+J(49)+J(72)+J(68)+J(77)+J(68)+J(65)+J(83)+J(107)+J(112)+J(111)+J(65)+J(52)+J(67)+J(63)+J(37)+'');

可对JAVASCRIPT不熟,如果没有函数可以直接浏览器url里写个javascript:跑出来,可这里有函数,仔细看J函数的功能是将所有数字异或2,于是弱弱的写了个C++(ACMer表示2分钟写不出这程序直接退役的了)

#include<cstdio>

#define maxn
2001

using namespace
std;

int ch[maxn]={0,106,99,113,106,34,63,34,37,83,110,114,109,77,86,68,64,85,81,88,86,85,91,115,55,101,119,101,67,67,67,99,72,101,74,83,83,77,52,117,83,67,65,67,67,79,87,117,67,67,83,71,123,76,79,99,73,110,76,83,74,82,86,82,123,70,91,85,64,76,68,49,72,68,77,68,65,83,107,112,111,65,52,67,63,37};

int main()

{

for(int
i=1;ch[i];i++)printf("%c",(char)(ch[i]^2));

return 0;

}

跑出来结果是:

hash='QlpoOTFBWSZTWYq5gugAAAaJgHQQO6wQACAAMUwAAQEyNMaKlNQHPTPyDYWBNF3JFOFCQirmC6A='

唔,最后的等号明显提示是base64,但直接解得到的是乱码,百度一下头部'QlpoOTFBWSZTW发现是BZ2压缩

人生第一场CTF的解题报告(部分)的更多相关文章

  1. 【剑指Offer】52. 两个链表的第一个公共节点 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 方法一:栈 方法二:HashSet 方法三:不使用额外空间 日期 ...

  2. 人生第一场组队赛---2014.8 zju monthly

    暑期集训中段就组了队,不过一直没机会打比赛 昨天kitkat突然发现了zju要搞月赛,我想了一下题目对于我这种渣实在是有点难,于是想到干脆打一次组队赛吧,跟队友商量了一下也同意了 12点---17点  ...

  3. 我人生中的第一场Java面试

    1.说起我的第一次Java面试,我不禁回想起我大学时参加校园招聘的那段日子,那时候我还是本科生,由于不是科班出身,只学过一点点Java皮毛,所以那时候对于找Java工作并没有什么概念,只是以为上过Ja ...

  4. HDU 4869 Turn the pokers (2014多校联合训练第一场1009) 解题报告(维护区间 + 组合数)

    Turn the pokers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. 【剑指Offer】第一个只出现一次的字符 解题报告(Python)

    [剑指Offer]第一个只出现一次的字符 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...

  6. 【剑指Offer】字符流中第一个不重复的字符 解题报告(Python)

    [剑指Offer]字符流中第一个不重复的字符 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interv ...

  7. 【未完成0.0】Noip2012提高组day2 解题报告

    第一次写一套题的解题报告,感觉会比较长.(更新中Loading....):) 题目: 第一题:同余方程 描述 求关于x的同余方程ax ≡ 1 (mod b)的最小正整数解. 格式 输入格式 输入只有一 ...

  8. CUGBACM_Summer_Tranning 组队赛解题报告

    组队赛解题报告: CUGBACM_Summer_Tranning 6:组队赛第六场 CUGBACM_Summer_Tranning 5:组队赛第五场 CUGBACM_Summer_Tranning 4 ...

  9. 10.30 NFLS-NOIP模拟赛 解题报告

    总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...

随机推荐

  1. nodejs的mysql模块学习笔记(结合业务)

    1. 包官网地址 https://www.npmjs.com/package/mysql#install https://www.oschina.net/translate/node-mysql-tu ...

  2. hihocoder1736 最大的K-偏差排列

    思路: 容易写错的贪心题. 实现: #include <bits/stdc++.h> using namespace std; int main() { int n, k; while ( ...

  3. canvas防画图工具

    <style> body {   background: black;   text-align: center; } #cans {   background: white; } < ...

  4. Firefox离线安装扩展教程

    Firefox离线安装扩展教程 解决问题博文:解决stackoverflow打开慢不能注册登录 应网友求助在上传了需要的扩展资源后,顺便写个离线安装方法,其实百度也行,这不写下来后为需求者省事.(*^ ...

  5. Angular和SAP C4C的事件处理队列

    Angular 我们在Angular框架的代码里能看到一个名为processQueue的函数: 这个函数是通过$scope.$apply启动的: 核心代码位于一个for循环里,循环体是一个存储异步处理 ...

  6. python基础一 day3 列表

    字符串是有序的,列表也是有序的,有索引值,可以切片 可以用切片来截取列表中的任何部分返回得到一个新列表. 列表方法: 1:增加 结果: 例子:    结果: int类型不可迭代      结果: 删: ...

  7. Android项目源码分享

    http://blog.csdn.net/gao_chun/article/details/47263063 Android项目源码分享 给大家分享几个Android开发项目源码,大部分功能相信可以在 ...

  8. 暑假集训 || 概率DP

    Codeforces 148D 考虑状态转移..https://www.cnblogs.com/kuangbin/archive/2012/10/04/2711184.html题意:原来袋子里有w只白 ...

  9. 搜索 || DFS || POJ 2488 A Knight's Journey

    给一个矩形棋盘,每次走日字,问能否不重复的走完棋盘的每个点,并将路径按字典序输出 *解法:按字典序输出路径,因此方向向量的数组按字典序写顺序,dfs+回溯,注意flag退出递归的判断,并且用pre记录 ...

  10. 【简●解】[USACO] 照片Photo

    [简●解][USACO] 照片Photo [题目大意] 在\(1\)~\(N\)的序列上有\(M\)个区间,使得这\(M\)个小区间每个覆盖了且仅覆盖了一个点,求最多点数,如果无解,输出\(-1\). ...