SQL注入中用到的Concat函數(shù)詳解-菜鳥白帽掃盲

在我們WEB安全測試的時候,會經(jīng)常使用到這一語法,因此應(yīng)該透徹理解這一函數(shù),

今天好好實踐了一下,整理如下。

1.Concat函數(shù):

concat()是一個函數(shù),用于用于將兩個字符串連接起來,形成一個單一的字符串,類似于字符串拼接;

語法:SELECT CONCAT(str1,str2,...)

執(zhí)行結(jié)果:

?

2.實戰(zhàn)演示:

查看users表下的數(shù)據(jù)

SELECT * FROM users

那么當一條語句為?

SELECT username,email FROM users

就只有如下結(jié)果(僅包含username,email):

在滲透測試SQL注入時,如果想要password等敏感字段時,我們又該如何查詢吶?

這里Concat函數(shù)就大顯神威了,我們將username字段修改如下SQL語句:

SELECT CONCAT(username,password),email FROM users

在之前username字段的結(jié)果中,就同時得到了username和password的字段信息,為了閱讀,清晰我們加上一個十六進制的分隔符~,其十六進制為0x7e,SQL語句改為:

SELECT CONCAT(username,0x7e,password),email FROM users

這樣子就清晰多了!同時也可以查詢多個字段了!

SELECT CONCAT(username,0x7e,VERSION()),email FROM users

3.Concat_ws()函數(shù):

剛才有講到分隔符便于我們的查看,concat_ws()函數(shù)就是方便我們的,避免在每一個字段前加上分隔符,SQL語句如下:

SELECT CONCAT_WS(0x7e,username,password,VERSION()),email FROM users

這樣用著稍微方便一些~

4.Group_concat()函數(shù)

SQL語句:

SELECT GROUP_CONCAT(username),email FROM users

作用是將對應(yīng)字段的所有結(jié)果都查找并組合返回到一條記錄中

5.總結(jié):

OK,就講這么多了,希望對大家有所幫助!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容