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