第一手详细又全面的ISCC 2018 writeup等你学习

阅读量931416

|评论18

|

发布时间 : 2018-05-26 09:00:13

作者:china H.L.B战队 未经同意,不得转载

一、 Misc

1.题目:What is that?


解答:
(1) 打开题目后发现是一个手势如下图所示:

(2) 打开winHex工具,寻找00000272000001F4,如下图所示;

(3) 修改成00000272000002F4,如下图所示;

(4) 保存并且打开图片即可看见flag,如下图所示;

(5) Flag得:Flag={Welcome_To_ISCC_2018};
(6) 题目下载百度网盘链接;
链接: https://pan.baidu.com/s/1ut_w9nQRqCbmJGUqIk_9Og
密码: svyb

2.题目:秘密电报


解答:
(1) 打开题目后发现是:ABAAAABABBABAAAABABAAABAAABAAABAABAAAABAAAABA加密字串符,如下图所示;

(2) 观察是培根密码,根据培根密码的性质如下图所示;

(3) 使用在线工具进行解密如下图所示;
解密网址链接:http://tool.bugku.com/peigen/

(4) 得:ILIKEISCC,ilikeiscc
(5) Flag:ILIKEISCC
(6) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/1QVTLEruYe-s4BqohhUya5A
密码: kank

3.题目: Where is the FLAG?


解答:
(1) 打开题目后发现是一个png图片,如下图所示;

(2) 使用Adobe Fireworks CS5工具打开这个图片,如下图所示;

(3) 把ISCC的logo移开看到二维码,如下图所示;

(4) 发现有N张二维码,如下图所示;

(5) 把这些二维码拼接成一个二维码,如下图所示;

(6) 扫描得flag,如下图所示;

(7) Flag:a332b700-3621-11e7-a53b-6807154a58cf
(8) 题目下载百度网盘链接;
链接: https://pan.baidu.com/s/1H7UQ7kRkX6DslTNF_1-pTA
密码: 5dgt

 

4.题目:一只猫的心思


解答:
(1) 打开题目后发现是一个游戏猫,如下图所示;

(2) 使用winHex查看打开,如下图所示;

(3) 发现图片里边有一个WPS版本的word文档,如下图所示;

(4) 进行手动分离,并且报错doc版本,如下图所示;
备注:WPS版本的hex文件头值:D0CF11E0A1B11AE1

(5) 打开提取出来的word文档,如下图所示;

(6) 使用与佛论禅进行解密,如下图所示;
解密网址链接:http://www.keyfc.net/bbs/tools/tudoucode.aspx

(7) 点击参悟佛所言的真意解密得如下图所示;

(8) 把解密结果复制到winHex左边;

(9) 把右边内容进行base64解密;
解密网址链接:http://base64.xpcha.com/

(10) 解密结果进行base32解密;
解密网址链接:http://www.qqxiuzi.cn/bianma/base.php

(11) 把base32解密结果复制到winHex左边,如下图所示;

(12) 在winHex里获取到的base64进行解密,如下图所示;

(13) 解密结果进行base32解密,如下图所示;

(14) 把解密结果复制到winHex左边,如下图所示;

(15) Flag:F1a9_is_I5cc_ZOl8_G3TP01NT
(16) 题目下载百度网盘链接;
链接: https://pan.baidu.com/s/1fi_DoySdBLQUUrj0ZSo80w
密码: yvp7

5.题目:暴力XX不可取


解答:
(1) 打开题目后发现是一个加密的zip压缩包,如下图所示;

有俩种解法,先来看方法一
(1)复制到linux kali里边,使用binwalk -e命令解压缩,如下图所示;

(2) 访问解压缩后的文件夹,如下图所示;

(3) 使用命令cat flag.txt查看txt文件内容,如下图所示;

Vfppjrnerpbzvat
方法二
(1)在winHex里边打开压缩包,如下图所示;

