Cookie注入

2020-02-24  本文已影响0人  Jackey_song

什么是Cookie?

  Cookie就是代表你身份的一串字符串,网站根据Cookie来识别你是谁,如果你获取了管理员的Cookie,你可以无需密码直接登陆管理员账号。

为什么Cookie和注入擦出了爱情的火花?(原理部分)

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

  很多时候开发在开发的时候为了考虑到多种接受参数,在接受参数的时候都是用多种解释传参的方法

  例如:

  php中的$_REQUEST[]可以获取POST|GET|COOKIE传参

  注:php

5.4以上版本就不会接受Cookie传参了。

如果说开发用了$_REQUEST[]来接受参数?然后我们的POST和GET传参被Waf拦截了怎么办?

  那么也许Waf没有对Cookie进行检测,我们尝试用Cookie进行传参,然后不就可以绕过检测机制!!

我们知道了Cookie注入的原理~那么下一步我们该学习的就是如何修改网站原有的Cookie

我们可以使用很多方法设置Cookie

方法一:

  抓取数据包直接修改数据包的值,添加一个Cookie字段在请求头里面

注意点:Cookie传参值需要URL编码,大家记得传参的值URL编码下 在线URL编码地址:http://tool.chinaz.com/Tools/urlencode.aspx

方法二:用Javascript来设置Cookie

  我们可以尝试使用Javascript来设置Cookie

  我们先按F12调出浏览器的开发者工具

我们选择Console,打开浏览器的控制台,输入设置Js的语句就可以了

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

通过浏览器Document.cookie来设置Cookie

Cookie名字为 id

escape是一个编码函数,这个函数会进行一次URL编码


实战经验:

最简单的联合查询,因为是Access数据库,我们没有系统自带表,而且Access数据库只有一个数据库,不用纠结库名。那么怎么获取Access数据库的表名和字段名,方法只有爆破

账号密码一般在盛行Access数据库的年代,都在admin表的username和password字段中

注意点: Cookie注入的时候一定要把GET类型的传参删除,不然优先执行GET类型传参。

如果不知道库名怎么办?

  就一个库,没必要知道

如果不知道表名怎么办?

  只能靠爆破了,and exists (select*from表名)  如果页面正常,就是存在这个表

  exists 这个函数就是检查子查询能否查询到数据,如果能会返回一个True

如果不知道字段怎么办?

  下节课我们将教你偏移注入,来应对不知道字段名的情况

SQLmap如何跑Cookie注入

sqlmap.py -u

"http://59.63.200.79:8004/shownews.asp" --cookie "id=171"

--level 2

上一篇 下一篇

猜你喜欢

热点阅读