攻防世界 Pwn time_formatter

1.checksec分析

在这里插入图片描述

2.IDA分析

menu

  puts("Welcome to Mary's Unix Time Formatter!");
  do
  {
    while ( 2 )
    {
      puts("1) Set a time format.");
      puts("2) Set a time.");
      puts("3) Set a time zone.");
      puts("4) Print your time.");
      puts("5) Exit.");
      __printf_chk(1LL, "> ");
  • 看到一个菜单
  • 应该是有关堆的漏洞

在 print_your_time 找到有关system函数

if ( ptr )
  {
    __snprintf_chk(
      command,
      2048LL,
      1LL,
      2048LL,
      "/bin/date -d @%d +'%s'",
      (unsigned int)dword_602120,
      (const char *)ptr);
    __printf_chk(1LL, "Your formatted time is: ");
    fflush(stdout);
    if ( getenv("DEBUG") )
      __fprintf_chk(stderr, 1LL, "Running command: %s\n", command);
    setenv("TZ", value, 1);
    system(command);
  }
  else
  {
    puts("You haven't specified a format!");
  }

控制好参数ptr即可拿到权限

参数ptr是由我们选择set_time_format输入的

v7 = a4;
  v4 = strdup(a1);
  if ( !v4 )
    err(1, "strdup", v7);
  v5 = (__int64)v4;
  if ( getenv("DEBUG") )
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

==Microsoft==

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值