| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> [极客大挑战 2019]RCE ME -> 正文阅读 |
|
[PHP知识库][极客大挑战 2019]RCE ME |
简单的代码审计,广泛的绕过姿势~
方法参考(9条消息) 浅谈PHP代码执行中出现过滤限制的绕过执行方法_末初 · mochu7-CSDN博客_php绕过正则 可以看到需要传入一个code,长度需要小于等于40,且里面过滤了所有字母和数字,最后可以eval传入的内容。看到这里有两种思路,就是绕过正则后构造各种函数,根据目录不断找出flag位置,或者直接传一句话木马进去,然后用蚁剑连接在里面找flag。但是构造函数又存在可能某些函数会被过滤,于是先看看过滤了那些,传一个phpinfo()进去。
可以看到过滤了很多函数 ,主要system和exec被过滤了,所以想到了传个马上去。 因为取反这种方法比较好理解,所以这道题我用的取反解的,大概原理就是你把传进去的代码先取反再编码后,传进服务端后会先自动解码一次,判断的时候相当于是取反后的字符,这个表可以看见 ?取反后的二进制数字会大很多,ascil码中是没有相应的字符的,自然可以绕过正则过滤的全部字母和数字,最后到eval那里取反回到正常的代码。(最开始没注意加~,发现url编码后还是phpinfo,后面反应过来数字和字母已经是合法可以传输的字符了,所以url不对他们进行编码)构造payload:/?code=(~%8F%97%8F%96%91%99%90)(); 注意eval里面的代码最后要加;
效果是一样的
然后我还想试一试传eval($_POST[s]),也是不行的,因为eval不是可变函数,不能当作字符串交给php让他当作函数名,比如 传进去的payload为/?code=(~%9A%89%9E%93)(~%D7%DB%A0%AF%B0%AC%AB%A4%8C%A2%D6);?也就是eval($_POST[s]),之所以要用两个括号,而不是一次性取反传入一个括号的东西是因为你传入的是一个函数,eval运行的时候会根据函数名先检测是否存在这个函数,而第一个括号的内容也就是函数名,第二个括号的内容应该是传入的函数内应该传的参数。所以它会先检测有没有eval这个函数,然后继续进行,但是eval又不能做可变函数,所以这样也是错误的。 那assert($_POST[s])为啥也不行呢,网上找了个说法 ?所以最后传入的只能是
可以看到执行成功了 于是连接蚁剑看看
预期解:原理参照https://www.anquanke.com/post/id/175403? ? ??EXP地址 利用linux提供的LD_preload环境变量,劫持共享so,在启动子进程的时候,新的子进程会加载我们恶意的so拓展,然后我们可以在so里面定义同名函数,即可劫持API调用,成功RCE
?得到flag 非预期解: 可以用某跳墙看代理的服务器和端口,然后蚁剑设置好代理 ? 在应用市场里面下载后加载插件,然后选择好模式
开头为ELF开头的文件,而ELF头是ELF文件的标识,是一个开放的可执行文件和链接文件格式。也可以根据flag打开是空的,readflag想到可能是个需要执行的文件,因为打开也全是乱码。于是执行? ? 也可以得到flag。? |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/5 20:08:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |