當前位置:首頁 » 編程語言 » sql注入的方法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql注入的方法

發布時間: 2022-02-08 21:20:47

『壹』 sql注入的注入方法

先猜表名
And (Select count(*) from 表名)<>0
猜列名
And (Select count(列名) from 表名)<>0
或者也可以這樣
and exists (select * from 表名)
and exists (select 列名 from 表名)
返回正確的,那麼寫的表名或列名就是正確
這里要注意的是,exists這個不能應用於猜內容上,例如and exists (select len(user) from admin)>3 這樣是不行的
很多人都是喜歡查詢裡面的內容,一旦iis沒有關閉錯誤提示的,那麼就可以利用報錯方法輕松獲得庫裡面的內容
獲得資料庫連接用戶名:;and user>0
這個是小竹提出來的,我這里引用《SQL注入天書》裡面的一段話來講解:
重點在and user>0,我們知道,user是SQLServer的一個內置變數,它的值是當前連接的用戶名,類型為nvarchar。拿一個 nvarchar的值跟int的數0比較,系統會先試圖將nvarchar的值轉成int型,當然,轉的過程中肯定會出錯,SQLServer的出錯提示是:將nvarchar轉換int異常,XXXX不能轉換成int
看到這里大家明白了吧,報錯的原理就是利用SQLserver內置的系統表進行轉換查詢,轉換過程會出錯,然後就會顯示出在網頁上,另外還有類似的and 1=(selet top 1 user from admin),這種語句也是可以爆出來的。;and db_name()>0 則是暴資料庫名。
一旦關閉了IIS報錯,那麼還可以用union(聯合查詢)來查內容,主要語句就是
Order by 10
And 1=2 union select 1,2,3,4,5,6,7,8,9,10 from admin
And 1=2 union select 1,2,3,user,5,passwd,7,8,9,10 from admin
上面的order by 10主要就是查欄位數目,admin就是表名,可以自己猜,user,passwd是列名
反正就是返回正確即對,返回異常即錯
另外還有十分常用的ASCII碼拆半法
先要知道指定列名,例如user里的內容的長度
and (select len(user) from admin)=2 就是查詢長度為不為2位,返回錯誤的增加或減少數字,一般這個數字不會太大,太大的就要放棄了,猜也多餘
後面的邏輯符號可以根據不同要求更改的,
>;大於 <;小於 =就是等於咯,更新語句的話,=也可以表示傳遞符號 <>;就是不等
知道了長度後就可以開始猜解了
And (Select top 1 asc(mid(user,n,1)) from admin)>100
n就是猜解的表名的第幾位,最後的長度數字就是剛才猜解出來的列名長度了,And (Select top 1 asc(mid(user,1,1)) from admin)>100 就是猜解user里內容的第一位的ASCII字元是不是大於100
正確的話,那麼表示USER第一個字元的ASCII碼大於100,那麼就猜>120,返回錯誤就是介於100-120之間,然後再一步一步的縮少,最終得到正確字元XXX,然後用ASCII轉換器吧這個轉換成普通字元就可以了
然後就是第二位 And (Select top 1 asc(mid(user,2,1)) from admin)>100 一直猜下去
加在url後面,列名表名還是先猜解,返回正確的代表帳號的ASCII碼大於100,那麼就再向前猜,直到報錯,把猜出來的ASCII碼拿去ASCII轉換器轉換就可以了,中文是負數,加上asb取絕對值
And (Select top 1 asb(asc(mid(user,n,1))) from admin)>15320
得到之後就記得在數字前加-號,不然ASCII轉換器轉換不來的,中文在ASCII碼里是-23423這樣的,所以猜起來挺麻煩
這個猜解速度比較慢,但是效果最好,最具有廣泛性 後台身份驗證繞過漏洞
驗證繞過漏洞就是'or'='or'後台繞過漏洞,利用的就是AND和OR的運算規則,從而造成後台腳本邏輯性錯誤
例如管理員的賬號密碼都是admin,那麼再比如後台的資料庫查詢語句是
user=request(user)
passwd=request(passwd)
sql='select admin from adminbate where user='&'''&user&'''&' and passwd='&'''&passwd&'''
那麼我使用'or 'a'='a來做用戶名密碼的話,那麼查詢就變成了
select admin from adminbate where user=''or 'a'='a' and passwd=''or 'a'='a'
這樣的話,根據運算規則,這里一共有4個查詢語句,那麼查詢結果就是 假or真and假or真,先算and 再算or,最終結果為真,這樣就可以進到後台了
這種漏洞存在必須要有2個條件,第一個:在後台驗證代碼上,賬號密碼的查詢是要同一條查詢語句,也就是類似
sql=select * from admin where username='&username&'&passwd='&passwd&'
如果一旦賬號密碼是分開查詢的,先查帳號,再查密碼,這樣的話就沒有辦法了。
第二就是要看密碼加不加密,一旦被MD5加密或者其他加密方式加密的,那就要看第一種條件有沒有可以,沒有達到第一種條件的話,那就沒有戲了 防禦方法
對於怎麼防禦SQL注入呢,這個網上很多,我這里講幾個
如果自己編寫防注代碼,一般是先定義一個函數,再在裡面寫入要過濾的關鍵詞,如select ; 「」;from;等,這些關鍵詞都是查詢語句最常用的詞語,一旦過濾了,那麼用戶自己構造提交的數據就不會完整地參與資料庫的操作。
當然如果你的網站提交的數據全部都是數字的,可以使用小竹提供的方法
Function SafeRequest(ParaName,ParaType)
'--- 傳入參數 ---
'ParaName:參數名稱-字元型
'ParaType:參數類型-數字型(1表示以上參數是數字,0表示以上參數為字元)
Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If not isNumeric(ParaValue) then
Response.write 參數 & ParaName & 必須為數字型!
Response.end
End if
Else
ParaValue=replace(ParaValue,','')
End if
SafeRequest=ParaValue
End function
然後就用SafeRequest()來過濾參數 ,檢查參數是否為數字,不是數字的就不能通過。 SQL注入的手法相當靈活,在注入的時候會碰到很多意外的情況。能不能根據具體情況進行分析,構造巧妙的SQL語句,從而成功獲取想要的數據,是高手與「菜鳥」的根本區別。

『貳』 SQL注入攻擊有哪些方法

「SQL注入」是一種利用未過濾/未審核用戶輸入的攻擊方法(「緩存溢出」和這個不同),意思就是讓應用運行本不應該運行的SQL代碼。如果應用毫無防備地創建了SQL字元串並且運行了它們,就會造成一些出人意料的結果。
具體注入參考:http://www.techug.com/sql-injection-attacks-by-example

『叄』 sql注入方式和防禦

注入方式:QL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令。防禦:如果是.net的後台
比如sql語句是
id='"+
textbox.Text
+"'
就會被注入,
如果[email protected]("@id",textbox.Text)
這樣就可以。用replace把單引等特殊字元替換也行

『肆』 如何進行SQL注入攻擊

SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令,首先你要熟悉SQL語句和語法
猜表名
And (Select count(*) from 表名)<>0
猜列名
And (Select count(列名) from 表名)<>0
也可以這樣
and exists (select * from 表名)
and exists (select 列名 from 表名)

『伍』 最簡單有效的sql注入方法,有點好奇

沒有鋪最簡單又有效的sql注入方法、不是每個網站都存在sql注入的、現在的資料庫大部分已經能夠屏蔽注入語句了、如果想找漏洞的話、那得花時間去鑽研、

『陸』 什麼是sql注入sql注入有哪些方式防止sql注入又有哪些方式(.Net下)

所謂SQL注入,其實是程序漏洞,沒有什麼技術,比如下面的語句就可能被注入
SQL="SELECT * FROM ADMIN WHERE USER='" &REQUEST("USER")& "' AND PASS ='" &REQUEST("PASS")& "'"

別人可以精心設計一個PASS參數提交給你,使得你的SQL完成其它功能,例如PASS的值為:
abc' OR USER='admin

這時候SQL語句是什麼樣子,你看看:
SELECT * FROM ADMIN WHERE USER='admin' AND PASS='abc' OR USER='admin'

任何密碼都可以成功登錄。

解決的方法:程序應該判斷USER和PASS這些參數裡面是否有引號等特殊符號。

上面是一個簡單的例子,通過提交精心設計的參數,還可以修改你的資料庫。

『柒』 求教誰給講講SQL注入攻擊的步驟

第一步:SQL注入點探測。探測SQL注入點是關鍵的第一步,通過適當的分析應用程序,可以判斷什麼地方存在SQL注入點。通常只要帶有輸入提交的動態網頁,並且動態網頁訪問資料庫,就可能存在SQL注入漏洞。如果程序員信息安全意識不強,採用動態構造SQL語句訪問資料庫,並且對用戶輸入未進行有效驗證,則存在SQL注入漏洞的可能性很大。一般通過頁面的報錯信息來確定是否存在SQL注入漏洞。
第二步:收集後台資料庫信息。不同資料庫的注入方法、函數都不盡相同,因此在注入之前,我們先要判斷一下資料庫的類型。判斷資料庫類型的方法有很多,可以輸入特殊字元,如單引號,讓程序返回錯誤信息,我們根據錯誤信息提示進行判斷,還可以使用特定函數來判斷。
第三步:猜解用戶名和密碼。資料庫中的表和欄位命名一般都是有規律的,通過構造特殊的SQL語句在資料庫中依次猜解出表名、欄位名、欄位數、用戶名和密碼。
第四步:查找Web後台管理入口。Web後台管理通常不對普通用戶開放,要找到後台管理的登錄網址,可以利用Web目錄掃描工具快速搜索到可能的登錄地址,然後逐一嘗試,便可以找到後台管理平台的登錄網址。
第五步:入侵和破壞。一般後台管理具有較高許可權和較多的功能,使用前面已破譯的用戶名、密碼成功登錄後台管理平台後,就可以任意進行破壞,比如上傳木馬、篡改網頁、修改和竊取信息等,還可以進一步提權,入侵Web伺服器和資料庫伺服器。

『捌』 SQL注入一般步驟

ASP編程門檻很低,新手很容易上路。在一段不長的時間里,新手往往就已經能夠編出看來比較完美的動態網站,在功能上,老手能做到的,新手也能夠做到。那麼新手與老手就沒區別了嗎?這裡面區別可就大了,只不過外行人很難一眼就看出來罷了。在界面的友好性、運行性能以及網站的安全性方面是新手與老手之間區別的三個集中點。而在安全性方面,新手最容易忽略的問題就是SQL注入漏洞的問題。用NBSI 2.0對網上的一些ASP網站稍加掃描,就能發現許多ASP網站存在SQL注入漏洞,教育網里高校內部機構的一些網站這種漏洞就更普遍了,可能這是因為這些網站大都是一些學生做的緣故吧,雖然個個都很聰明,可是畢竟沒有經驗,而且處於學習中,難免漏洞多多了。本文主要講講SQL注入的防範措施,而要明白這些防範措施的用處,須先詳細講解利用SQL注入漏洞入侵的過程。新手們看明白啦。

相當大一部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。如這是一個正常的網址http://localhost/lawjia/show.asp?ID=444,將這個網址提交到伺服器後,伺服器將進行類似Select * from 表名 where 欄位="&ID的查詢(ID即客戶端提交的參數,本例是即444),再將查詢結果返回給客戶端,如果這里客戶端故意提交這么一個網址:

http://localhost/lawjia/show.asp?ID=444 and user>0,這時,伺服器運行Select * from 表名 where 欄位=444 and user>0這樣的查詢,當然,這個語句是運行不下去的,肯定出錯,錯誤信息如下:

·錯誤類型:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]將 nvarchar 值 'sonybb' 轉換為數據類型為 int 的列時發生語法錯誤。
/lawjia/show.asp, 第 47 行

