前言:
document.cookie:表示当前浏览器中的cookie变量
alert():表示弹出一个对话框,在该对话框中单击“确定”按钮确认信息。
escape():该函数用于对字符串进行编码。
cookie注入的原理在于更改本地的cookie,从而利用cookie来提交非法语句,因为cookie也会被带入数据库查询
在aspx中Request.QueryString[“id”]用于接收get提交的数据,Request.Form[“id”]用于接收post提交的数据。如果不指定使用QueryString还是Form接收数据,WEB服务是怎样读取数据的呢,他是先取GET中的数据没有取到,再取POST中的数据如果还没有,在去取Cookies中的数据(可能因为没有指定,所以在取cookie的时候取到了)。
request对象有五个集合,下面予以介绍:
QueryString
:用以获取客户端附在url地址后的查询字符串中的信息。
例如:stra=Request.QueryString ["strUserld"]
Form
:用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)
例如:stra=Request.Form["strUserld"]
Cookies
:用以获取客户端的Cookie信息。
例如:stra=Request.Cookies["strUserld"]
ServerVariables
:用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。
例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址
ClientCertificate
:用以获取客户端的身份验证信息
例如:stra=Request.ClientCertificate["VALIDFORM"],对于要求安全验证的网站,返回有效起始日期。
第一步:抓包 www.xxxxxx.com/Newsshow.asp? ,结果如下:
第二步:先关闭BurpSuite抓包,放行一下!
第三步:清空url栏,并在浏览器加入以下js语句:
javascript:alert(document.cookie="id="+escape("212"));
回车,这里会弹窗id=212;
会发现,id=212在Cookie这里出现了。
所以你在URL上修改cookie的值也就相当于抓包修改包里cookie的值