輕輕繞過你的防線——霸道的柯南圖片管理系統

                                                                  by   lake2

    前些天在瀏覽某個站點的時候,一時手癢,在URL後面加了個“ and 1=2”意在看看這系統有沒有SQL注射漏洞,哪曉得瀏覽器彈出兩個對話框然後無限的彈出窗口。只得趕緊結束掉進程,鬱悶,我用的TT瀏覽器,其他的窗口也給結束了,5555~~~
    真是豈有此理,注射你也不用這樣子整我吧,我倒要看看你這程序有什麼能耐。到底不敢再去試那個系統,就從其他地方下手得到了webshell,經過打探,原來那是一個叫做“柯南圖片管理系統”的東東。
    曉得了牌子那就好辦咯,網上Down一個,看看源代碼先。
    它的view.asp裏有這樣的話:

   if instr(id,"'") or instr(id,"select") or instr(id,"in") or instr(id,"from") or instr(id,"len") or instr(id,"where") or instr(id,"or") or instr(id,"and") then
    Response.Write("<script language=javascript>alert('你想做什麼?');window.location.href='check.htm'</script>")
 Response.End
  end if                      '在這裏過濾TMD的不良字符

    現在看看check.htm的內容:

 <script language=javascript>
alert("我Call!你想做什麼???");
for (i=1;i<=10000000000;i++)
  {
   window.open("
http://www.weihai365.com/xxg")
    }
</script>

    看看它的險惡用心吧,彈出兩個對話框之後就會打開100億個窗口,呵呵,爽不?
    當然不能拿給他白白欺負啊,我得突破它的SQL注射防禦才行,呵呵,仔細分析原來他的防禦方法只是形同虛設,我們只需變換一下字符就搞定。
    看他的判斷語句,是用的instr函數判斷的,如果發現and、or、select等關鍵字就轉到check.htm。嗯,看看instr的函數的用法:
        InStr([start, ]string1, string2[, compare])
    有2個可選參數start和compare,問題恰恰出在compare這裏。Compare爲0執行執行二進制比較,爲1執行執行文本比較。默認爲0。簡言之,compare爲0的時候比較時是大小寫敏感的。即instr(“ and 1=2”,”And”)等於0。
    那現在好辦了,只需把它過濾了的關鍵字的一個字母改成大寫,那麼他那麼長的過濾語句就等於只過濾“’”,無所謂啊,反正注射又用不到“’”。
    他的表名是admin,用戶字段admin,密碼字段password,慢慢手工猜吧,呵呵,好像沒有工具可以用,現在知道會編程還是有用處的吧。當然啦,也可以用Union查詢直接得到管理員密碼,這個比猜解快多了,還是寫個程序吧,更快(圖1)。

    複製URL訪問之,誒,不對,你先要把關鍵字轉換一下,特別要注意password包含“or”,admin包含“in”,表說我沒提醒你哦。

    呵呵,還是那句話:Enjoy Hacking
    哦,最後說下如果要防禦的話只需把參數compare設爲1就ok。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章