freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

ONENAV小白级代审
2022-04-09 12:48:10
所属地 湖北省


GitHub项目地址: https://github.com/helloxz/onenav


  • 版本:v0.9.12-20210726

一、信息泄露

安装:

if( !file_exists('./data/config.php') ) {
	exit('<h3>配置文件不存在,请将站点目录下的config.simple.php复制为data/config.php</h3>');
}
//检查数据库是否存在,不存在则复制数据库
if( !file_exists('./data/onenav.db3') ) {
	copy('db/onenav.simple.db3','data/onenav.db3');
	// copy('db/.htaccess','data/.htaccess');
}

//载入配置文件
require("./data/config.php");

//根据不同的请求载入不同的方法
//如果没有请求控制器
if((!isset($c)) || ($c == '')){
	//载入主页
    include_once("./controller/index.php");
    
}

else{
	include_once("./controller/".$c.'.php');
}

默认数据库路径 'data/onenav.db3'

修复方案:

https://www.yuque.com/helloz/onenav/install#ImLOx

如果您使用得Nginx,请务必将以下规则添加到站点配置中,否则数据库可能被下载(非常危险):

#安全设置
location ~* ^/(class|controller|db|data|functions|templates)/.*.(db3|php|php5)$ {
    return 403;
}
location /db {
        deny all;
}

#伪静态

rewrite ^/click/(.*) /index.php?c=click&id=$1 break;

rewrite ^/api/(.*)?(.*) /index.php?c=api&method=$1&$2 break;

rewrite /login /index.php?c=login break;

如果使用得Apache则无需设置,已内置.htaccess进行屏蔽。

二、SSRF


如果url合法,直接curl访问。未检测链接是否在内网。以及一些请求协议控制。

三、XSS

1、CVE-2021-38138

未过滤参数

function add_link($api){
    //add_link($token,$fid,$title,$url,$description = '',$weight = 0,$property = 0)
    //获取token
    $token = $_POST['token'];
    
    //获取fid
    $fid = intval(@$_POST['fid']);
    $title = $_POST['title'];
    $url = $_POST['url'];
    $description = empty($_POST['description']) ? '' : $_POST['description'];
    $weight = empty($_POST['weight']) ? 0 : intval($_POST['weight']);
    $property = empty($_POST['property']) ? 0 : 1;
    
    $api->add_link($token,$fid,$title,$url,$description,$weight,$property);
    
}

未对title过滤,导致XSS存在

修复方案:

实体化相关参数,正则匹配过滤等增加过滤方式

2、跨域的XSS存储漏洞

直接获取网站标题、描述,未进行任何过滤,只要在被添加的网站标题或描述上写上payload就能进行XSS攻击。

修复方案:

实体化相关参数,正则匹配过滤等增加过滤方式

四、未授权访问

成因:TOKEN值未在安装的时候更改。token生成方式过于简单


auth函数功能:设置token 其算法是 md5(用户名+TOKEN) 其中的   TOKEN值在设置中是默认值为:xiaoz.me

config.php:

所以,我们只需要知道用户名就能进行未授权操作,制作token,实现api调用从而控制后台例如利用XSS获取其cookie,cookie生成方式无时间校验,在不改密码的情况下可一直用,进入后台管理界面(有token跟管理员一样了,打XSS是方便持久控制。其他的无意义) token放post请求里

猜一波token:

默认用户:xiaoz

token:7860b4762c20b1496ca027882d945ad7

用户admin

token:92234ece708b0cd6f3c2d9e8fcde010f

修复方案:

改默认的TOKEN值


最后:关于文章,第一次投稿,有错误的地方请指正。



# 配置安全 # 代码审计 # 代码审计入门
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录