但是別有用心的人從這個出錯信息中,可以獲得以下信息:該站使用MS_SQL資料庫,用ODBC連接,連接帳號名為:sonybb。所謂SQL注入(SQL Injection),就是利用程序員對用戶輸入數據的合法性檢測不嚴或不檢測的特點,故意從客戶端提交特殊的代碼,從而收集程序及伺服器的信息,從而獲取想得到的資料。通常別有用心者的目標是獲取網站管理員的帳號和密碼。比如當某個人知道網站管理員帳號存在表login中,管理員帳號名為admin,他想知道管理員密碼,這里他從客戶端接著提交這樣一個網址:
http://localhost/lawjia/show.asp?ID=444 and (Select password from login where user_name='admin')>0,返回的出錯信息如下:

·錯誤類型:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]將 varchar 值 '!@#*&admin' 轉換為數據類型為 int 的列時發生語法錯誤。
/lawjia/show.asp, 第 47 行

你知道嗎?上面標紅的部分就是管理員帳號admin的密碼!雖然很復雜,讓人看幾遍也記不住的,但它就這樣顯示在你面前了,這時您就可以用這個帳號和密碼接管人家的網站了!這時你可能還會說,如果他不是事先知道管理員帳號存在表login中,而且知道管理員帳號為admin,那他就不可能獲得管理員密碼。你錯了,只要人家願意多花時間嘗試,他將可以獲得資料庫連接帳號許可權內所能獲得的所有信息!具體過程請參看網上的這篇文章:SQL注入漏洞全接觸。