(2)找着504B030414000008和4B01023F00140007,如下图所示;

(3)修改成504B030414000000和4B01023F00140000,如下图所示;

(4) 保存然后进行解压缩,如下图所示;

(5) 打开文件后的flag.txt文本文件,如下图所示;

(6) 打开flag.txt文件,如下图所示;

Vfppjrnerpbzvat
(7) ROT13进行解密
解密网址链接:http://www.mxcz.net/tools/rot13.aspx

(8) Flag:isccwearecoming
(9) 题目下载百度网盘链接;
链接: https://pan.baidu.com/s/1Yv9BX4QMFlqGftZjareWbw
密码: 37c3

6.题目:重重谍影


解答:
(1) 下载题目后发现是一大段的base64加密,如下图所示;

(2) 进行base64解密,如下图所示;
解密网址链接:http://www.qqxiuzi.cn/bianma/base64.htm

(3) 发现解密结果还是是base64所以继续解密,如下图所示;
解密网址链接:http://www.qqxiuzi.cn/bianma/base64.htm

(4) 发现解密结果还是是base64所以继续解密,如下图所示;
解密网址链接:http://www.qqxiuzi.cn/bianma/base64.htm

(5) 到了第四层发现是URL密文所以解密,如下图所示;
解密网址链接:http://www.convertstring.com/zh_CN/EncodeDecode/UrlDecode

(6) 解密结果是base64所以继续解密,如下图所示;
解密网址链接:http://www.qqxiuzi.cn/bianma/base64.htm

(7) 到了第六层发现是URL密文所以解密,如下图所示;
解密网址链接:http://www.convertstring.com/zh_CN/EncodeDecode/UrlDecode

(8) 解密结果是base64所以继续解密,如下图所示;
解密网址链接:http://www.qqxiuzi.cn/bianma/base64.htm

(9) 到了第八层发现是URL密文所以解密,如下图所示;
解密网址链接:http://www.convertstring.com/zh_CN/EncodeDecode/UrlDecode

(10) 解密结果是base64所以继续解密,如下图所示;
解密网址链接:http://www.qqxiuzi.cn/bianma/base64.htm

(11) 解密结果是base64所以继续解密,如下图所示;
解密网址链接:http://www.qqxiuzi.cn/bianma/base64.htm

(12) 解密结果是base64所以继续解密,如下图所示;
解密网址链接:http://www.qqxiuzi.cn/bianma/base64.htm

(13) 到了第十二层发现是URL密文所以解密,如下图所示;
解密网址链接:http://www.convertstring.com/zh_CN/EncodeDecode/UrlDecode

(14) 到了第十三层发现解密后果是AES所以解密,如下图所示;
解密网址链接:https://www.sojson.com/encrypt_aes.html

(15) 第十四层解密结果是与佛论禅加密所以进行解密,如下图所示;
解密网址链接:http://www.keyfc.net/bbs/tools/tudoucode.aspx

(16) Flag:把我复制走
(17) 题目下载百度网盘链接;
链接: https://pan.baidu.com/s/1ygIKTa3AVnPhzbUheWbiog
密码: afwk

7.题目:凯撒十三世


解答:
(1) 观察题目,题目在第一个分句提示了是凯撒,如下图所示;

(2) 所以尝试凯撒(rot13)移位进行解密,如下图所示;
解密网址链接:http://www.mxcz.net/tools/rot13.aspx

(3) 题目叙述第二个分句是键盘,如下图所示;

(4) 根据解密内容在键盘上下移一位,如下图所示;
A补充一个小知识点,如下图所示;

B回到正文,如下图所示(按照解密的密文顺序得到flag);

(5) Flag:yougotme
(6) 题目下载百度网盘链接;
链接: https://pan.baidu.com/s/1yOy0OPs4PiOxyIHST6JhQg
密码: 53pq

8.题目:有趣的ISCC


