R4bb1t的ctf博客


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

pwnable.kr 之 otp

发表于 2022-02-23 | 分类于 ctf

分析一下程序的源码,程序从/dev/urandow伪随机设备里读出16个字节,前8个字节做为文件名,后8个字节存在该文件内,最后从该文件中读出8字节与传入的参数比较,相等就get flag。

题目说了不能爆破,所以一点头绪也没有。

阅读全文 »

解决git clone下载慢或失败问题

发表于 2022-02-14

网上的修改本机host文件方法亲测不管用

通过码去云下载是真的香 https://gitee.com/

注册并登录后创建仓库

拉到下面导入已有你仓库

将github链接导入并创建就完成了

之后进入gitee中的库下载就行了,速度快到飞起

第四届强网拟态赛

发表于 2022-02-14 | 分类于 ctf

bitflip

edit函数中存在off-by-one漏洞,版本glibc-2.27

add函数将malloc的size限制在了0x50内,不过可以通过off-by-one修改下一个chunk的size实现堆叠,进而释放0x410以上大小的堆,拿到libc

阅读全文 »

路由器漏洞挖掘入门之栈溢出

发表于 2022-02-14 | 分类于 IOT

x86和MIPS指令集的差异

1、MIPS指令系统大量使用寄存器,包括返回地址也是存放在ra寄存器中的

2、没有堆栈直接操作的指令,也就是就没有push 和pop 指令

3、所有指令都是32位编码,也就是说所有的数据和指令都是4字节对齐

由于MIPS固定指令长度,造成其编译后的二进制文件和内存占用空间比x86的要大

MIPS指令集使用uclibc C标准库,x86使用libc的C标准库

MIPS的指令用法和两者的差异可以参考这里

阅读全文 »

TokyoWesterns -- Asterisk_Alloc

发表于 2022-02-14 | 分类于 ctf

很有意思的一题,主要考察realloc函数
checksec:保护全开,libc2.27,引入了tcache 机制

1
2
3
4
5
Arch:     amd64-64-little
RELRO: Full RELRO
Stack: Canary found
NX: NX enabled
PIE: PIE enabled

阅读全文 »

RoarCtf - pwn

发表于 2022-02-14

easy_pwn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// off-by-one
__int64 __fastcall sub_E26(signed int a1, unsigned int a2)
{
__int64 result; // rax




if ( a1 > a2 )
return a2;
if ( a2 - a1 == 10 )
LODWORD(result) = a1 + 1; //off-by-one
else
LODWORD(result) = a1;
return result;
阅读全文 »

UNCTF-orwheap

发表于 2022-02-14 | 分类于 ctf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ seccomp-tools dump ./pwn 
line CODE JT JF K
=================================
0000: 0x20 0x00 0x00 0x00000004 A = arch
0001: 0x15 0x00 0x09 0xc000003e if (A != ARCH_X86_64) goto 0011
0002: 0x20 0x00 0x00 0x00000000 A = sys_number
0003: 0x35 0x07 0x00 0x40000000 if (A >= 0x40000000) goto 0011
0004: 0x15 0x06 0x00 0x0000003b if (A == execve) goto 0011
0005: 0x15 0x00 0x04 0x00000001 if (A != write) goto 0010
0006: 0x20 0x00 0x00 0x00000024 A = count >> 32 # write(fd, buf, count)
0007: 0x15 0x00 0x02 0x00000000 if (A != 0x0) goto 0010
0008: 0x20 0x00 0x00 0x00000020 A = count # write(fd, buf, count)
0009: 0x15 0x01 0x00 0x00000010 if (A == 0x10) goto 0011
0010: 0x06 0x00 0x00 0x7fff0000 return ALLOW
0011: 0x06 0x00 0x00 0x00000000 return KILL
阅读全文 »

ret2dl_runtime_resolve

发表于 2022-02-14 | 分类于 ctf

认真梳理一下re2dl_runtime_resolve

原理

写个c程序自己测试一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
void vuln(){
char buf[28];
read(0,buf,128);
}
int main(int argc, char const *argv[])
{
char name[] = "input your name: ";
write(1,name,strlen(name));
vuln();
return 0;
}
// gcc -g -m32 -fno-stack-protector test.c test32
阅读全文 »

setcontext 函数

发表于 2022-02-14 | 分类于 ctf
1
2
3
#include <ucontext.h>

int setcontext(const ucontext_t *ucp);
阅读全文 »

国密加密算法sm4

发表于 2022-02-14 | 分类于 crypto

概述

SM4加密算法属于对称加密算法,2012年3月,国家密码管理局正式公布了包含SM4分组密码算法在内的《祖冲之序列密码算法》等6项密码行业标准。与DES和AES算法类似,SM4算法是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。

SM4算法结构图:(图片来源网上)

阅读全文 »
12…7
R4bb1t

R4bb1t

67 日志
10 分类
6 标签
RSS
友链
  • Xi4or0uji
  • V1ctor
  • 23r3f
  • zs0zrc
  • ditto
  • ch4r1l3
  • 知世
© 2022 R4bb1t
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4
0%