上期吹牛的時候,說了下手工注入的基本原理。
“Sql注入攻擊是通過將惡意的Sql查詢或添加語句插入到應(yīng)用的輸入?yún)?shù)中,再在后臺Sql服務(wù)器上解析執(zhí)行進行的攻擊。
本質(zhì)上就是對數(shù)據(jù)庫進行相關(guān)的讀寫操作,對sql語言進行變相的操作。
之前也說到了工具,當(dāng)時表達出一個觀點,不管“黑貓白貓,能抓到老鼠就是好貓”。
確實,不管工具還是手工注入,一般情況下都可以得到相應(yīng)的信息,但我也說了,是“一般”情況下,那么“二般”情況下呢?
這個就涉及到了各行各業(yè)的核心——大神和菜鳥的區(qū)別。
菜鳥,有工具我可以搞,但是不一定搞得定。
大神,管你什么玩意,什么能搞,用什么。
手工注入就是這個樣子的存在。
原理性極強,熟練使用手工注入的人,一般是脫離了菜鳥水平稱號的人。
說太多了,這次討論幾個問題。
手工注入怎么入門?
注入的條件?
一、手工注入怎么入門?
停!先別開口,我生怕你說出一句,“手工注入就是瞎填寫東西!”
說到怎么入門,我們先回歸本質(zhì)。
從手工注入的原理來看,關(guān)鍵字,sql。
sql是什么,實質(zhì)就是一種數(shù)據(jù)庫語言,數(shù)據(jù)庫系統(tǒng)。
又延伸出幾個問題:
數(shù)據(jù)庫是什么?
數(shù)據(jù)庫系統(tǒng)是什么?
涉及到哪些東西?
、數(shù)據(jù)庫是什么?
很明顯,數(shù)據(jù)庫就是存放數(shù)據(jù)的地方。
、數(shù)據(jù)庫系統(tǒng)是什么?
實際上分為兩個部分:數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)。
、涉及到哪些東西?
涉及到表結(jié)構(gòu),基本的代碼執(zhí)行流程。
所以你認為手工注入怎么入門呢?
沒錯,就是學(xué)習(xí)數(shù)據(jù)庫的相關(guān)知識,邊學(xué)習(xí),邊操作,本次不進行數(shù)據(jù)庫語言具體展示,下期繼續(xù)!
二、注入的條件?
先不著急說條件,我先問一個事情?
了解靜態(tài)語言嗎?
了解動態(tài)語言嗎?
了解前端,后端嗎?
、靜態(tài)語言是什么?
靜態(tài)語言,是固定運行結(jié)果的語言,典型的范例就是html編寫的靜態(tài)頁面代碼,比如說創(chuàng)建一個表格,在html語言中表格行列數(shù)是不能變化和調(diào)整的。
、動態(tài)語言是什么?
動態(tài)語言,根據(jù)條件的不同,輸出的內(nèi)容可能不同。例如:編寫網(wǎng)頁的asp語言,可以通過查詢數(shù)據(jù)庫,生成動態(tài)行數(shù)的數(shù)據(jù)表。
、前端,后端什么區(qū)別?
前端開發(fā)主要做的是用戶所能看到的前端展示界面,現(xiàn)在很多地方其實都是換湯不換藥,前端做殼,底層都是一個樣子。
前端開發(fā)用到的技術(shù)包括很多,比如html5、css3、javascript、jquery這些技術(shù)。
后端開發(fā)主要做的是邏輯功能等模塊,是用戶不可見的。
后端開發(fā) 以java為例 主要用到的 是包括但不限于Struts spring springmvc ssh等技術(shù)。
這些都說了,其實我還是沒有回答手工注入的條件。
只有通過后端調(diào)用數(shù)據(jù)庫的動態(tài)頁面才可以使用注入漏洞。
沒錯,就是動態(tài)頁面。
又產(chǎn)生了一個問題,什么是動態(tài)頁面?
專門去百度了一下,來個權(quán)威的解答。
所謂的動態(tài)網(wǎng)頁,是指跟靜態(tài)網(wǎng)頁相對的一種網(wǎng)頁編程技術(shù)。
靜態(tài)網(wǎng)頁,隨著html代碼的生成,頁面的內(nèi)容和顯示效果就基本上不會發(fā)生變化了——除非你修改頁面代碼。
而動態(tài)網(wǎng)頁則不然,頁面代碼雖然沒有變,但是顯示的內(nèi)容卻是可以隨著時間、環(huán)境或者數(shù)據(jù)庫操作的結(jié)果而發(fā)生改變的。
三、總結(jié)
這篇是個普及文章,先了解大概的東西,才好進行下一步操作。
成為大神之路,基礎(chǔ)還是要打好,數(shù)據(jù)庫先把基礎(chǔ)原理學(xué)習(xí)會,然后后期手工注入才有大展神威的時候,這個只能自己努力了。
學(xué)會系統(tǒng)的理論框架,然后在找到一個具體的方向,進行深入鉆研,這樣才可以進步。
有很多想法,評論回復(fù)。
未完待續(xù),下期繼續(xù)更新。