解答:
(1) 下载题目并且解压缩,如下图所示;

(2) 发现是一个jpg的图片并且把图片放入winHex中查看,如下图所示;

(3) 发现图片是png图片的头,如下图所示;

(4) 看到图片结尾,发现IEND后边有Unicode编码,如下图所示;

(5) 把Unicode编码进行解密(点击Unicode编码转中文),如下图所示;
解密网址链接:http://tool.chinaz.com/tools/unicode.aspx

(6) 解密后发现有16进制编码,所以继续解密(点击16进制转字符)。如下图所示;
解密网址链接:https://www.bejson.com/convert/ox2str/

(7) Flag:flag{iscc is fun}
(8) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/1Uwat1hXovCRmZHhg8Fw1bg
密码: w9ui

9.题目:数字密文


解答:
(1) 如题目所示给的是16进制所以转换成字符,如下图所示;
解密网址链接:https://www.bejson.com/convert/ox2str/

(2) Flag:it’s easy!
(3) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/13IuYVJx_HtYg7zr4QUtV6g
密码: vhex

10.题目:挖宝计划


解答:
(1) 下载题目后发现是一个压缩包,如下图所示;

(2) 尝试解压缩,发现有密码。如下图所示;

(3) ZIP压缩包,在winHex检测不是伪加密。如下图所示;

(4) 使用明文撞击密码,如下图所示;

(5) 压缩包密码为(ISCCzxc),如下图所示;

(6) 压缩包解压缩完毕后,发现跟去年题目一样。不知道主办方想拿这题做什么;
(7) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/1ZjmkZuuksJfpwPJrqaHsZg
密码: bkpa

11.题目:嵌套ZIPs


解答:
(1) 下载题目后发现是一个压缩包,如下图所示;

(2) 压缩包解压缩发现有密码,如下图所示;

(3) 首先进行数字类型的掩码爆破,如下图所示;

(4) 得到第一层密码并且解压缩,如下图所示;

(5) 看解压缩后的tips.txt文件,如下图所示;

(6) 根据内容猜测是明文攻击,如下图所示;

(7) 使用ARCHPR进行明文攻击,如下图所示;

(8) 得到解压缩密码:Z!C@t#f$12并且解压缩文件,如下图所示;

(9) 把第三层压缩包放入winHex中,如下图所示;

(10) 发现是伪加密,如下图所示;

(11) 把14000008修改成14000000.如下图所示;

(12) 保存并且解压缩,如下图所示;

(13) 解压缩后并打开flag.txt,如下图所示;

(14) Flag : ISCC_!S_my_favor1te_CTF
(15) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/1XY_QvoK9vaAQcZXNI0QrRQ
密码: ipbt

 

二、 Web

1.题目:比较数字大小

解答:

(1) 打开网址页面只有一个提交的对话框,如下图所示;


(2) 打开审核元素,如下图所示;

(3) 修改审核元素的maxlength=”3”,如下图所示;

(4) 把maxlength=”3”修改成maxlength=”4”,如下图所示;

(5) 对话框输入9999,如下图所示;

(6) 点击提交,如下图所示;

(7) Flag:key is 768HKyu678567&*&K

2.题目:你能跨过去吗?


解答:
(1) 打开网址,如下图所示;

(2) 网页页面链接中发现base64,如下图所示;

ADwAcwBjAHIAaQBwAHQAPgBhAGwAZQByAHQAKAAiAGsAZQB5ADoALwAlAG4AcwBmAG8AYwB1AHMAWABTAFMAdABlAHMAdAAlAC8AIgApADwALwBzAGMAcgBpAHAAdAA
(3) 解密网页页面链接中的base64,如下图所示;
解密网址链接:http://base64.xpcha.com/

(4) 把解密后的结果重新整理,如下图所示;

<script>alert(“key:/%nsfocusXSStest%/“)</script>
(5) 把/%nsfocusXSStest%/复制到对话框,如下图所示;

