Web50

猜谜语类题目?FLAG在图片中有一些字符的 ASCii值,拼起来就是FLAG。

Web100

隐写术。使用工具 StegSolve,把任一颜色的bit0拼起来图片的最开始部分即为  flag。

Web150

题目给了一个使用不可见字符强力混淆过的一个   shell.php 文件,常见文本编辑器修改之后,原

代码就不能执行了。

因此使用 16 进制编辑器打开,在中间插入一个函数

er($s) { echo $s; return $s; }

然后后面需要打印变量的时候,就插入这个函数即可。

经过尝试,发现中间的几个带中间数字变量的实际上是类似如下的表达式,  XX 和 YY 都太长,

代替表示一下。

preg_replace(“/XXXXXXXXXXX/e”, “eval(YYYYYYYYYYYYYY)”)

将 eval 替换成上面的 er 函数,于是打印出了源代码,可以看出是著名的   b374k 代码修改而成

的。

在里面发现了多个密码,其中有一行是

$smtppass = "XDSE@L0VEr2014";

将这个密码提交,成功得分。

Web200

一个娱乐性质的代码审计,每次随机出来两行,半看半猜大概知道了一点,然后拿下一血~

Web180

社工题,用户名可以在代码里找到,然后通过 qq空间发现残缺的身份证一角和生日信息,住址

信息,需要稍微爆破一下西安的地区代码:

Web250

XSS题,直接贴利用代码:

[svg][Script]w;i;n;d;o;w;.;l;o;c;a;t;&#

105;o;n; ;=; ;';h;t;t;p;:;/;/;c;&

#116;f;.;z;j;u;i;s;a;.;o;r;g;/;&#

39; ;+; ;d;o;c;u;m;e;n;t;.;c;o;

o;k;i;e;[/Script]

Web270[1]

Flag在数据库中,用burpsuite辅助脱裤之后cat * | grep flag

Web270[2]

flag在web旁站根目录:

Exploit100

程序中包含异常处理 ,HTTP GET请求的路径会覆盖 SEH结构,因此通过覆盖SEH Handler的方式

来利用.SEH结构往后只能覆盖 16字节,因此考虑将shellcode放在前面,然后在nextSEH处 使用

jump 99来跳转到最开头,覆盖后的SEH handler指向程序本身的gadget:pop pop ret   。

Exploit200

简单逆向了下 ,一个bug是popen处可以命令注入

直接nc连接反弹shell

Exploit600

1.login

需要发送:

0x10 + len(user) + len(password)

0x10 + user + ‘:’ + password

之后有一个函数会 check帐号密码,根据帐号逐位映射出密码

这里给出一组:LeoC + gAMU

之后有0x10,0x11,0x20,0x21,0x30,0x31 几个select

0x10和0x11无用

0x20可以覆盖(dword_40DA40 + 66) 这个函数

0x21可以利用send发送并在读到 (dword_40DA40 + 66) ,  获得程序运行基址

0x30中可以将VirtualProtect的地址写到.data:0040DA3C

但是前提是能读到文件 ,可以先调用(dword_40DA40 + 66) 这个函数写文件,然后用0x30分支读文

0x31可以在利用0x20覆盖 dword_40DA40 + 66  之后trigger

Workflow:

1.login

2.用0x20覆盖264个字节,之后用0x21读 (dword_40DA40 + 66)  函数地址,减去偏移获得程序运行

基址

3.用0x20设置写的文件名,用0x31触发 (dword_40DA40 + 66)  原始函数写文件,用0x30读文件,使得

进入分支,load dll并将virtualprotect地址写入.data:0040DA3C

4.利用0x20覆盖 (dword_40DA40 + 66), 将地址覆盖为一个 stack pivot的gadget

5.利用0x31触发,将payload写到第二个参数中 ,这样触发stack pivot后整个payload就写入栈中

6.payload中构造了一个rop chain,调用virtualprotect赋予执行权限,读取shellcode并执行

Crack100

使用工具.Net reflector解混淆+反编译.net程序,分析逻辑发现一个  ASCII字符会被encode为一个

UTF­8 字符,通过包含全部字符的输入文件获得映射表,反查出映射前的字符串。再根据提示

长度44再对后边的字符做 base64及异或得到最终答案。

Crack120

压缩包中包含一个编码过的文件和一个 pyc文件。对pyc文件分析可知编码的方法,写出反向逻