當然這個過程是很煩瑣的而且要花費很多的時間,如果只能以這種手動方式進行SQL注入入侵的話,那麼許多存在SQL注入漏洞的ASP網站會安全很多了,不是漏洞不存在了,而是利用這個漏洞入侵的成本太高了。但是如果利用專門的黑客工具來入侵的話,那情況就大大不同了。手動方式進行SQL注入入侵至少需要半天或一天乃至很多天的時間,而利用專門的工具來入侵就只需要幾分鍾時間了(視網速快慢決定),再利用獲得的管理帳號和密碼,上傳一個從網上下載的ASP後門程序,就輕易獲得整個網站的管理許可權了,甚至整個伺服器的管理許可權。最有名的一種SQL注入入侵工具是NBSI 2.0,現在已經出到2.0版本了,不過,人家正式名稱不叫SQL注入入侵工具,而叫做網站安全漏洞檢測工具。有了這個所謂的檢測工具,使得入侵存在SQL注入漏洞的ASP網站成了小兒科的游戲,那些既不懂ASP又不懂SQL、年紀小小的男性青年常常得以在一天之內入侵十多個ASP網站,他們以此獲得內心的極大滿足。他們似乎也非常講究職業道德,往往並不破壞網站數據和系統,常見的破壞方式大都僅僅是改換掉網站的主頁,留下"善意的警告",如:你的網站存在SQL注入漏洞,請管理員做好防範措施!並聲明"我沒有破壞數據和系統",有的還要借機發布一下他的倡導:"國內網站大家不要入侵,有本事入侵小日本的!",最後,簽上他的鼎鼎大名是必不可少的程序。

