JavaScript escape() 函数

定义和用法

javascript中的escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

返回值

已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。

说明

该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: – _ . ! ~ * ‘ ( ) 。其他所有的字符都会被转义序列替换。

asp下cookie注入原理

cookie注入原理也和平时的注入一样,只不过说我们是将提交的参数已cookie方式提交了,而一般的注入我们是使用get或者post方式提交,get方式提交就是直接在网址后面加上需要注入的语句,post则是通过表单方式,get和post的不同之处就在于一个我们可以通过IE地址栏处看到我们提交的参数,而另外一个却不能。

相对post和get方式注入来说,cookie注入就要稍微繁琐一些了,要进行cookie注入,我们首先就要修改cookie,这里就需要使用到Javascript语言了。另外cookie注入的形成有两个必须条件,条件1是程序对get和post方式提交的数据进行了过滤,但未对cookie提交的数据库进行过滤。在条件1的基础上还需要程序对提交数据获取方式是直接request(“xxx”)的方式,未指明使用request对象的具体方法进行获取。

例如:

目标站:http://www.xxx.com/Products_show.asp?id=284 ,我们首先要检测下按照平时的方式注入,在网址后面加 and 1=1。

发现该站是使用了防注入系统的,但是目前我们是使用get方式提交的参数,那现在我们将“id=284”这个参数使用cookie提交看看程序对数据接收是否直接使用 request(“xx”)的方式?要更改成cookie方式提交,我们首先要访问正常的页面,即是:http://www.xxx.com/Products_show.asp?id=284,等页面完全打开之后,我们将IE地址栏清空,然后写上:javascript:alert(document.cookie=”id=”+escape(“284”)); 这里的“id=”便是“Products_show.asp?id=284”中的“id=”,“escape(“284”)”中的“284”是“Products_show.asp?id=284”中的“id=284”了,这两处要根据实际情况来定义。写完之后按下回车网页中会弹出一个JS提示对话框,点击确定。

现在更改好了cookie后我们就要试下能不能正常访问了,现在在另外一个窗口中我们打开以下地址:http://www.xxx.com/Products_show.asp? 既是将“id=284”去掉后的,然后看是否能正常访问。

然后发现访问之后的页面与访问http://www.xxx.com/Products_show.asp?id=284的时候是一样的,这样就说明程序在使用request对象获取数据的时候并未指明具体使用什么方法来获取,而是直接使用request(“xx”)的方式。现在cookie形成的一个重要因素已经明确了,接下来我们测试下能否提交特殊字符,看程序是否对数据进行过滤。我们再回到刚才更改cookie的页面,然后在IE地址栏处填写javascript:alert(document.cookie=”id=”+escape(“284 and 1=1”)); 回车后再去 http://www.xxx.com/Products_show.asp? 页面刷新,看页面是否正常,如果正常我们再提交javascript:alert(document.cookie=”id=”+escape(“284 and 1=2”)); 然后再去刷新,这个时候看见出错了。那么,好,这个站我们就可以使用cookie注入了。

 

案例:cookie注射批量拿企业站

首先我们直接百度或者google一下

关键字:inurl:CompHonorBig.asp?id 出现了很多站点.. google一下,我们随便打开一个

打开这个网站随便找到一篇文章..比如地址为http://xxx/shownews.asp?id=225&BigClass=产品展示

现在我们可以开始输入注射语句了:

javascript:alert(document.cookie=”id=”+escape(“86 union select 1,password,username,password,5,6,7,8,9,10,11 from admin”));

输入到IE中,然后会有一个提示

然后我们点确定,然后再进入http://xxx/shownews.asp

我们就可以看到的账号和密码已经被爆出来了,密码是用MD5加密的,拿去试吧,运气好的话,马上就可以拿下了。。。