加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

pwnable.kr第二题:collision

发布时间:2020-12-14 05:07:13 所属栏目:大数据 来源:网络整理
导读:0x000 打开环境 ssh连接, ? 查找源码文件, ? ? 0x001 源码分析? 源码文件col.c, ? 知识要点: char占用1个字节,int占用4个字节 , 这里用户输入char型数据,该程序运行后就会将输入转换成int型; ? ①首先查看执行 25行的/bin/cat flag 命令所需要的条件

0x000 打开环境

ssh连接,

?

查找源码文件,

?

?

0x001 源码分析?

源码文件col.c,

?

知识要点:

char占用1个字节,int占用4个字节 ,这里用户输入char型数据,该程序运行后就会将输入转换成int型;

?

①首先查看执行 25行的/bin/cat flag 命令所需要的条件,是24行的hashcode == check_password( argv[1] ),并且由20可知,用户的第二个输入为char型,且长度为20字节,hashcode为0x21DD09EC,即十进制的568134124;

?②check_password( argv[1] ),查看4-11行的功能函数,将用户的输入的char数据类型转换为int型,然后把该用户输入的首地址给指针ip,指针再遍历用户输入,将其逐个相加,最后返回结果res,如果该返回的结果res等于hashcode,程序就会输出flag。

0x02 程序运行

 用户的输入为20个字节的char(一个字节)型数据,程序运行后将其转换为int(4个字节)型,所以要构造5个int型的数据,使之相加为568134124,然后再将这个5个数据转换为char型,刚好就是20个字节,这5个数据随意构造,只要相加为568134124就可以,考虑到溢出等不必要的麻烦,还是将其平均取值,4个113626825,1个113626824,化为char型就是? ?xc9xcexc5x06? ? 和xc8xcexc5x06,下面就是程序代码了

?

?-c :执行当前cmd命令,反单引号“·”,括起来的是执行当前shell命令。

flag就是

daddy! I just managed to create a hash collision :)

附:python脚本

from pwn import *
import os

pwn_ssh = ssh(host=pwnable.kr,port = 2222,user = col,password = guest)
print (pwn_ssh.connected())

sh = pwn_ssh.process(argv = [collision,xc9xcexc5x06*4+xc8xcexc5x06],executable = ./col)
print(sh.recvall())

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读