如此大的成就多數情況下僅需動動滑鼠就做到了。打開最新版的NBSI 2.0,如圖1所示:輸入地址到A區,注意網址必須是帶傳遞參數的那種,點擊右邊的檢測按鈕,即出來B區信息,顯示當前用戶為sonybb的許可權為PUBLIC,當前庫為lawjia。有點可惜啊,如果是SA許可權的話,就可以跨庫注入了。不過,這個許可權也足夠獲取該網站管理員帳號和密碼了。點C區下的自動猜解按鈕,即出來當前庫lawjia中的各種表,哇,login表中一定是存管理員帳號和密碼的吧?選中它吧,接著點擊D區下的自動猜解按鈕,立即出來login表裡的列名稱,果然是存放用戶名和密碼的啊,太棒了!趕快打上勾,迫不急待的點擊E區下的自動猜解按鈕。激動人心的時刻就要到來啦,只見唰唰地幾下,帳號與密碼全部出來了。剩下的事就是辨別哪一個帳號是管理員了。

圖1(圖中的示例網站在作者本地電腦上運行)

不知那些沒注意過SQL注入漏洞的ASP程序員們看了上圖的例子,要作何感想呢?是不是覺得這個所謂的網站安全漏洞檢測工具SBSI 2.0簡直就是MS_SQL的企業管理器呢?只不過人家不需要帳號和密碼就可以查看您資料庫里的所有信息了。如果您的網站就這樣被人不費吹灰之力入侵了,您是不是要吐幾升血了呢?也許您已經為系統安全費盡心思了,裝補丁、安防火牆、裝殺毒軟體、巧妙配置IIS及資料庫用戶許可權,但您就是沒有注意到SQL注入漏洞,於是"千里之堤,潰於蟻穴"。防火牆與殺毒軟體對SQL注入是沒辦法防範的,因為SQL注入入侵跟普通的WEB頁面訪問沒什麼區別,所以往往是防不甚防。而且一個伺服器上放置的網站往往是有很多個的,伺服器管理員不可能挨個網站挨個頁面的審查其是否存在SQL注入漏洞。那麼應該如何防範SQL注入入侵呢?作為伺服器管理員或網站程序員應該分別怎麼做呢?伺服器管理員要做的事主要是配置IIS和資料庫用戶許可權,而網站程序員主要是要在程序代碼編寫上防範SQL注入入侵。下面詳細敘述:

