关于RSA算法的探究 -Crypto 0x01 —亚里士多德关于RSA算法 —数论在上一篇的简单的ctf题目我们看到整个加解密过程都是围绕着一个公钥和一个私钥展开的,这里不想太多赘述那些看起来非常繁琐的加解密过程。有关RSA背后涉及的数学的详细说明可以在Wikipedia上找到。第一次看到关于RSA秘钥的生成的步骤,我看到一共出现了六个数字 p, q, n, φ(n), e, d说实话,我当时是懵逼的,不过耐下心来看还是很有乐趣...
最受欢迎的加密方法之一RSA -Crypto 0x00 Cryptography现代密码学主要使用代数方法。当然,最受欢迎的加密方法之一是RSA。它是asymmetr cipher(非对称加密):一个人拥有一个公钥和一个私有秘钥。可以将公钥分发给所有人 ,并允许对任何消息进行加密。但是,只有私钥才能解密这个使用公钥加密的消息。通常情况下,在仅仅知道公钥的情况下是不能解密消息的。but, 这正是研究它的乐趣所在!prerequisite假设我们获得...
Intro to Pwning ——CSCG 2020 **PWN1:**root@ab31efd2b02f:/pwd/pwn1# checksec pwn1[*] '/pwd/pwn1/pwn1' Arch: amd64-64-little RELRO: Full RELRO Stack: No canary found NX: NX enabled PIE: ...
Google_CTF2019-bnv Web: BNV— 155 point:这是一个beginner quest,也进一步学习了一下XXE。首先给定一个网站https://bnv.web.ctfcompetition.com/。打开它,是一个盲人网,可以根据他们的城市找到最近的盲人协会。。还有一个提交按钮,可用于搜索最近的盲人协会。首先使用BurpSiute检查搜索功能的请求和响应:这个请求将发送带有键“ message”和...
XSS练习(alf.nu/alert1) 慢慢来,学习以及练习一些"技巧"***燥起来… ***Warmap没有任何过滤,直接进行闭合,; payload,还是截图方便Adobeescape函数将输入的引号"转换为\\*,对引号进行了转义。如果输入为\",就会转换为\\\",这个时候,本来要转义的引号变成转义反斜杠了,从而绕过这个简单的转义触发…JSON这个级别通过JSON.stringify进行对象序列化,说白了就是把...
The-Heap: protostar heap3 introduces这个级别引入了Doug Lea Malloc(dlmalloc)以及如何修改堆元数据以改变程序执行heap3.c:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <unistd.h>...
XSS挑战小游戏 **XSS小游戏找到了一个xss练习平台,在线地址:http://test.xss.tv/实验环境也可以本地搭建,不过需要php+mysql的环境:xss通关小游戏:https://pan.baidu.com/s/1zS2GwTNbMBXEF2yNEBeLgA 密码:85g8**lvevel1:通过查看右边源码发现$str从url接收一个get型name参数,且并没有进行任何过滤...
理解URL很难?(uXSS) 但凡对网络有一些了解,很容易理解一个URL地址。我们理解的结构是:protocol://domain/path?parametersURL,"统一资源定位符"是URI(统一资源标识符)的子集 我们通常的认为:它只是一个字符串,每个人都能理解它的定义,我们都应该能够区分钓鱼网站和真实网址,我们理算当然的认为它就应该是这样。 但事实并非如此,我们发现了许多问题?下边来研究一个公开的漏洞:...
How to exploit a heap Overflow 究竟什么是堆?malloc()的作用是什么? 你可能在编程的时候,经常需要使用到很多内存,这是你可能会使用到堆。使用malloc分配内存使用后,你需要把这些内存段释放掉,但是你可能并不知道程序是怎么获得内存空间或者释放掉内存的。 在讨论malloc之前,让我们先来了解一下进程获得内存空间的方式。 主要是通过mmap和brk两种方式,这些都是系统调用,这意味着我们直接请求了内核。mmap...
Fomat String exploit example-format-bin-0x08 什么是格式字符串 C中最常见最著名的函数是printf,printf将会格式化输出数据到stdout。 int printf(const char format, …);printf读取格式字符串并找到’%’, %*决定了后面跟着的参数的类型。format1.c#include <stdio.h>#include <unistd.h>#include &l...
TCP与UDP协议 TCP端口 TCP的全称是Transmission Control Protocol,即传输控制协议。它在RFC 793中被定义。所有TCP通信都使用源端口和目的端口,这些信息可以在每个TCP数据包的头部找到。而为了能够将数据传输到远程服务器或设备的特定应用中去,TCP数据包必须知道远程服务器所监听的端口。如果想要尝试一个不同于所设置的端口,呢么这个通信就会失败。一般来说,TCP通信中的源端口...
IP协议 IP协议概念 在OSI的七层模型里面,位于第三层的网路层的协议主要的目的用来处理跨网络的通讯,相比较而言,第二层,也就是数据链路层通常用来处理单一网络间的通讯。网络层我们接触最多的就是IP协议。 关于IP协议有两个非常重要的概念:存活时间与IP分片。存活时间(TTL,Time to Live)用于定义数据包的生存周期,也就是在该数据包被丢弃之前,所能够经历的时间,或者能够经过的最大路由数目...
Buffer Overflow with Shellcode-protostar-stak5-bin-0x06 Stack5是一个标准的缓冲区溢出,这次介绍shellcode的利用。调试shellcode,使用带有操作码\xcc(int3) 指令停止程序执行并返回调试器。stack5.c#include <stdlib.h>#include <stdio.h>#include <string.h>#include <unistd.h>int m...
Protosar-Redirect Program Execution-stack3/stack4-bin-0x05 stack3.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>void win(){ printf("code flow successfully changed");}int main(int argc, char *ar...
Stack Buffer Overflow-protostar-stack0/stack1/stack2-0x04 使用的protostar虚拟机镜像,源站点暂时不能访问,可自行google。缓冲区溢出的第一关,protostar Stack0About: 这个级别介绍了可以在程序分配内存区域之外访问内存的概念,如何布局堆栈变量,以及在分配内存之外修改某些程序执行。Source code:#include <stdlib.h>#include <unistd.h>#inc...
第一次尝试CTF_bugku-江湖魔头 . 作为一个野路子出身,有时候真的不是知道怎么学习。听安全圈的朋友说挑战CTF试题是个不错的选择,于是乎就尝试了一下,感觉还是很精彩的,这里分享一个比较有意思的题目。 这里附上链接:http://123.206.31.85:1616/ “进入游戏”后看到了一张个人感觉画风很不错的江湖英雄人物,随手还搜索了一下:在右侧我看到了我当前游戏人物的属性值列表:习惯性的view-sour...
Reversing and Cracking first simple Progra-0x01 .很开心,今天学习破解自己的第一个程序。 一个很小的c程序的例子,实现了一个简单的许可证检查。#include <string.h>#include <stdio.h>int main(int argc, char *argv[]) { if(argc==2) { printf("Checking License: %s", argv[1...
How a CPU works and Introduction to Assembler-bin-0x00 现在介绍CPU的工作原理: CPU具有非常简单的概念,但可用于解决非常复杂的任务,It’s pretty crazy!CPU RegistersArithmetic InstructionsMoves,jumps, Branches and Calls想象一下,从顶部到底部写下指令,就像计算机的RAM一样:并且每一行都分配一个数字,就像内存中的某个位置有一个地址一样。在内存中它将...