(6) 点击提交弹出对话框,如下图所示;

(7) Flag:flag{Hell0World}

3.题目:一切都是套路


解答:
(1) 打开链接,如下图所示;

(2) 使用扫描器进行扫描,如下图所示;

http://118.190.152.202:8009/index.php.txt
(3) 打开扫描结果的链接,如下图所示;

(4) 打开狐火浏览器的HackBar,如下图所示;

(5) 点击LoadURL,把网址复制到对话框中,如下图所示;

(6) 点击Post data,如下图所示;

(7) 在LoadURL中的网址index.php后增加?_200=flag,如下图所示;

(8) 在Post data中输入flag=aaaaaaaaaaaaaaaaaaaaa,如下图所示;

(9) 点击Execute,访问网页,如下图所示;

(10) Flag:ISCC{taolu2333333….}

4.题目:你能绕过吗?


解答:
(1)打开链接,如下图所示;

(2)随便点一个,如下图所示;

(3)把id=2,修改成6668952,如下图所示;

(4)发现id后没有过滤,所以尝试文件包含漏洞,读取包含flag的文件,如下图所示;

(5)发现页面显示base64,进行解密,如图下所示;
解密网址链接:http://base64.xpcha.com/

(6) 发现解密结果是html静态页面源码,如图下所示;

(7) Flag:ISCC{LFIOOOOOOOOOOOOOO}
(8) 题目下载百度网盘链接;
链接: https://pan.baidu.com/s/1_5OWy8TCFKbq6vIz-wPhPA
密码: id8e

5.题目:web02


解答:
(1)打开链接,如下图所示;

(2)题目链接中文字中有本机链接,所以抓包修改http请求头,如下图所示;

Client-IP:127.0.0.1
(3)点击Intercept is on 放包,如下图所示;

(4)查看网页,如下图所示;

(5)Flag:ISCC{iscc_059eeb8c0c33eb62}

6.题目:SQL注入的艺术


解答:
(1) 打开链接,如下图所示;

(2) 点击个人信息,如下图所示;

(3) 把链接放入sqlmap,尝试注入,如下图所示;
命令:
sqlmap –u http://118.190.152.202:8015/index.php?id=1

(4) 发现是宽字符注入并且提示有WAF,所以更尝试绕过WAF,如下图所示;
命令:
sqlmap -u “http://118.190.152.202:8015/index.php?id=1“ —tamper unmagicquotes.py —batch -v 3 —level 3 –dump

(5) Flag:Y0u_@@33w_dxxmn_9rf0Od

7.题目:试试看


解答:
(1) 打开链接,如下图所示;

(2) 在img=的地方,测试是否有文件包含漏洞,如下所示;

(3) 发现有文件包含漏洞,如图形所示;
A. payload,如图下所示;

B. 证明存在的文件包含漏洞,如图下所示;

(4) 构造payload,如图下所示;

(5) 打开网页后是空白,如图下所示;

(6) 打开网页源码,如图下所示;

(7)Flag:flag{1ntere5ting_PHP_Regu1ar_express1onssssss}
(8) 题目下载百度网盘链接;
链接: https://pan.baidu.com/s/1hpljgBPsE-V6VWz0YB91_A
密码: m5x3

8.题目:本地的诱惑


解答:
(1) 都说是签到题了,所以打开链接。如下图所示;

(2) 查看源码,如下图所示;