對了伺服器管理員,既然你不可能挨個檢查每個網站是否存在SQL注入漏洞,那麼就來個一個絕招。這個絕招能有效防止SQL注入入侵而且"省心又省力,效果真好!"SQL注入入侵是根據IIS給出的ASP錯誤提示信息來入侵的,如果你把IIS設置成不管出什麼樣的ASP錯誤,只給出一種錯誤提示信息,即http 500錯誤,那麼人家就沒辦法入侵了。具體設置請參看圖2。主要把500:100這個錯誤的默認提示頁面 C:\WINDOWS\Help\iisHelp\common\500-100.asp改成
C:\WINDOWS\Help\iisHelp\common\500.htm即可,這時,無論ASP運行中出什麼錯,伺服器都只提示HTTP 500錯誤。

圖2、IIS出錯信息設置

但是這樣設置一個不好的地方是程序員編寫的代碼出錯時,伺服器不給出詳細的錯誤提示信息,會給程序員帶來很大的不便。不過,伺服器畢竟不是測試代碼的地方,應堅持安全穩定第一,這樣設置也是無可厚非的,事實上許多伺服器的出錯信息都是如此設置。

伺服器管理員還應在IIS中為每個網站設置好執行許可權,可千萬別給人家靜態網站以"腳本和可執行"許可權。一般情況下給個"純腳本"許可權就夠了,對於那些通過網站後台管理中心上傳的文件存放的目錄,就更吝嗇一點吧,執行許可權設為"無"好了,這樣做是為了防止人家上傳ASP木馬,執行許可權設為"無",人家上傳ASP木馬也運行不了。一般情況下,SQL注入漏洞僅是涉及一個網站安全的事,如果人家通過這個漏洞上傳了ASP木馬並運行起來,那整個伺服器都失陷了。所以有遠見的、有責任心的伺服器管理員應該十分吝嗇的配置IIS的執行許可權。

同樣的吝嗇態度應適用於資料庫用戶的許可權配置上,當然這里資料庫是指MS_SQL啦,ACCESS都沒有用戶許可權配置這一步驟。如果PUBLIC許可權足夠使用的絕不給再高的許可權,可千萬別把SA級別的許可權隨隨便便地給人家啊。那個所謂的網站安全漏洞檢測工具NBSI 2.0可有跨庫進行SQL注入的功能啊,如果你把SA許可權給了存在SQL注入漏洞的庫,那其它庫就不保啦!城門失火,殃及池魚呀。而人家還可以通過調用xp_cmdshell命令得到系統的最高許可權。具體步驟還是請參看上面提到的那篇《SQL注入漏洞全接觸》這篇文章吧。

接下來要講講程序員的防範措施了。程序主要要做兩件事,最重要的一件事,當然是對客戶端提交的變數參數進行仔細地檢測啦。對客戶端提交的變數進行檢查以防止SQL注入,有各種方法,到http://community.csdn.net/上搜索一下,你能獲得許多有益信息。這里介紹一種現成的方法,別人已經寫好了檢測代碼,拿來用一下,不用自己辛苦啦。那就是"楓葉SQL通用防注入V1.0 ASP版",這是一段對用戶通過網址提交過來的變數參數進行檢查的代碼,發現客戶端提交的參數中有"exec、insert、select、delete、from、update、count、user、xp_cmdshell、add、net、Asc"等用於SQL注入的常用字元時,立即停止執行ASP並給出警告信息或轉向出錯頁面。大家可以到網上搜索一下,下載這段代碼,存為一個ASP頁面,如checkSQL.asp,把這個頁面include到每個需要帶參數查詢SQL資料庫ASP頁面中,記住,只要加一行這樣的<!--#include file="checkSQL.asp"-->代碼就行了。

