首页 > 其他分享 >NewStar CTF[pwn] overwrite WriteUp

NewStar CTF[pwn] overwrite WriteUp

时间:2024-10-12 19:10:22浏览次数:7  
标签:__ input1 WriteUp rbp CTF atoi pwn rsp LOWORD

IDA打开,查看func()函数,得到以下代码

点击查看代码
unsigned __int64 func()
{
  size_t input1[6]; // [rsp+Ch] [rbp-84h] BYREF
  char nptr[72]; // [rsp+40h] [rbp-50h] BYREF
  unsigned __int64 v3; // [rsp+88h] [rbp-8h]

  v3 = __readfsqword(0x28u);
  printf("pls input the length you want to readin: ");
  __isoc99_scanf("%d", input1);
  if ( SLODWORD(input1[0]) > 48 )
    exit(0);
  printf("pls input want you want to say: ");
  read(0, (char *)input1 + 4, LODWORD(input1[0]));
  if ( atoi(nptr) <= 114514 )
  {
    puts("bad ,your wallet is empty");
  }
  else
  {
    puts("oh you have the money to get flag");
    getflag();
  }
  return v3 - __readfsqword(0x28u);
}

第一次见到LODWORD和SLODWORD和atoi这几个函数,故学习一下作用,ChatGPT给出的解释是:

  1. LOWORD

LOWORD 是一个宏,帮助你从一个较大的数字中提取出最低的 16 位(就是最后两字节)。比如说,如果你有一个数字 0x12345678,用 LOWORD 提取出来的就是 0x5678。
2. SLOWORD

SLOWORD 通常是类似于 LOWORD 的一个自定义宏,用于提取低 16 位,具体功能可能和 LOWORD 相同。
3. atoi

atoi 是一个函数,用于把字符串转换成整数。例如,如果你有字符串 "42",使用 atoi 就可以得到数字 42。如果字符串不是一个有效的数字,atoi 会返回 0。

标签:__,input1,WriteUp,rbp,CTF,atoi,pwn,rsp,LOWORD
From: https://www.cnblogs.com/vstral/p/18441918

相关文章

  • BUUCTF_MISC题解析(7)
    7.wireshark下载文件发现里面是一个pcap格式的文件。而pcap格式就是网络分析工具保存的网络数据包,是捕获的从网卡发送或者接收的每一个数据包的离线网络流量。 在wireshark官网上下载wireshark,wireshark是网络封包分析工具。将文件用wireshark打开,发现有三个部分,上半部分绿......
  • webservice接口调用报:由于 ContractFilter 在 EndpointDispatcher 不匹配,因此 Action
    1、问题:<s:Envelopexmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcodexmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</faultcode><faul......
  • CTF练习场笔记
    大白下载文件后由题可知图片并不完整,大白只有一个头,故可以猜测flag藏在完整图片中,即大白的另一半而为了得到另一半图片,从而获得flag,我们可以试着修改图片的高度将文件导入101editor编辑器,可看到文件的二进制数据并对其进行修改png图像文件:文件头:89504E47,文件尾:AE4......
  • CTF中Web题目的常见题型及解题姿势,零基础入门到精通,收藏这篇就够了
    一、基础知识类题目考察基本的查看网页源代码、HTTP请求、修改页面元素等。这些题很简单,比较难的比赛应该不会单独出,就算有应该也是Web的签到题。实际做题的时候基本都是和其他更复杂的知识结合起来出现。姿势:恶补基础知识就行查看网页源代码按F12就都看到了,flag一般......
  • BUUCTF_MISC题解析(6,8)
    6.乌镇峰会种图把打开的图片放进010editor,拉到最末尾就可以发现flag 8.N种方法解决打开文件是KEY.exe点击打不开,运行不了(exe文件是二进制文件),所以把他拉到010editor打开,data:image/jpg;base64,iVBORw0KGgo......gg==发现是base编码的形式,开头的提示说明是jpg格式的图片,......
  • shctf [week1]poppopop
    最近刚好在学pop链和反序列化,那就写一篇shctf做题的随笔吧进来先审计代码;1.发现反序列化首先会调用__destruct()魔术方法,将$Web赋为true,并echo$n,显然在这里我们得再有一个魔术方法,又因为这里调用的n被当字符串输出,一眼看到__toString(),考虑把$n赋值为newF();2.F类中$o被当作......
  • NewStar CTF 2024 week1 题解
    1.base题目给了以下内容:Thisisabasequestion!4C4A575851324332474E324547554B494A5A4446513653434E564D444154545A4B354D45454D434E4959345536544B474D5134513D3D3D3D观察给出的字符串发现,字符串由数字0-9以及字母A-F组成,于是推测这可能是一个base16编码,于是将其解码,......
  • BaseCTF复现-Crypto
    前言base打了没几天就军训了,前两周的还打了打,军训烤红薯了,后面上的题都懒得看了,趁着国庆假期,闪击了下苏州,人太多了,还不如待在学校水一水。因为是复现平台做的,顺序比较乱。铜匠附件:​fromCrypto.Util.numberimportgetPrime,bytes_to_long#fromsecretimportflagflag=......
  • PatriotCTF2024 Web Impersonate
    源码:#!/usr/bin/envpython3fromflaskimportFlask,request,render_template,jsonify,abort,redirect,sessionimportuuidimportosfromdatetimeimportdatetime,timedeltaimporthashlibapp=Flask(__name__)server_start_time=datetime.now()server_s......
  • NSSCTF(PWN)10
    [HUBUCTF2022新生赛]singout这题是道签到题,直接nc但是catflag得不到flag我们可以用:1catflag2nl${IFS}f*3tacfla*>&24tacf\lag>&25tail./*6tac${IFS}f*7tac$IFS$9f*8tac./*用这些得到flag[LitCTF2023]狠狠的溢出涅~查看发现是64位文件这道......