- 博客(18)
- 收藏
- 关注
原创 【攻防世界pwn-string】
首先检查保护将文件拖入64位ida查看代码逻辑,发现这个代码有些复杂,但是大多数都是无效信息,很多输入都是指引程序进行的,扰乱我们的视线。关键信息有:v3v4的数值地址都给出来了,然后查看sub_400D72函数这里首先输入一个name,这是干扰输入,只要不超过0xC的长度即可。然后sub_400A7D也是干扰输入,只需要跟着代码输入就可以了。接着查看sub_400BB9与sub_400CA6sub_400BB9这里很显然是有一个格式化字符串漏洞。接着看s...
2022-05-18 10:56:24
405
原创 【攻防世界pwn-CGfsb】
首先检查文件保护将文件拖入32位ida阅读代码后,发现这是一个简单的格式化字符串漏洞,通过修改pwnme的数值为8,直接执行cat flag。pwnme在0x0804A068的位置。随后用gdb确认偏移,有两种方法,一种是直接数栈上的位置,另一种是输入AAAA.%x.%x.%x查看。我采用第一种。栈上是第11个位置,但是由于第一个位置参数是格式化字符串,所以输入的AAAA其实是格式化字符串的第10个参数。开始编写攻击脚本。from pwn import ...
2022-05-18 10:08:49
357
原创 【攻防世界pwn-int_overflow】
下载文件后首先检查保护,发现不存在canary,可以进行栈溢出。将文件拖入ida32位进行查看,发现是一个简单的登录。首先在login()中输入账号和密码,发现passwd存在buf中,可输入长度有0x199,然后传入check_passwd()函数中。然后在check_passwd中将0x199长度的buf复制给dest,但是dest距离ebp只有0x14,我们也在文件中发现了cat flag的函数,所以思路就很清晰了,在输入密码时,输入一个长字符串,在check_passwd函数..
2022-05-14 23:17:48
352
原创 【攻防世界pwn-level3】
下载文件后首先查看保护,发现可以进行栈溢出攻击将文件拖入32位ida进入vulnerable_function后,发现了read处有栈溢出漏洞在查看代码后,发现没有提供system和bin/sh,但是由于给了libc,所以可以找到libc的偏移量,然后计算出system和bin/sh的加载地址。对于plt表,got表,实际加载地址,我是这么理解的:通过elf.plt['write']获取到的是write在plt表中的地址1,这个地址1上存放的实际内容是write在got表的地..
2022-02-17 22:52:55
3343
原创 【攻防世界pwn-hello_pwn】
下载文件后,首先检查保护:将文件拖入64位ida,查看代码基本逻辑是:读取一个输入,存入unk_601068,接着比较dword_60106C是否等于一个预期的值,如果相等,执行对应函数,函数内直接执行cat flag.txt所以思路就是需要覆盖dword_60106C,让其等于预期值,此时我们需要在输入unk_601068时,对dword_60106C进行覆盖,接着我们查看这两个值的存放位置。发现这两个值之间相隔4个字节,所以需要4个字节的填充数据,接着输入预期值。..
2022-01-16 15:03:39
2006
原创 【攻防世界pwn-get_shell】
下载文件后,首先检查保护:将文件拖入64位ida阅读main函数后,发现执行后就直接获取了控制权,根本不需要任何攻击。所以脚本如下,只需要连接即可。执行脚本:
2022-01-16 11:33:56
2281
原创 【攻防世界pwn-cgpwn2】
下载文件后,首先检查保护:随后将文件拖入ida,查看源码,在hello函数中,发现了如下代码首先用安全的fgets输入了一个变量,接着用不安全的gets接收了一个变量,在此处可以确认是栈溢出,且溢出点就在此处。开始寻找利用方式,发现了system函数还缺一个"/bin/sh"字符串,找遍了代码,没有发现,但是由于此前可以有一个自己的输入,保存在name变量上,即可以自己手动输入"/bin/sh",自此,设计栈结构为:开始编写脚本:from pwn imp...
2022-01-15 20:22:49
1514
原创 【攻防世界pwn-guess_num】
下载文件后,首先检查保护开启了金丝雀,不能溢出到返回地址将文件拖入ida阅读代码逻辑是:首先输入name(赋值给v7),接着使用seed[0]作为种子生成10个随机数,每一轮都要猜对,10轮后进入sub_C3E()函数,我们进入这个函数后,发现是直接执行cat flag。回头看main函数,发现v7和seed[0]都在栈上,且给v7赋值时使用的gets()方法所以确定攻击思路:在输入name时,输入足够长的数据,覆盖seed[0],然后自己模拟C语言的rand()方法生...
2022-01-15 11:26:30
1689
原创 【攻防世界pwn-level2】
下载文件后,首先查看保护将文件拖入ida 32位,发现函数名明示了攻击点点进vulnerable_function函数后,发现buf距离ebp有0x88的距离,但是可以读入0x100的大小,确定这是一道栈溢出的题目,溢出点就在此处。确定溢出点后,开始寻找利用方式,发现代码中给出了system函数,在0x8048320的位置随后寻找sh或者bin_sh字符串:此时要素齐全,开始编写脚本。设计栈的结构为:脚本为:发送脚本,开始攻击:...
2022-01-14 21:47:17
301
原创 【攻防世界pwn-level0】
下载文件后首先查看文件的保护将文件拖入ida,反汇编后,发现有个函数名已经明示了进入vulnerable_function后,发现buf到rbp的距离为0x80,而read中给buf赋值的空间有0x200,确定这是一道栈溢出的题目,溢出点就在此处。随后发现文件提供了callsystem。开始着手编写脚本。payload解释:buf距离rbp有0x80的长度,再加上需要覆盖rbp的8位(64位下覆盖rbp需要8字节)所以填写的垃圾数据有0x80 + 0x8。rbp后是返回.
2022-01-14 17:39:21
169
原创 关于20.1版本IDEA没有static web创建选项
最近学习前端开发,使用了IDEA20.1的社区版发现没有Spring与Static Web创建选项,随后改用付费版(30天免费),发现有了Spring但是仍没有Static Web。最后发现是软件版本问题,20.1版本是没有static web选项的,可以改用19.3版本。...
2020-04-28 12:42:09
22563
12
原创 整理一下CCF推荐期刊会议(A类)
整理了CCF2019年推荐的全部A类期刊会议,共85个。等级 全称 简称 类型 方向 A类 ACM Transactions on Computer Systems TOCS 期刊 计算机体系结构/并行与分布计算/存储系统 A类 ACM Transactions on Storage TOS 期刊 计算机体系...
2020-02-13 13:01:27
59598
转载 使用jdbc连接数据库时错误:时区报错
具体报错如下:The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration prop...
2019-04-13 10:48:10
1481
1
原创 修改环境变量后,新的jdk不生效,解决方法
由于课程设计,必须使用jdk1.7,但是有时候有需要使用jdk1.8,所以我自己设计了一个方法:在需要的时候,就只将JAVA_HOME中的7改成8,但是在刚开始切换的时候,发现将7改成8之后,在dos框中输出Java -version,显示还是jdk1.7,百度之后发现是因为在C盘中Windows中的system32中,生成了java.exe,javaws.exe,javaw.exe,只需...
2019-04-07 10:35:04
940
原创 安卓XML文件中的color的写法 0x与#
在学习安卓数组资源的时候,接触到了在数组中表示颜色,在一般layout文件中表示颜色时,可以使用颜色编辑器来找出颜色,找出来的颜色是以#开头的,最开始我也是在<item>中使用了以#开头来表示颜色,但是在运行时,R文件会标红,代码也无法运行。原因是,以#开头的无法在资源文件中正常转化为int型,或者说不能使用#开头来表示int,于是改成0x开头,但是这样无法使用颜色编辑器,具体...
2019-01-25 12:51:06
703
原创 学习笔记——赫夫曼树的度
今天做题遇见一个: 若度为m的赫夫曼树中,叶子节点个数为n,则非叶子节点的个数为(C) A:n-1 B:⌊n/m⌋-1 C:⌈(n-1)/(m-1)⌉ D:⌈n/(m-1)⌉-1 最开始看见这题有个疑惑,根据书上的解释,赫夫曼树就是二叉树,其结点的度只有0和2两种,何来度为m一说,在查阅资料过后才知道赫夫曼除了二叉...
2018-06-25 15:17:20
3754
1
原创 中缀表达式转换成后缀表达式与后缀表达式的计算过程
1.中缀表达式转换成后缀表达式: 首先需要注意的是:中缀转后缀的结果并不唯一。例如:(a+b+c*d)/e是一个中缀表达式,ab+cd*+e/与abcd*++e/都是其后缀表达式。 转换方式:先根据中缀表达式的各操作符的优先级,以上面这个式子为例,将(a+b+c*d)这个括号里面的数看作是一个常数q,则整个式子成了q/e的形式,转换成后缀表达式为:qe/。然后再看q转换...
2018-06-11 15:59:00
19197
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人