公告板
 2007-01-18網址變更,請使用新網址瀏覽網站。http://blog.nnickk.com/
 2007-01-17有任何問題歡迎到留言板留言!
 廣告一則電腦桌椅專賣店,另有辦公桌椅、家具、寢具等您來挑...

PJBlog-2.5-搜尋漏洞補強

請大家在自己的PJBlog的搜尋裡,
搜尋這個字串看看,

很有意思吧!

看來是該強化search,擋所有的語法,
新增一個檔案
chtml.asp
檔案內容
CODE:


Function HTMLEncode(fString)

    If Not IsNull(fString) And fString <> &#34;&#34; Then

        fString = Replace(fString, &#34;&&#34;, &#34;&&#34;)

        fString = Replace(fString, &#34;>&#34;, &#34;>&#34;)

        fString = Replace(fString, &#34;<&#34;, &#34;<&#34;)

        fString = Replace(fString, Chr(32), &#34; &#34;)

        fString = Replace(fString, Chr(9), &#34;  &#34;)

        fString = Replace(fString, Chr(34), &#34;&#34;&#34;)

        fString = Replace(fString, Chr(39), &#34;'&#34;)

        fString = Replace(fString, Chr(13), &#34;&#34;)

        fString = Replace(fString, Chr(10) & Chr(10), &#34;</P><P>&#34;)

        fString = Replace(fString, Chr(10), &#34;
&#34;)

        fString = Replace(fString, Chr(255), &#34; &#34;)

        HTMLEncode = fString

    End If

End Function



接著修改
search.asp這個檔案,
在第五行加入


SearchContent=CheckStr(Request.QueryString("SearchContent"))

改成
SearchContent=CheckStr(HTMLEncode(Request.QueryString("SearchContent")))


不好意思,
先前的版本犯了個錯誤,
用Server.HTMLEncode會去使用伺服器內件的函數,
所以伺服器不同會有差異。
改成HTMLEncode,
就會抓我設定的函數,
中文字就可以搜尋了,
不過,
我記得在asp.net底下會出錯,
有出現問題的歡迎提出。


好了,
一般語法的攻擊,
應該都可以避免了。


也可以抓我的檔案覆蓋就行。
[down=attachments/month_0603/k2006329223419.rar]點擊下載此文件[/down]
引用通告地址: 點擊獲取引用地址
標籤:  pjblog
評論: 24 | 引用: 0 | 閱讀: 2683 | 列印 | 文件 | 轉發
 收入網摘
heise [ 2006-04-02 18:49 | 回覆 | 編輯 刪除 ]
它里面有了
nnickk [ 2006-03-31 19:45 | 回覆 | 編輯 刪除 ]
[quote=heise] 其实不 用怎么麻烦的 不用加上面的也可以的 直接把 SearchContent=CheckStr(Request.QueryString("SearchContent")) 換成 SearchContent=CheckStr(HTMLEncode(Request.QueryString("SearchContent"))) 就可以了。 [/quote] 那必須要伺服器有內建htnlencode這個函數, 而且這個函數在伺服器上可能內容都有所不同, 所以像我現在伺服器內建的對中文就會有問題。
heise [ 2006-03-31 19:12 | 回覆 | 編輯 刪除 ]
其实不 用怎么麻烦的 新增一個檔案 chtml.asp 檔案內容 程序代碼 Function HTMLEncode(fString) If Not IsNull(fString) And fString <> "" Then fString = Replace(fString, "&", "&") fString = Replace(fString, ">", ">") fString = Replace(fString, "<", "<") fString = Replace(fString, Chr(32), " ") fString = Replace(fString, Chr(9), " ") fString = Replace(fString, Chr(34), """) fString = Replace(fString, Chr(39), "'") fString = Replace(fString, Chr(13), "") fString = Replace(fString, Chr(10) & Chr(10), "

") fString = Replace(fString, Chr(10), "
") fString = Replace(fString, Chr(255), " ") HTMLEncode = fString End If End Function 不用加上面的也可以的 直接把 SearchContent=CheckStr(Request.QueryString("SearchContent")) 換成 SearchContent=CheckStr(HTMLEncode(Request.QueryString("SearchContent"))) 就可以了。

nnickk [ 2006-03-31 09:08 | 回覆 | 編輯 刪除 ]
[quote=heise]你自己的BLOG改了? 你的不行呀,你自己试试看[/quote] 我的有修改了, 歡迎常來搜尋資料呀...
heise [ 2006-03-31 03:46 | 回覆 | 編輯 刪除 ]
OK了哦
heise [ 2006-03-31 03:39 | 回覆 | 編輯 刪除 ]
你自己的BLOG改了? 你的不行呀,你自己试试看
nnickk [ 2006-03-31 00:35 | 回覆 | 編輯 刪除 ]
給以給我你的網址嗎?
nnickk [ 2006-03-30 22:48 | 回覆 | 編輯 刪除 ]
[quote=beau]站長 可以嚕 辛苦了[/quote] 不好意思, 一時不察, 害你們試了好幾次...
beau [ 2006-03-30 22:37 網址 | 回覆 | 編輯 刪除 ]
站長 可以嚕 辛苦了
nnickk [ 2006-03-30 19:29 | 回覆 | 編輯 刪除 ]
[quote=heise]看看我BLOG的效果 http://www.munaiyi.com/blog/default.asp[/quote] 我很努力的想要看, 可惜打不開...
發表評論
暱 稱: 密 碼:
網 址: E - mail:
驗證碼: 驗證碼圖片 選 項:
頭 像:
內 容: