三步法搞定CTF中的SQL注入題型

2022-07-09 19:30:13 字數 2180 閱讀 1929

三步法:

一、找到注入點

二、fuzz出未過濾字元

三、構造payload/寫指令碼

例題1

開啟題目:

第一步,尋找注入點。

輸入使用者名稱123456,密碼

123456

,返回結果

username error

!輸入使用者名稱admin,密碼

123456

,返回結果

password error

!輸入使用者名稱admin,密碼

admin

,返回結果

password error

!(根據提示已知這是道注入題,所以可判斷注入點在使用者名稱)

第二步,fuzz出未過濾字元。

fuzz後,發現

%返回結果不同

看到sprintf函式,我們能

想到php的字串格式化逃逸漏洞,這個漏洞導致的結果是會將%1$/』變為』。

此時我們再嘗admin%1$\』 and 1=1%23,結果返回了username error!

根據之前測試,and 1=1返回

password error

!才表示成功。猜測應該是過濾了

and,我們再嘗試一下admin%1$\』 or 1=1%23(這裡可以再fuzz一次),執行成功了。

第三步,構造payload/寫指令碼。

本題未過濾其他字元,剩下的就是盲注了,指令碼大家根據題目自行編寫,最終拿到flag。

例題2

開啟題目:

第一步,找到注入點。

在搜尋框輸入1,返回

在搜尋框輸入2,返回

由此判斷是盲注,注入點是id=1處。

第二步,fuzz出未過濾字元。

這些是被過濾掉的(空格也被過濾了),or沒有被過濾,我們嘗試輸入

明明沒有過濾掉or,應該是後端給過濾了,嘗試雙寫繞過:

1'/**/oorr/**/'1'='1

,還是you are not in...

,再用%0a

代替/**/

(即空格)

雖然沒顯示you are in,但是應該是注入成功了。

第三步,構造payload/寫指令碼。

剩下的就是盲注了,大家根據題目自行編寫就好了,最終拿到flag。

總結:

此類題目的難與易主要在於尋找注入點,對於難一點的題目,出題人會把注入點藏得很隱蔽,需要大家不斷地嘗試,細心地去尋找。

「三步法」閱讀文獻

三步法 來閱讀文獻讓你深深受益,一方面,使你對文獻有全盤的理解,而不是淹沒在細節當中 另一方面,由於每一步都有大致的時間預判,可以讓你評估審閱一堆 時需要花費的時間,也可以根據自己的需要和時間來調整對文獻的理解深度。三步法 的主要思想就是應該在三步內讀完 而不是從一開始就不分輕重地苦讀到最後。清楚自...

給領導提意見的三步法

給領導提意見不能直來直去,必須使用一些技巧。提意見最重要的當然是自己的意見被對方所採納,在這樣的前提下,使用一些技巧是非常必要的。我們經常會看到甚至會親身遇到這樣的情況 話是好話,意見對雙方都有好處,但是僅僅由於說話的方式和技巧的問題,搞得雙方不歡而散,甚至形同仇敵。可以看出技巧是非常重要的。因此,...

Python程式設計基礎 函式式程式設計三步法

函式式程式設計三步法 先有可執行的 再加以邏輯實現,最後使用def 定義函式名,這就完成乙個隨時可呼叫的函式。需求 7.編寫如下程式 a.使用者輸入1 7七個數字,分別代表周一到週日 b.如果輸入1 5,列印對應的 周一 週日 如果輸入的數字是6或7,列印輸出 週末 c.如果輸入0,退出迴圈 思路 ...