pwnable.kr第二题collision

1 col@prowl:~$ ls -al
2 total 36
3 drwxr-x--- 5 root col 4096 Oct 23 2016 .
4 drwxr-xr-x 114 root root 4096 May 19 15:59 ..
5 d--------- 2 root root 4096 Jun 12 2014 .bash_history
6 -r-sr-x--- 1 col_pwn col 7341 Jun 11 2014 col
7 -rw-r--r-- 1 root root 555 Jun 12 2014 col.c
8 -r--r----- 1 col_pwn col_pwn 52 Jun 11 2014 flag
9 dr-xr-xr-x 2 root root 4096 Aug 20 2014 .irssi
10 drwxr-xr-x 2 root root 4096 Oct 23 2016 .pwntools-cache
11 col@prowl:~$ cat col.c
12 #include <stdio.h>
13 #include <string.h>
14 unsigned long hashcode = 0x21DD09EC;
15 unsigned long check_password(const char* p){
16 int* ip = (int*)p;
17 int i;
18 int res=0;
19 for(i=0; i<5; i++){
20 res += ip[i];
21 }
22 return res;
23 }
24
25 int main(int argc, char* argv[]){
26 if(argc<2){
27 printf("usage : %s [passcode]\n", argv[0]);
28 return 0;
29 }
30 if(strlen(argv[1]) != 20){
31 printf("passcode length should be 20 bytes\n");
32 return 0;
33 }
34
35 if(hashcode == check_password( argv[1] )){
36 system("/bin/cat flag");
37 return 0;
38 }
39 else
40 printf("wrong passcode.\n");
41 return 0;
42 }
参数构造20位,check_password函数内用int读char,即分成5个数
字符串以‘\x00'结尾,所以用'\x01'来填充,
0x21DD09EC-0x01010101*4=0x1DD905E8
col@prowl:~$ ./col $(python -c "print '\x01' * 16 + '\xE8\x05\xD9\x1D'")
daddy! I just managed to create a hash collision :)
pwnable.kr第二题collision的更多相关文章
- pwnable.kr第二天
3.bof 这题就是简单的数组越界覆盖,直接用gdb 调试出偏移就ok from pwn import * context.log_level='debug' payload='A'*52+p32(0 ...
- pwnable.kr 第一题fd
使用ssh fd@pwnable.kr -p2222连接输入密码guest 1 fd@prowl:~$ ls -al 2 total 40 3 drwxr-x--- 5 root fd 4096 Oc ...
- 【pwnable.kr】 brainfuck
pwnable.kr第二关第一题: ========================================= Download : http://pwnable.kr/bin/bfDownl ...
- pwnable.kr第三题bof
Running at : nc pwnable.kr 9000 IDA查看 1 unsigned int __cdecl func(int a1) 2 { 3 char s; // [esp+1Ch] ...
- pwnable.kr的passcode
前段时间找到一个练习pwn的网站,pwnable.kr 这里记录其中的passcode的做题过程,给自己加深印象. 废话不多说了,看一下题目, 看到题目,就ssh连接进去,就看到三个文件如下 看了一下 ...
- pwnable.kr brainfuck之write up
I made a simple brain-fuck language emulation program written in C. The [ ] commands are not impleme ...
- pwnable.kr详细通关秘籍(二)
i春秋作家:W1ngs 原文来自:pwnable.kr详细通关秘籍(二) 0x00 input 首先看一下代码: 可以看到程序总共有五步,全部都满足了才可以得到flag,那我们就一步一步来看 这道题考 ...
- 【pwnable.kr】 unlink
pwnable.kr 第一阶段的最后一题! 这道题目就是堆溢出的经典利用题目,不过是把堆块的分配与释放操作用C++重新写了一遍,可参考<C和C++安全编码一书>//不是广告 #includ ...
- 【pwnable.kr】 codemap
pwnable新的一题. download: http://pwnable.kr/bin/codemap.exe ssh codemap@pwnable.kr -p2222 (pw:guest) 这道 ...
随机推荐
- reCAPTCHA OCR 详解 , 验验证, OCR(光学自动识别)
WEB安全专题 reCAPTCHA的诞生及意义 CMU(卡耐基梅隆大学)设计了一个名叫reCAPTCHA的强大系统,让电脑去向人类求助.具体做法是:将OCR(光学自动识别)软件无法识别的文字扫 ...
- git tag All In One
git tag All In One $ git tag --help # (cedec380)在指定的分支上打 tag $ git tag -a stable-version-1.1.1 cedec ...
- yapi & mock JSON
yapi & mock JSON json, body https://hellosean1025.github.io/yapi/documents/mock.html response bo ...
- SVG (viewBox) & DOM (viewport)
SVG (viewBox) & DOM (viewport) circle "use strict"; /** * * @author xgqfrms * @license ...
- NGK内存爆发式增长,看Baccarat将怎样打造全新的全场景金融生态
从数字货币抵押借贷业务出发,DeFi已经形成了覆盖全场景的全新金融生态. 可以说,除了信贷等少数对现实世界信息存在较多依赖的实体业务,DeFi已经实现了传统金融业务的全面链上迁移.大多数传统金融行业存 ...
- Renice INC:解密干型葡萄酒
市场上,干型葡萄酒往往对比甜型葡萄酒(如甜红.甜白)受到更多葡萄酒爱好者的青睐.在葡萄酒界,大部分的红葡萄酒和白葡萄酒也都是干型的,而且它们的口感往往各有特色,并非千篇一律.今天,就跟随Renice ...
- JVM参数概述
标准参数(-) 所有的JVM实现都必须实现这些参数的功能,而且向后兼容. 通过命令 java 查看如下: 用法: java [-options] class [args...] (执行类) 或 jav ...
- 关于Java中的对象、类、抽象类、接口、继承之间的联系
关于Java中的对象.类.抽象类.接口.继承之间的联系: 导读: 寒假学习JavaSE基础,其中的概念属实比较多,关联性也比较大,再次将相关的知识点复习一些,并理顺其中的关系. 正文: 举个例子:如果 ...
- Vue学习笔记-vue-element-admin 前端学习
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
- 搭建Elasticsearch可视化界面 Kibana
前言 每一个版本的es都有一个对应的Kibana版本,建议和es相同版本,官网地址: 点击进入下载地址 步骤 1.解压 tar -zxvf kibana-7.2.0-linux-x86_64 2.修改 ...