辑求解即可得到一张图片文件,从中可看到 flag。

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env python2
import  sys
ans =  ''
=  open('data').read()
for in  f:
bit = '1' if (ord(c) >> 7else  '0'
count = ord(c) &  0x7f
ans += bit *  count
ret =  ''
for in xrange(0len(ans),  8):
ret += chr(int(ans[i:i + 8][::-1], 2))
sys.stdout.write(ret)

crack180(MIPS)

使用qemu­mips打开调试模式运行程序,再 gdb连接上。在0x00400ce0处下断点修改$fp+24进

入特权模式。在程序中输入 showconfig可以看到The key is :

BFCBACACARDRHRHHDRDTCDDG 。再在0x401190处下断点临时修改 v0跳过检查,在程序

中输入前面看到的编码过的 key即可拿到flag。

Crack150

首先逆向dex文件找到用户名密码登录,进入之后小黑说你知道  "XX神器"么。猜测flag和XX神器

有关,百度了一下没发现什么线索。随后发现 asset文件夹里有个可疑的图片。  xxd后发现里面

包含一个dex文件。提取出来以后却发现无法反编译。但是可以获取  dex中所有string的字符串。

其中一个字符串写到: flag是"key"的小写16位md5。用md5sum一下"key"字符串,就得到了最

后的flag。

Crack180

google之...

A = aaaaa B = aaaab C = aaaba D = aaabb E = aabaa F = aabab

用这个替换截获密文中的每一个 5字节ab组合,可以得到一串160字节的密文

尝试nc连接创建帐号进行转账 ,将测试的截获密文同样转换成 160字节的密文

可以发现第64­96字节是密码....

直接用帐号Ph和解出的密码登入对 Z2333帐号转账23333,得到FLAG

XDCTF2014 Writeup的更多相关文章

  1. 2016第七季极客大挑战Writeup

    第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...

  2. ISCC2016 WriteUp

    日期: 2016-05-01~ 注:隔了好久才发布这篇文章,还有两道Pwn的题没放,过一阵子放上.刚开始做这个题,后来恰巧赶上校内CTF比赛,就把重心放在了那个上面. 这是第一次做类似于CTF的题,在 ...

  3. 参加 Tokyo Westerns / MMA CTF 2nd 2016 经验与感悟 TWCTF 2016 WriteUp

    洒家近期参加了 Tokyo Westerns / MMA CTF 2nd 2016(TWCTF) 比赛,不得不说国际赛的玩法比国内赛更有玩头,有的题给洒家一种一看就知道怎么做,但是做出来还需要洒家拍一 ...

  4. 爱春秋之戏说春秋 Writeup

    爱春秋之戏说春秋 Writeup 第一关 图穷匕见 这一关关键是给了一个图片,将图片下载到本地后,打开以及查看属性均无任何发现,尝试把图片转换为.txt格式.在文本的最后发现这样一串有规律的代码: 形 ...

  5. 《安全智库》:48H急速夺旗大战通关writeup(通关策略)

    作者:ByStudent   题目名字 题目分值 地址 MallBuilder2 350 mall.anquanbao.com.cn MallBuilder1 200 mall.anquanbao.c ...

  6. iscc2016 pwn部分writeup

    一.pwn1 简单的32位栈溢出,定位溢出点后即可写exp gdb-peda$ r Starting program: /usr/iscc/pwn1 C'mon pwn me : AAA%AAsAAB ...

  7. We Chall-Training: Encodings I -Writeup

    MarkdownPad Document html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,ab ...

  8. We Chall-Encodings: URL -Writeup

    MarkdownPad Document html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,ab ...

  9. We Chall-Training: ASCII—Writeup

    MarkdownPad Document html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,ab ...

随机推荐

  1. openstack核心组件--cinder存储服务(6)

    一.cinder 介绍:   理解 Block Storage 操作系统获得存储空间的方式一般有两种: 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区.格式化.创建文件系 ...

  2. python中学习K-Means和图片压缩

    python中学习K-Means和图片压缩 大家在学习python中,经常会使用到K-Means和图片压缩的,我们在此给大家分享一下K-Means和图片压缩的方法和原理,喜欢的朋友收藏一下吧. 通俗的 ...

  3. ES6拓展符修改对象

    // ES6 拓展符合并两个对象let ab = { ...a, ...b }; // 等同于 let ab = Object.assign({}, a, b); // 修改对象部分属性.用户自定义的 ...

  4. maven-tomct插件

    依赖 <dependency> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomca ...

  5. Vue和其他框架的区别

    原文地址 React React 和 Vue 有许多相似之处,它们都有: 使用 Virtual DOM 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件. 将注意力集 ...

  6. python3速查参考- python基础 3 -> -> while循环实例 + Continue && break的应用 + 列表的初步学习

    while语句的应用 实例如下: """ 述求:用户登录系统,最多只能登录三次 第三次失败后,程序终止 """ user_table = { ...

  7. Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 -- iframe专题 <下>

    学习目的: 掌握iframe矿建的定位,因为前端的iframe框架页面元素信息,大多时候都会带有动态ID,无法重复定位. 场景: 1. iframe切换 查看iframe 切换iframe 多个ifr ...

  8. mdk3 工具使用-表白神器

    一:在root目录下新建个txt文档,用vim编辑文档,写几段暧昧的话 二:终端执行命令: 开启网卡监听模式 airmon-ng start wlan0 开启无线广播 mdk3 wlan0mon b ...

  9. 论文阅读 | Universal Adversarial Triggers for Attacking and Analyzing NLP

    [code] [blog] 主要思想和贡献 以前,NLP中的对抗攻击一般都是针对特定输入的,那么他们对任意的输入是否有效呢? 本文搜索通用的对抗性触发器:与输入无关的令牌序列,当连接到来自数据集的任何 ...

  10. Kafka性能调优分析-线上环境篇

    一.背景介绍: 在平时的开发中,使用kafka来发送数据已经非常熟悉,但是在使用的过程中,其实并没有比较深入的探索kafka使用过程中 一些参数配置,带来的损失可能就是没有充分的发挥出kfka的优势, ...