buuoj [第六章 CTF之PWN章]fsb

非栈上的格式化字符串漏洞 + 劫持GOT表瞅瞅检查开了NX、canary跟PIE。RELRO没有开,可以考虑劫持GOT表。进去是个循环里面是个格式化字符串漏洞。因为它开的空间是堆上的,所以常规栈上的格式化字符串漏洞不能用。非栈上的格式化字符串漏洞非栈上的格式化字符串漏洞的话,先在printf处下断点。总体思路满足利用要求的三个指针分别在printf第10、16、20个参数的位置。该程序在循环执行20次输入、输出前申请了一个内存块,用于存放输入的字符串,循环结束后会释放掉这个内存
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

寒假CS每日打卡 Feb.3rd

算法部分1.Acwing 入门组每日一题题目:献给阿尔吉侬的花束阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个 R×C 的字符矩阵来表示。字符 S 表示阿尔吉侬所在的位置,字符 E 表示奶酪所在的位置,字符 # 表示墙壁,字符 . 表示可以通行。阿尔吉侬在 1 个单位时间内可以从当前的位置走.
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

buuoj Pwn writeup 11-20

11 get_started_3dsctf_2016保护,简简单单开了个NX。进去把那个函数名称拉一拉,发现这程序是静态编译的。看main函数,我直呼好家伙,这句子它先就是个神奇的句子。很明显一个栈溢出。很明显看到了关键函数。栈溢出之后一般32位程序ebp之后就是返回地址,但是在32的main函数中,ebp之后先是三个参数,然后才是返回地址,因为get flag 函数中传入了参数并且对参数有判断,所以在栈溢出的时候返回地址后面写上返回函数的返回地址,再写入两个参数,名满足调用规则,从右往
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

寒假CS每日打卡 Feb.4th

算法部分1.Acwing 入门组每日一题题目:a^b求 a 的 b 次方对 p 取模的值。输入格式三个整数 a,b,p ,在同一行用空格隔开。输出格式输出一个整数,表示a^b mod p的值。数据范围0≤a,b≤1091≤p≤109输入样例:3 2 7输出样例:2题解:  快速幂,较简单,大家可以拓展一下,尝试一下这道题矩阵快速幂。代码:#include <iostream>using namespace std;int main(){ lo.
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

buuoj Pwn writeup 21-30

21 ciscn_2019_ne_5保护这个地方的strcpy函数,一看就估摸着有问题。他把src那块的东西复制到了dest但是你会发现dest那里0x48但是你是可以往src那里输入东西的。一口气能输128个字节,那这就造成了溢出。那再说怎么利用这个地方首先要注意他这里没有/bin/sh,但是有sh而且还非常隐蔽所以呢咱们这边推荐之后/bin/sh跟sh的搜索都用ROPgadget。非常的nice然后程序里面本来就有system函数,然后就一把梭。expfrom p
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

buuoj Pwn writeup 31-40

31 [Black Watch 入群题]PWN这个题有问题,就给了个附件,给的链接nc都连不上,做做题算了。保护可以往bss上写东西,然后有个溢出,但是溢出有限,只能覆盖到返回地址。因为开了NX,所以不能写shellcode,因为溢出有限,所以先想到的是栈迁移。把栈迁移到bss上,构造ROP,通过write函数泄露libc地址,然后就在bss上一把梭。写法很多,我这里的话就直接先把’/bin/sh\x00’先写在了bss的位置。expfrom pwn import*from LibcSea
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

寒假CS每日打卡 Feb.6th

算法部分1.Acwing 入门组每日一题题目:数列给定一个正整数k,把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:1,3,4,9,10,12,13,…该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…请你求出这个序列的第N项的值(用10进制数表示)。 例如,对于k=3,N=100,正确答案应该是981。输入格式输入文件只有1行,为2个正整数,用一个空格隔开:k N。输出格式输出文件为计算结果.
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

寒假CS每日打卡 Feb.7th

算法部分1.Acwing 入门组每日一题题目:陶陶摘苹果陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。输入格式输入文件包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别.
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

解决LibcSearcher找不到合适libc(更新libc)

