某单位2021年CTF初赛Writeup(部分)

文章目录

  • Web
    • Web1
    • Web2
    • Web3
  • Crypto
    • crypto1
    • crypto2
  • Reverse
    • Reverse1
  • Pwn
    • Pwn1

Web

Web1

当时没截图,找了别人拍的照贴一下。。。
是一道简单题,不过考的知识点蛮多的。
Referer绕过、User-Agent绕过、XFF绕过之后,进行代码审计
这里的知识点:
使用科学计数法绕过取值大于1
intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1
使用数组绕过类型判断


echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
echo intval(array());                 // 0
echo intval(array('foo', 'bar'));     // 1
?>

Payload:
a[]=‘1E10’
然后GET方式执行命令即可,此处执行命令还过滤了空格,需要使用$IFS绕过空格过滤。

Web2

代码审计题:
某单位2021年CTF初赛Writeup(部分)_第1张图片Payload:
cmd=123’.system(‘ls’).’

Web3

进入题目,是一个在线小游戏:
进行Js代码审计,发现计算玩家金币相关的代码逻辑:
1、将更新金币逻辑处,每条鱼的金币,修改为999999
2、修改更新金币函数体内的判断逻辑,去掉金币不超过999999的限制
某单位2021年CTF初赛Writeup(部分)_第2张图片
不过此种办法只能得到后一半的flag。。。
前一半flag貌似和金鲨鱼有关,当时比赛时间到了,就没再看了。
后来经过研究,可以直接寻找Js代码中的alert函数,修改判断条件,直接弹出flag即可。
某单位2021年CTF初赛Writeup(部分)_第3张图片

Crypto

crypto1

某单位2021年CTF初赛Writeup(部分)_第4张图片简单题,flag分为两部分:
1、取逆序再base64编码,将密文解base64并逆序输出即可。
2、百度一下,ADFGVX密码是德军在第一次世界大战中使用的栏块密码。在线解密即可:http://www.hiencode.com/adfgvx.html

crypto2

某单位2021年CTF初赛Writeup(部分)_第5张图片阅读代码,是一个连续进行两次RSA加密的操作,参数p即为RSA加密的N,两次加密:
1、N已知,e已知
2、N已知,e与明文有关,且是随机生成的,范围固定
基于以上,可爆破明文,编写脚本:
某单位2021年CTF初赛Writeup(部分)_第6张图片

Reverse

Reverse1

某单位2021年CTF初赛Writeup(部分)_第7张图片
运行程序,如上图。
进入IDA查看:
某单位2021年CTF初赛Writeup(部分)_第8张图片
关注第26行代码,在for循环中遍历40个字符,flag即为这40位的字符串。
进入enc查看:
在这里插入图片描述是硬编码在程序中的,注意2 dup(XX)这种的,即为连续的两个。
编写脚本进行计算即可:
某单位2021年CTF初赛Writeup(部分)_第9张图片

Pwn

Pwn1

检查保护:
某单位2021年CTF初赛Writeup(部分)_第10张图片
IDA查看:
某单位2021年CTF初赛Writeup(部分)_第11张图片
进入sub_400789函数:
某单位2021年CTF初赛Writeup(部分)_第12张图片
发现strcpy函数,将gets获得的字符src传入局部变量v1中,存在栈溢出。
虽然没有发现后门函数,但是NX关闭,考虑写入shellcode。
寻找src地址:
在这里插入图片描述
EXP如下:
某单位2021年CTF初赛Writeup(部分)_第13张图片

你可能感兴趣的:(安全)