freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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值


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



# 配置安全 # 代码审计 # 代码审计入门
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录