ISCC 2018做题记录

前言

感觉自己好菜,只会做几个题目,而且打打停停,还要应付各种考试,忙不过来,以后还是要更加努力学习啊。。还是先记录一下自己的做题过程,慢慢进步,跟不上大佬们的步伐啊emmm。。

MISC

What is that?

直接改图片高度就好
ISCC 2018做题记录_第1张图片
得到flag
CfURoT.png

秘密电报

打开文件发现是一堆AB立刻想到是培根密码,直接培根解密得到flag,注意最后提交的是大写

重重谍影

发现一段base64编码。不断base64解码,注意期间还要URL编码,这就有点麻烦了,当你base64解码不行的时候,尝试一下AES解密,这里key为空,解密网址 http://tool.oschina.net/encrypt/
得到下面的东西
答案就是后面这句但已加密

缽娑遠呐者若奢顛悉呐集梵提梵蒙夢怯倒耶哆般究有栗

这里有点脑洞了,我之前不知道有这种东西,叫与佛论禅
解密网址 http://www.keyfc.net/bbs/tools/tudoucode.aspx
解密后得到flag

Where is the FLAG?

这个题目一开始用HXD打开发现里面存在某款软件的文件名
ISCC 2018做题记录_第2张图片

于是立即下载使用该软件打开这张图片,发现下面有多个图层,是一张二维码,直接拼接扫描即可
ISCC 2018做题记录_第3张图片

秘密电报

直接十六进制解码即可

凯撒十三世

根据题目应该是凯撒密码位移13位也就是rot13,然后就是脑洞题目了,键盘密码,每一位都是对应键盘的下一行,直接出来flag

一只猫的心思

这个题目也很厉害,我弄了很久,但是里面也有与佛论禅。。。。
先是在HXD里面找到了office的踪迹,于是我手动提取出来,可能别的大佬有更好的方法
CfU7O1.png
然后打开
ISCC 2018做题记录_第4张图片
又是与佛论禅,出题人是有多喜欢。。。
解出来发现是一堆16进制,房间converter里面解码
得到一堆base64,再解一下就是base32,再解一下16进制,就是这样一直解下去就好

暴力XX不可取

这道题目考了一个zip包的伪加密,然后直接凯撒解密就好。。。很简单

web

比较数字大小

直接改前端代码就好,改大一点
CfUjYD.png
然后输入数字,得到flag

本地的诱惑

这题很简单,直接改xff为127.0.0.1即可

你能跨过去吗?

打开发现一段类似base64的东西,首先要把这东西url编码之后再解base64,发现一段以+开头以-结尾的编码,utf7编码,给个解码网址 http://toolswebtop.com/text/process/decode/utf-7

得到
/%nsfocusXSStest%/提交到文本框里就可以得到flag了

你能绕过吗?

这个题目考的是文件包含漏洞,利用f参数读取,根据f参数猜测后台为include(‘文件名’.’php’) ,尝试用伪协议把源码读出来,但题目说了要绕过,肯定不简单
这里我们用大写去绕过,读取index.php
http://118.190.152.202:8008/index.php?f=PHP://filter/read=convert.base64-encode/resource=index&id=2
得到一串base64,解码之后得到flag

web02

改一下Client-ip:127.0.0.1 发包就得到flag

一切都是套路

这个题是代码审计题目,源码在index.php.txt 里面


include "flag.php";
if ($_SERVER["REQUEST_METHOD"] != "POST")
    die("flag is here");
if (!isset($_POST["flag"]) )
    die($_403);
foreach ($_GET as $k => $v){
    $$k = $$v;
}
foreach ($_POST as $k => $v){
    $$k = $v;
}
if ( $_POST["flag"] !== $flag )
    die($_403);
echo "flag: ". $flag . "\n";
die($_200);
?>