(3) Flag:ISCC{^&*(UIHKJjkadshf}

9.题目:请ping我的ip看你能Ping通吗?


解答:
(1) 打开链接,如下图所示;

(2) 使用扫描器,扫描一下目录。如下图所示;

扫描结果:http://118.190.152.202:8018/flag.txt
(3) 打开扫描结果,如下图所示;

(4) Flag:ISCC{8a8646c7a2fce16b166fbc68ca65f9e4}

10.题目:Please give me username and password!


解答:
(1) 打开题目链接,如下图所示;

(2) 链接页面提示需要用户名和密码,如下图所示;

(3) 所以构造用户密码访问的payload.如下图所示;
Payload:/?username[]&password=3e9

(4) Flag:flag{ISCC2018_Very_GOOD!}

11.题目:web01


解答:
(1) 打开链接发现是代码审计题,如下图所示;

(2) GET类型提交了password,获得flag要求是:
A. password=0
B. sha(password)=0
(3) 这样看起来,使password最后结果等于0,if条件成立获得flag。构造语句如下图所示;

(4) Flag:ISCC{iscc_ef3w5r5tw_5rg5y6s3t3}

12.题目:Collide


解答:
(1) 打开链接发现是代码审计题目,如下图所示;

(2) 审计源码后,使用HashPump攻击;
(3) 安装HashPump;
A.方法一:
git clone https://github.com/bwall/HashPump.git
apt-get install g++ libssl-dev
cd HashPump
make
make install
B.方法二:
pip install hashpumpy
(4) 运行HashPump并且将x替换成%后用hacbar urldecode,如下图所示;

(5) 运行hackbar,如下图所示;

(6) 用burp截包改md5值,如下图所示;

(7) Flag:ISCC{MD5_1s_n0t_5afe}

13.题目:Only admin can see flag


解答:
(1) 打开题目链接,发现只有一个登录对话框。如下图所示;

(2) 查看源码,发现有一个index.txt的提示,如下图所示;

(3) 打开index.txt,审计源码,发现是CBC反转漏洞,如下图所示;

(4) 下面介绍一下CBC字节翻转攻击的原理,如下图所示;

(5) 如上图所示,CBC加密的原理图;
A. Plaintext:待加密的数据。
B. IV:用于随机化加密的比特块,保证即使对相同明文多次加密,也可以得到不同的密文。
C. Ciphertext:加密后的数据。
D. 在这里重要的一点是,CBC工作于一个固定长度的比特组,将其称之为块。在本文中,我们将使用包含16字节的块。
(6) 整个加密的过程简单说来就是;
A.首先将明文分组(常见的以16字节为一组),位数不足的使用特殊字符填充。
B.生成一个随机的初始化向量(IV)和一个密钥。
C.将IV和第一组明文异或。
D.用密钥对C中xor后产生的密文加密。
E.用D中产生的密文对第二组明文进行xor操作。
F.用密钥对E中产生的密文加密。
G.重复E-G,到最后一组明文。
H.将IV和加密后的密文拼接在一起,得到最终的密文。
从第一块开始,首先与一个初始向量iv异或(iv只在第一处作用),然后把异或的结果配合key进行加密,得到第一块的密文,并且把加密的结果与下一块的明文进行异或,一直这样进行下去。因此这种模式最重要的特点就是:
(7) 前一块的密文用来产生后一块的密文,如下图所示;

(8) 这是解密过程,解密的过程其实只要理解了加密,反过来看解密过程就也很简单了,同样的,前一块密文参与下一块密文的还原。
A.从密文中提取出IV,然后将密文分组。
B.使用密钥对第一组的密文解密,然后和IV进行xor得到明文。
C.使用密钥对第二组密文解密,然后和2中的密文xor得到明文。
D.重复B-C,直到最后一组密文。
(9) 这幅图是我们进行翻转攻击的原理图:

这里可以注意到前一块Ciphertext用来产生下一块明文,如果我们改变前一块Ciphertext中的一个字节,然后和下一块解密后的密文xor,就可以得到一个不同的明文,而这个明文是我们可以控制的。利用这一点,我们就欺骗服务端或者绕过过滤器。
(10) 在登录对话框随意输入一个帐号和密码并且使用bp抓包,如下图所示;

(11) 查看返回包,如下图所示;

(12) 使用脚本进行反转,如下图所示;

(13) bp中的cookie中设置iv和翻转后的cipher并且把post值清空后提交,如下图所示;

(14) 返回结果如下图所示;

(15) 服务器提示反序列化失败,但是其实我们这个时候只要对这个进行base64解码就会发现,我们的username已经变成了admin;原因是在我们为了修改mdmin为admin的时候,是通过修改第一块数据来修改的,所以第一个块数据被破坏了。因为程序中要求username要等于admin所以不能利用文章里的说的填充字符。 又因为是第一个块数据被破坏,第一个块数据是和IV有关,所以只要将在CBC字符翻转攻击,得到新的IV就可以修复第一块数据。如下图所示;


(16) 把得到的数值替换iv,cipher不动然后提交。如下图所示;

(17) Flag:ISCC{123dasd89as10aas}
(18) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/1mr6NTo2sAkdH90hcFRHW8g
密码: 1kny

14.题目:PHP是世界上最好的语言


解答:
(1) 打开链接发现是代码审计,如下图所示;

(2) 使用扫描器扫描,发现有no_md5.php文件。如下图所示;

(3) 审计题目所给的源码,发现是文件包含。如下图所示;

(4) 所以这样构造语句,如下图所示:
/no_md5.php?a=GLOBALS

(5) Flag:ISCC{a39f9a1ff7eb4bab8a6a21b2ce111b4}

15.题目:Only Admin


解答:
(1) 打开链接发现是一个登陆对话框,如下图所示

(2) 使用扫描器扫描一下,发现了备份文件。如下图所示;

http://118.190.152.202:8020/web.zip
(3) 把备份文件解压缩,如下图所示;

(4) 打开config.php发现了需要审计的代码,如下图所示;

(5) 在登录对话框的email地方输入’ or 1#并且随意输入password,如下图所示;

(6) 点击login,如下图所示;

(7) 运行脚本写入cookie中,如下图所示;

(8) 脚本运行后会在cookie中增加一条如下图所示;

(9) 打开审核元素,如下图所示;

(10) Flag:flag{USer1ali2e1sInt4rt1n9}
(11) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/1btTm5HfZOJkmS7OMgbVGxQ
密码: 6cyp

16.题目:为什么这么简单啊


解答:
(1) 打开链接发现是一个闯关,如下图所示;

(2) 看到了这俩个要素,如下图所示;

(3) 这点就类似于DDCTF 2018里边的web题目了,使用BurpSuite抓包并且修改HTTP头,如下图所示;

(4) 点击GO,得到的返回结果如下图所示;

(5) 得到第二关地址并且发现需要输入密码才可以获取flag,如下图所示;

(6) 点击鼠标右键选择查看网页源代码,如下图所示;

(7) 点击源代码中的./password.js,如下图所示;

(8) 发现一段base64代码,如下图所示;

(9) 进行base64解密,如下图所示;
解密网址链接:http://base64.xpcha.com/

(10) 解密得到的结果是XSS语句并且发现获取flag的密码,如下图所示;

password:xinyiji.com
(11) 输入密码并且点击获取flag,如下图所示;

(12)Flag:B1H3n5u0xI2n9JIscc
(13)题目下载百度网盘链接:
链接: https://pan.baidu.com/s/11SPmCZ8h7Xov–P-jknpEA
密码: 7vef

17.题目:Sqli


解答:
(1) 打开链接发现是一个登陆对话框,如下图所示;

(2) 使用BurpSuite抓包,如下图所示;

(3) 在登录对话框的username输入:-1’ OR (1=1*) or ‘,password输入x,如下图所示;

(4) 把抓包内容保存成TXT,如下图所示;

(5) 使用sqlmap注入,如下图所示;
A. 注入命令语句,如下图所示;

B. 注入结果,如下图所示;

(6) Flag:flag{hahaha999999999}
(7) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/1TUw4fcYsbH7-sJ9IAPhSxw
密码: tn7y

18.题目:有种你来绕


解答:
(1) 打开链接发现是一个登陆对话框,如下图所示;

(2) 使用BurpSuite抓包并且登录尝试,如下图所示;
C
(3) 通过返回结果得到用户名是admin,如下图所示;

(4) 使用BurpSuite抓包并且进行注入,如下图所示;

(5) 返回结果如下图所示:

(6) 使用脚本跑密码,如下图所示;

(7) 得到password密码为:nishishabi1438
(8) 使用帐号密码登录,如下图所示;

(9) 输入flag获取flag,如下图所示;

(10) Flag:flag{sql_iNjEct_Is_Easy}
(11) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/1E7PuabjjP4ovxw1H0KANtg
密码: 5vsi

 

三、 Reverse

1.题目:RSA256


解答:
(1) 下载题目,得到如下图所示;

(2) 解压缩,得到如下图所示;

(3) 吐槽一句,出题人是不是对密码有什么误解呢?re地方放一个RSA密码,如下图所示;

(4) 首先看到公钥文件public.key,想都不用想,直接丢给kali,用openssl解出e、n,如图下所示;
命令:openssl rsa -pubin -text -modulus -in warmup -in public.key

(5) e为65537,n还比较短,先转换为10进制,如图下所示;

(6) 对n进行因数分解,如图下所示;
解密网址:http://factordb.com/

(7) 轻易就解出p和q,如图下所示;

(8) 到这里,RSA的参数已经齐全了,如图下所示;

(9) 使用python3代码实现密文解密,如图下所示;

(10) 运行程序得到答案,如果图下所示;

(11) Flag:flag{3b6d3806-4b2b-11e7-95a0-000c29d7e93d}
(12) 题目下载百度网盘链接;
链接: https://pan.baidu.com/s/1ewjLGoTQN685ly1Q2nY09Q
密码: px37

2.题目:My math is bad


解答:
(1) 下载题目发现是elf属性文件,如下图所示;

(2) 扔进IDA,如下图所示;

(3)按F5,如下图所示;

(4)是解2个方程组,使用python z3解决。如下图所示;

(5)Flag:flag{th3_Line@r_4lgebra_1s_d1fficult!}
(6)题目下载百度网盘链接;
链接: https://pan.baidu.com/s/1fdFgCYlrQVW-lwTRxAZLZw
密码: hfbv

3.题目:obfuscation and encode

 


解答:
(1) 下载题目得到ELF文件,如下图所示;

(2) 使用ida打开,如下图所示;

(3) 该题通过两层加密进行字符串对比进行验证;
(4) 两层加密通过while 进行混淆 实际上就是 两层循环 看成if else也可以;
(5) 第二层是换了字符表的base64 网上随便找个base64脚本实现换一下表解码,如下图所示;

(6) 第一层需要爆破,脚本如下图所示;

(7) 脚本运行结果如下图所示;

(8) Flag:flag{dO_y0U_KNoW_0IlVm?}
(9) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/12Pv9G89pzZAlwVTlpSkE5g
密码: 3r36

4.题目:leftleftrightright


解答:
(1) 下载题目得到exe文件,如下图所示

(2) 把下载的文件放入IDA,如下图所示;

(3) 非常简单的一道逆向题根据题目提示左右移位
(4) 外面有壳随便找个脱壳机脱掉壳
(5) 打开IDA观察发现输入长度需要为29
(6) 直接上windbg输入二十九长度的不重复数据,如下图所示;

(7) 可以观察到字符位置的替换规则
(8) 对照IDA里的 目标字符串,如下图所示;

(9) 脚本对应程序进行替换,如下图所示;

(10) 运行结果如下图所示;

(11) Flag:Flag{this_was_simple_isnt_it}
(12) 题目下载百度云盘链接:
链接: https://pan.baidu.com/s/15HC3pH81JdxJWnXM6tKCCA
密码: x8bi

四、PWN

1.题目:Login


解答:
(1) 下载题目,如图下所示;

(2) 把程序扔进IDA,如图下所示;

(3) 发现有个login函数,需要login才能进入menu函数内部,如图下所示;

(4) 帐号密码程序中已经给出了,如图下所示;

(5) 进入menu函数中,分析得知在输入选项时存在栈溢出,可以覆盖返回地址,如图下所示;

(6) 那么先通过返回到puts函数将puts@got以及read@got地址泄露,再通过libcdatabase将服务器上的libc找出来,计算system,binsh的地址,最后再一次栈溢出执行system(‘/bin/sh’)
(7) 脚本,如下图所示;

(8) Flag:flag{welcome_to_iscc}
(9) 题目下载百度网盘链接;
链接: https://pan.baidu.com/s/10EG4ubVKQIQytjvzst6VuQ
密码: rqdy

2.题目: Write some paper


解答:
(1) 下载题目,如图下所示;

(2) 把题目扔进IDA,如下图所示;

(3) 发现是hos的作法,先利用get_num泄漏栈地址。如下图所示;

(4) 再利用secret选项在栈上构造fake_chunk,如下图所示;

(5) 最后再利用uaf结合fastbin stack返回栈内存,将secret函数返回地址覆盖为gg函数地址,如下图所示;

(6) 最后退出secret函数即可;
(7) 脚本如下图所示;

(8) 运行结果如下图所示;

(9) Flag:flag{ISCC_SoEasy}
(10) 题目下载百度网盘链接;
链接: https://pan.baidu.com/s/1hxDG1o7XvBz6u6DQfoq7qA
密码: ge1i

2.题目:Happy Hotel

解答:
(1) 下载题目,如图下所示;

(2) 使用IDA打开程序,如下图所示;

(3) 发现程序没有关NX,那么我们就可以想办法构造shellcode
(4) 在game函数中我们可以输入shellcode并且可以泄露栈地址,如下图所示;

(5) 在接下来的sub_400A29函数(如下图所示)中可以通过buf将dest指针覆盖,上一步我们在栈中布置了shellcde并且泄露了栈地址,所以我们可以将dest指针覆盖为某个函数的got地址(我选择free@got),在之后的strcpy中我们可以将got地址覆盖为之前的shellcode地址,这样在之后的函数调用中我们就可以执行shellcode进而get shell.

(6) 脚本如下图所示:

(7) 运行脚本得到的flag如下图所示;

(8) Flag:flag{wish_you_have_a_good_day}
(9) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/10Yp9pAWzYPfe473hm8phVg
密码: 8yhi

 

五、Mobile

1.题目:小试牛刀


解答:
(1) 下载题目,如图下所示;

(2) 使用jadX_apk反编译工具反编译,如下图所示;

(3) 在assets文件夹里边发现bfsprotect.jar,如下图所示;

(4) 修改bfsprotect.jar的jar修改成dex,如下图所示;

(5) 使用Android逆向助手工具,反编译为dex2jar.jar,如下图所示;

(6) 使用用jd-gui查看反编译后的dex2jar.jar,如下图所示;

(7) 打开org.isclab.shh.protectapp,如下图所示;

(8) 打开protectClass文件发现flag,如下图所示;

(9) Flag:BFS-ISCC
(10) 题目下载百度网盘链接:
链接: https://pan.baidu.com/s/1F0DjPqp2wRNjNr-7CSQK5A
密码: k3vg

本文由China H.L.B原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/146063

安全客 - 有思想的安全新媒体

分享到:微信
+114赞
收藏
China H.L.B
分享到:微信

发表评论

China H.L.B

这个人太懒了,签名都懒得写一个

  • 文章
  • 1
  • 粉丝
  • 6

热门推荐

内容需知
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全客 All Rights Reserved 京ICP备08010314号-66