白帽基础教程SQL注入中用到的Concat函数详解
Posted i春秋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了白帽基础教程SQL注入中用到的Concat函数详解相关的知识,希望对你有一定的参考价值。
i春秋社区
在我们web安全测试的时候,会经常使用到这一语法,因此应该透彻理解这一函数,
今天好好实践了一下,也整理如下>>>
1.Concat函数
concat()是一个函数,用于用于将两个字符串连接起来,形成一个单一的字符串,类似于字符串拼接;
语法:SELECT CONCAT(str1,str2,...)
执行结果:
![【白帽基础教程】SQL注入中用到的Concat函数详解](https://image.cha138.com/20210411/82ab6b34450c44aba0c93cf9496e03aa.jpg)
2.实战演示
查看users表下的数据
SELECT * FROM users
![【白帽基础教程】SQL注入中用到的Concat函数详解](https://image.cha138.com/20210411/80c7d202ba934bb0a57f49c1cf7ed2ff.jpg)
那么当一条语句为
SELECT username,email FROM users
就只有如下结果(仅包含username,email):
![【白帽基础教程】SQL注入中用到的Concat函数详解](https://image.cha138.com/20210411/af9b3b56b71340558cbe3a501c0c0e80.jpg)
在渗透测试SQL注入时,如果想要password等敏感字段时,我们又该如何查询呐?
这里Concat函数就大显神威了,我们将username字段修改如下SQL语句:
SELECT CONCAT(username,password),email FROM users
![【白帽基础教程】SQL注入中用到的Concat函数详解](https://image.cha138.com/20210411/ed73ca9b19164e29bd87d80f17d836aa.jpg)
在之前username字段的结果中,就同时得到了username和password的字段信息,为了阅读,清晰我们加上一个十六进制的分隔符~,其十六进制为0x7e,SQL语句改为:
SELECT CONCAT(username,0x7e,password),email FROM users
![【白帽基础教程】SQL注入中用到的Concat函数详解](https://image.cha138.com/20210411/e6c6f598a55040c1acc521af0b8a60b4.jpg)
这样子就清晰多了!同时也可以查询多个字段了!
SELECT CONCAT(username,0x7e,VERSION()),email FROM users
![【白帽基础教程】SQL注入中用到的Concat函数详解](https://image.cha138.com/20210411/b4756c53653f4ef0b12bd48c6e84e0fd.jpg)
3.Concat_ws()函数
刚才有讲到分隔符便于我们的查看,concat_ws()函数就是方便我们的,避免在每一个字段前加上分隔符,SQL语句如下:
SELECT CONCAT_WS(0x7e,username,password,VERSION()),email FROM users
![【白帽基础教程】SQL注入中用到的Concat函数详解](https://image.cha138.com/20210411/365597f55ca0488384c7a1dfa9232941.jpg)
4.Group_concat()函数
SQL语句:
SELECT GROUP_CONCAT(username),email FROM users
![【白帽基础教程】SQL注入中用到的Concat函数详解](https://image.cha138.com/20210411/b160ead9f74d44cd8a13904fae4443b2.jpg)
作用是将对应字段的所有结果都查找并组合返回到一条记录中。
OK,就讲这么多了,希望对大家有所帮助!如果有问题欢迎前来交流哟~
![【白帽基础教程】SQL注入中用到的Concat函数详解](https://image.cha138.com/20210411/6fab24a9aee74cff9f39d12d8c57569a.jpg)
戳阅读原文,更多精彩等你哟~
以上是关于白帽基础教程SQL注入中用到的Concat函数详解的主要内容,如果未能解决你的问题,请参考以下文章