程序員要做的第二件事是給用戶密碼加密啦。比如用MD5加密。MD5是沒有反向演算法,不能解密的。人家即使知道經加密後存在資料庫里的像亂碼一樣的密碼,他也沒辦法知道原始密碼了。不過,人家可以用UPDATE方法用他的密碼代替你的密碼,但這個操作還是有點麻煩,人家可能會怕麻煩而放棄。而那個所謂的網站安全漏洞檢測工具NBSI 2.0是沒有提供UPDATE操作功能的,所以用MD5加密後,人家僅用NBSI 2.0而不輔以手動操作的話,就不可能獲得網站管理員帳號的密碼,這將擋住許多菜鳥級的攻擊者,至少那些既不懂ASP又不懂SQL、年紀小小的男性青年是沒有辦法啦!

文章寫到這,已經夠長了,本來還想對那些所謂的網站安全漏洞檢測工具如NBSI之流的黑客工具進行一番理性的探討的,看來還是放棄好了。為了增強網站安全,了解攻擊手段是必須的,但是,利用漏洞開發專門的黑客工具,使那些其實並不具備必要的網路技術和網路安全知識的人(就是文中提到的"既不懂ASP又不懂SQL、年紀小小的男性青年")輕而易舉地侵入一家網站,這除了為許多網路管理員製造麻煩外,是否還具有加強網路安全意識提高網路安全水平的功效呢?

『玖』 用最簡單的方法講解什麼是SQL注入

一個資料庫一般都包含有若干張表,如同我們前面暴出的資料庫中admin表包含有管理員信息,而user表則包含有所有的論壇用戶信息一樣。以下面這張表為例:
Dv_User
UserID UserName UserPassword UserEmail UserPost
1 admin 469e80d32c0559f8 [email protected] 0
2 Test 965eb72c92a549dd [email protected] 0
這是DVBBS 7.0的資料庫中所有用戶資料的表,Dv_User 是表名。每一行代表一個用戶,每一列是該用戶的某種屬性。我們最感興趣的自然是用戶名與密碼這樣的屬性了。
SQL是一種用於操作資料庫的規范化語言,不同的資料庫(MSSQL、MYSQL、ORACLE……)大體上都是一樣的。比如我們要查詢資料庫中的信息:
select UserName,UserPassword from Dv_User where UserID=1;
這就是一個最典型的SQL查詢語句,它的意思是,在Dv_User這張表中,將UserID為1的用戶名與密碼查詢出來。
得到的結果是:admin 469e80d32c0559f8
SELECT語句語法:
SELECT [列名],[列名2]…… FROM [表名] WHERE [限制條件]
例:
SELECT * FROM Dv_User where UserID=1
表示查詢UserID為1的所有信息。
更新:
UPDATE [表名] SET [列名]=新值 WHERE [限制條件]
例:
UPDATE Dv_User set [UserPassword]=』 965eb72c92a549dd』 WHERE UserName=』admin』
此語句將把Dv_User表中的UserName為admin的那一行中UserPassword的值改為965eb72c92a549dd。
刪除:
DELETE FROM [表名] WHERE [限制條件]
例:
DELETE FROM Dv_User WHERE UserName=』test』
將用戶名為test的那一行從Dv_User表中刪除
二、SQL注射漏洞簡述
SQL語法看很容易上手,那SQL漏洞是怎麼來的呢?」
if id<>"" then
sql="SELECT * FROM [日記] WHERE id="&id
rs.Open sql,Conn,1
我們這段代碼是提取自BBSXP論壇的,經過我改動以後,把它做成了一個有漏洞的頁面給你講述SQL漏洞的原理。」
那張日記的表內容如下:
日記
id username title content adddate
我們訪問 localhost/bbsxp/blog.asp?id=1
的時候結果如圖1。
「訪問blog.asp的時候,我們提交的參數id為1,那麼放到SQL語句里就變成了:
SELECT * FROM [日記] WHERE id=1
所以就得到我們看到的那個頁面,這就是sql注入的成因。
1樓2010-07-17 09:52
舉報 |
個人企業舉報
垃圾信息舉報
C級丶娛樂
正式會員
5
SQL漏洞的起源就從這里開始了!注意到了嗎?id的值是由我們提交的

『拾』 怎麼sql注入攻擊

簡單的說就是在登陸的時候,用戶名和密碼那兒注入SQL語句,直接取得許可權。這種方法以前還可以,現在好多網站或者軟體都有防備了。