一开始这一题还是懵,不知道flag究竟放在哪个变量里面,经过提示是在$flag里面,有确定的目标就很好做了
发现代码里面有两个$,利用了变量覆盖把flag参数里面的内容改掉,然后最后利用die函数把flag里面的内容打印出来
我们得先获得$flag变量里面的内容,我们可以利用get的变量覆盖把里面的内容赋值到$_200这一个变量里面,这样就可以充分利用die这一个函数了
然后下面紧接着一个post的变量覆盖还有一个post的判断,但是此时我们并不知道$flag 里面的内容,我们只能利用变量覆盖改变$flag里面的内容,这也说明了$flag这个变量是可控的。。我们可以随意的修改并且绕过判断,这样我们就可以得到flag了
payload:
get数据

http://118.190.152.202:8009?_200=flag

post数据

 flag=1

php是世界上最好的语言

首先进去第一关是MD5弱类型比较,直接找一个QNKCDZO代入就行

 
header("content-type:text/html;charset=utf-8"); 
if(isset($_POST['username'])&isset($_POST['password'])){ 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
} 
else{ 
    $username="hello"; 
    $password="hello"; 
} 
if(md5($password) == 0){ 
    echo "xxxxx"; 
} 


show_source(__FILE__); 
?>

第二关发现两个$,于是尝试一波GLOBALS全局变量,get一个a=GLOBALS 直接出flag

 
include 'flag.php'; 
$a = @$_REQUEST['a']; 
str_replace("{","",$a); 
str_replace("}","",$a); 
@eval("var_dump($$a);"); 
show_source(__FILE__); 

?> 

CfaFTf.png

请ping我的ip 看你能Ping通吗?

非预期解
直接上御剑扫描目录发现有flag.txt访问即可

预期解
好像是利用ping参数去执行各种命令,用%0a去绕过好像。。。没有详细去尝试

Please give me username and password!

这也是个代码审计的题目,题目隐藏在index.php.txt里面,发现出题人很喜欢把源代码放在这个文件里面啊


error_reporting(0);
$flag = "***********"; 
if(isset($_GET['username'])){
    if (0 == strcasecmp($flag,$_GET['username'])){
    $a = fla;
    echo "very good!Username is right";
    }
    else{
    print 'Username is not right';}
}else
print 'Please give me username or password!';
if (isset($_GET['password'])){
    if (is_numeric($_GET['password'])){
        if (strlen($_GET['password']) < 4){
            if ($_GET['password'] > 999){
            $b = g;
            print '

very good!Password is right

'
; }else print '

Password too little

'
; }else print '

Password too long

'
; }else print '

Password is not numeric

'
; } if ($a.$b == "flag") print $flag; ?>

一个很简单的绕过,只是组合这来考查数据的表示方法绕过还有数组绕过

首先这个函数strcasecmp出现在==后面,一旦==出现我们就要警惕了,这里我们可以使这个函数报错然后使之满足弱类型0 == false这样就绕过了第一个判断,使$a=fla,这是为了使后面的
if ($a.$b == "flag"),然后在审计下面的password部分,password的部分其实就是一个典型的数字绕过的代码审计题目,我们可以选择用科学计数法去绕过,这里我用的是9e9,所以我最后的payload为

http://118.190.152.202:8017/?username[]=123&password=9e9

为什么这么简单啊

这一题根据题目给的提示把referer还有各种有关ip的参数都改掉发包发现一个奇怪的地址
ISCC 2018做题记录_第5张图片
打开地址的源代码发现有一段奇怪的base64
ISCC 2018做题记录_第6张图片
解码发现

<script>alert("password:xinyiji.com")script> 

这个就是密码,输入就得到flag

RE

RSA256

这个题完全考的不是逆向,完完全全的密码学RSA
打开发现一个公钥文件
用OpenSSL打开公钥文件得到他的模数n,于是去factordb.com分解一波模数
得到p和q
然后常规操作得到秘钥d
然后用rsa-tool得到秘钥文件,又重新用openssl以一个解密就好

openssl rsautl -decrypt -in encrypted.message1 -inkey key.pem -out flag.txt
openssl rsautl -decrypt -in encrypted.message2 -inkey key.pem -out flag2.txt
openssl rsautl -decrypt -in encrypted.message3 -inkey key.pem -out flag3.txt

我们把文件重定向以后就得到flag
Cfan6s.png

最后在此求一波大佬的wp学习啊。。。。。

你可能感兴趣的:(CTF)