聽到兩個菜雞在爭論,笑死我了,哈哈哈哈哈......
情況是這樣,有次組里新來了幾個實習生,然后呢不知道為什么吵了起來。
過了會才搞明白,在爭論滲透注入這個事情,其中一個看家另外一個在研究手工注入,然后說了句SB,另外一個人肯定不樂意了啊,最后就吵了起來。(起名小王和小李)
小王:有現成的工具不用,瞎研究 手工注入干什么?
小李:我承認工具是很強,把網站鏈接扔進去一下子就可以出來,但是你想過背后發生了什么么?剛開始用工具是很快,但是不夠深入啊!
小王:浪費時間
我看這不是個事啊,還是去緩和下吧,然后我就開始了 我的表演!
一、從原理說起
我先簡單說一句,你倆分析這句話對不對?
“Sql 注入攻擊是通過將惡意的 Sql 查詢或添加語句插入到應用的輸入參數中,再在后臺 Sql 服務器上解析執行進行的攻擊”。
本質上就是對數據庫進行相關的讀寫操作。
理所當然,這句話肯定沒問題,一頓小雞啄米般的點頭。
那么我們回到剛才你倆爭論的點,一個說工具為王,一個說原理為王。
這句話我認為對,也不對。
本質上工具都是代碼構成,大家在大學里應該都學過一門課程,c++,后面還會使用visual studio自己編寫程序并且生成exe文件。
其實不過是一些參數的傳遞應用,工具只是省略了一些步驟,這些步驟在應用工具時候對咱們是透明的,而手工注入只不過是沒有透明,所以你倆沒必要太過爭論應用方面的事情。
你們不管怎么做都已經在應用了原理,只不過有的透明,有的不透明而已。
工具只是很基礎的,到了后面,你會發現更多的是從代碼層面,也就是原理需要了解的夠多,這樣才能得心應手。
如果你不知道原理就很尷尬了,現在的工具一般都需要首先找到注入點才可以放在工具里面應用,最常見的做法就是 or1=1(1=2)進行簡單的判斷,當然還有更深入的,其實都是和數據庫相關。
說的有點多,還是給你們做個實驗看看。
這次我就不使用網站了,使用一個DVWA環境直接驗證。(省的違法,這個簡單直接)
二、小實驗——手工注入
1、環境
搭建不多說,直接看結果
上面這個看左側,直接可以模擬多種漏洞,廢話不多說,直接進入主題。
2、輸入值查詢
數據查詢成功,繼續測試:輸入1′and ’1 ‘=’2,查詢失敗,返回為空
我天,莫名開始激動了,兩次結果不同,可能存在注入點,繼續測試,驗證結果。
輸入1′or ’1234 ‘=’1234,查詢成功,說明存在注入。
3、原理分析
上面只是手工注入的一小部分內容,這次不繼續深入,現在我們看下原理到底是怎么回事呢?
這次我要高大點,直接讓你們看源碼,結合源碼來說,注入的一瞬間到底發生了什么事情。
把剛剛注入成功的語句拼接進去看看。1′or ’1234 ‘=’1234
原理其實很簡單,就是通過一個條件語句判斷,如果where后面的條件語句為真,就可以進行查詢,如果條件判斷為假,就為錯,不返回任何結果。
三、總結
其實這個裝逼我很滿意,講了這么簡單的一點東西,就收獲了兩個崇拜,哈哈!
玩笑話,原理說白了都是很簡單的,不管你工具怎么變換,都是從這個原理出發的。
手工注入還有哪些內容呢?shell怎么獲取到呢?
未完待續,下期繼續更新。