1 尝试直接更新进入LibcSearcher/libc-database中运行./get文件即可进行更新。可能./get更新不了。2 究极更新cd LibcSearcherrm -rf libc-databasegit clone https://github.com/niklasb/libc-database.git然后进入libc-database执行./get可能会这样提醒。那么就看需要点啥更新点啥,一般是./get ubuntu#一般pwn题环境就Ubuntu,所以有第一个
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

超级账本源码(V1.3)解析

Hyperledger Fabric系列的目录~
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

linux 高版本libc虚拟机调试libc-2.23 gdb heap指令报错解决方案

事情是这样的。在做一个堆题,libc-2.23,我自己用的deepin是2.28,用patchelf将本地改过之后gdb.attach报错。后来发现,只有用本机的libc,才能用debug调试,那么本机的是2.28,想调这2.23就得换个机子。方案1是重新整个虚拟机ubuntu16.04 就是libc-2.23的,重新整个虚拟机之后里面环境重新配一遍,然后在里面调试。但是我们知道,虚拟机首先它比较比较笨重,开个虚拟机几分钟,而且占用内存比较大,所以我用了第二种。方案2是起个docker不
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

SGX学习笔记

SGX系列的目录~
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

寒假CS每日打卡 Feb.9th

算法部分1.Acwing 入门组每日一题题目:明明的随机数明明想在学校中请一些同学一起做一项问卷调查。为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入格式输入文件包含2行,第1行为1个正整数,表示所生成的随机数的个数:N 。第2行有N个用空格隔开的正整数,为所产生的随机数。输出格式.
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

LeetCode 1631 水位上升的泳池中游泳 HERODING的LeetCode之路

在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度。现在开始下雨了。当时间为 t 时,此时雨水导致水池中任意位置的水位为 t 。你可以从一个平台游向四周相邻的任意一个平台,但是前提是此时水位必须同时淹没这两个平台。假定你可以瞬间移动无限距离,也就是默认在方格内部游动是不耗时的。当然,在你游泳的时候你必须待在坐标方格里面。你从坐标方格的左上平台 (0,0) 出发。最少耗时多久你才能到达坐标方格的右下平台 (N-1, N-1)?示例 1:
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

LeetCode 839 相似字符串组 HERODING的LeetCode之路

如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等,那么称 X 和 Y 两个字符串相似。如果这两个字符串本身是相等的,那它们也是相似的。例如,“tars” 和 “rats” 是相似的 (交换 0 与 2 的位置); “rats” 和 “arts” 也是相似的,但是 “star” 不与 “tars”,“rats”,或 “arts” 相似。总之,它们通过相似性形成了两个关联组:{“tars”, “rats”, “arts”} 和 {“star”}。注意,“tars” 和 “arts” 是在
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

LeetCode 888 公平的糖果 HERODING的LeetCode之路

爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大小,B[j] 是鲍勃拥有的第 j 根糖果棒的大小。因为他们是朋友,所以他们想交换一根糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。如果有多个答案,你可以返回其中任何一个。保证答案存在。示例 1:输入:A = [1,1], B = [2,2]输出
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

STM32PWM问题

STM32PWM常见问题
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

LeetCode 424 替换后的最长重复字符 HERODING的LeetCode之路

给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过 104。示例 1:输入:s = “ABAB”, k = 2输出:4解释:用两个’A’替换为两个’B’,反之亦然。示例 2:输入:s = “AABABBA”, k = 1输出:4解释:将中间的一个’A’替换为’B’,字符串变为 “AABBBBA”。子串 “BBBB” 有最长重复字母, 答案为 4。
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

Keil5的软件调试「一张图就看懂」

软件调试Keil5 软件调试最基本知识点
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0

LeetCode 480 滑动窗口中位数 HERODING的LeetCode之路

中位数是有序序列最中间的那个数。如果序列的大小是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。例如:[2,3,4],中位数是 3[2,3],中位数是 (2 + 3) / 2 = 2.5给你一个数组 nums,有一个大小为 k 的窗口从最左端滑动到最右端。窗口中有 k 个数,每次窗口向右移动 1 位。你的任务是找出每次窗口移动后得到的新窗口中元素的中位数,并输出由它们组成的数组。示例:给出 nums = [1,3,-1,-3,5,3,6,7],以及 k = 3。窗口位置
分类: 其他 发布时间: 02-10 10:19 阅读次数: 0