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

sql注入文件寫入

發布時間: 2022-08-08 01:48:35

『壹』 網站如何防止sql注入攻擊的解決辦法

首先我們來了解下什麼是SQL注入,SQL注入簡單來講就是將一些非法參數插入到網站資料庫中去,執行一些sql命令,比如查詢資料庫的賬號密碼,資料庫的版本,資料庫伺服器的IP等等的一些操作,sql注入是目前網站漏洞中危害最大的一個漏洞,受攻擊的網站佔大多數都是sql注入攻擊。

sql注入攻擊用英語來講Structured Query Language,在網站的編程語言當中是一種比較另類的網站開發語言,我們網站安全行業通常來講sql是用來資料庫查詢的一種網站開發語言,同時也是一種腳本文件的一個文件名,通俗來講sql就是用來對網站的資料庫進行查詢,以及增加,寫入,更新資料庫的一個sql資料庫操作。

關於資料庫我們分為2種資料庫,一種是關系資料庫,非關系資料庫,那麼目前網站使用的都是關系資料庫,關系資料庫分為sql資料庫,microsoft sql server資料庫,ACC資料庫,mysql資料庫,oracle資料庫,DB2資料庫,postgresql資料庫等等的關系資料庫,非關系資料庫分為nosql資料庫,可以存儲很大數據,針對於一些並發較高,存儲較多,雲計算的場景,頻繁讀取寫入的資料庫,像memcachedb,redis,mongodb等等非關系資料庫。

那麼什麼是sql注入呢? 簡單來講就是對網站強行進行插入數據,執行sql惡意語句對網站進行攻擊,對網站進行sql注入嘗試,可以獲取一些私密的信息,像資料庫的版本,管理員的賬號密碼等等。

關於如何防止sql注入攻擊,我們從以下幾點開始入手

首先我們可以了解到sql注入攻擊都是通過拼接的方式,把一些惡意的參數拼接到一起,然後在網站的前端中插入,並執行到伺服器後端到資料庫中去,通常我們在寫PHP網站代碼的時候會將get ID這個參數值獲取到後直接拼接到後端伺服器中去,查詢資料庫,但是如果拼接了一些惡意的非法參數,那麼久可以當做sql語句來執行,如果防止sql注入呢?

為了防止網站被sql注入攻擊,我們應該從一開始寫代碼的時候就應該過濾一些sql注入的非法參數,將查詢的一些sql語句,以及用戶輸入的參數值都以字元串的方式來處理,不論用戶輸入的什麼東西,在sql查詢的時候只是一段字元串,這樣構造的任何惡意參數都會以字元串的方式去查詢資料庫,一直惡意的sql注入攻擊就不會被執行,sql注入語句也就沒有效果了,再一個就是網站里的任何一個可以寫入的地方盡可能的嚴格過濾與限制,漏下一個可以輸入的地方網站就會被攻擊,網站就會被黑,所有做的網站安全就會沒有效果,包括一些get,post,cookie方式的提交都是不可信的,像數據表裡referer user-agent等欄位都是可以偽造,寫入sql注入語句的,像前端時間爆發的ecshop漏洞利用的就是user.php,偽造referer參數進行了sql注入,執行了遠程代碼。

再一個防止sql注入的方法就是開啟PHP的魔術配置,開啟安全配置模式,將safe_mode開啟on.以及關閉全局變數模式,register_globals參數設置為on,magic_quotes_gpc參數開啟,防止sql注入.如果對網站防止sql注入不懂的話,也可以找專業的網站安全公司來做安全,防止sql注入。

『貳』 防止SQL注入,怎麼把管理員信息寫到登陸驗證文件中

就是說在代碼中使用字元串常量了,這是一種很原始的方法.比如
if(username=="admin"){...}
if($_POST["username"]=="admin"){...}
If Request.Form("username")="admin" Then
不知道你用什麼語言.隨便寫了幾行.

『叄』 關於sql手動注入

1.判斷有無注入點
; and 1=1 and 1=2
2.猜表一般的表的名稱無非是admin adminuser user pass password 等..
and 0<>(select count(*) from *)
and 0<>(select count(*) from admin) —判斷是否存在admin這張表
3.猜帳號數目 如果遇到0< 返回正確頁面 1<返回錯誤頁面說明帳號數目就是1個
and 0<(select count(*) from admin)
and 1<(select count(*) from admin)
4.猜解欄位名稱 在len( ) 括弧裡面加上我們想到的欄位名稱.

『肆』 什麼是SQL語句注入該如何防止數據SQL數據注入

sql 注入:

就是通過表單將包含sql命令的信息發送至後台,後台將這些信息按照sql命令的方式,得到運行,那麼我們稱這種行為為sql注入。

如下所示:sql注入漏洞防止方法

參數化是目前sql注入防止的最佳方法。

請參閱,如有疑問,請及時溝通!

『伍』 跪求SQL手工注入語句及原理

先舉個例子,你要登錄一個網站,上面讓你輸入用戶名字和密碼。那麼,假如你輸入的用戶名是 admin ,但是你不知道密碼,你就輸入了一個 1' OR '1' = '1 ,那麼,你就提交了兩個參數給伺服器。假如,伺服器拿這兩個參數拼SQL語句:SELECT T.* FROM XXX_TABLE TWHERE T.USER_ID = '/*param1*/'AND T.PASSWORD = '/*param2*/'那麼,你提交的兩個參數就使SQL文變成了:SELECT T.* FROM XXX_TABLE TWHERE T.USER_ID = 'admin'AND T.PASSWORD = '1' OR '1' = '1'那麼,這個SQL原來的校驗功能就被你繞過去了,你的這種行為就稱之為SQL注入。

『陸』 什麼是SQL注入

給你推薦個軟體,用幾天就熟悉SQL注入了。
-----------------------------------------------------------------

WebCruiser - Web Vulnerability Scanner (Web應用漏洞掃描器)
WebCruiser - Web Vulnerability Scanner, a compact but powerful web security scanning tool! It has a Crawler and Vulnerability Scanner(SQL Injection, Cross Site Scripting, XPath Injection etc. ). It can support not only scanning website, but also Prooving of concept for web vulnerabilities: SQL Injection, Cross Site Scripting, XPath Injection etc. WebCruiser是一個小巧但功能不凡的Web應用漏洞掃描器,它能夠對整個網站進行漏洞掃描,並能夠對發現的漏洞(SQL注入,跨站腳本,XPath注入等)進行驗證;它也可以單獨進行漏洞驗證,作為SQL注入工具、XPath注入工具、跨站檢測工具使用。

功能簡介:
* 網站爬蟲(目錄及文件);
* 漏洞掃描(SQL注入,跨站腳本,XPath注入);
* 漏洞驗證(SQL注入,跨站腳本,XPath注入);
* SQL Server明文/欄位回顯/盲注;
* MySQL欄位回顯/盲注;
* Oracle欄位回顯/盲注;
* DB2欄位回顯/盲注;
* Access欄位回顯/盲注;
* 管理入口查找;
* GET/Post/Cookie 注入;
* 搜索型注入延時;
* 自動從自帶瀏覽器獲取Cookie進行認證;
* 自動判斷資料庫類型;
* 自動獲取關鍵詞;
* 多線程;
* 高級:代理、敏感詞替換/過濾;
* 報告;
---------------------------------------------------
Function:
* Crawler(Site Directories And Files);
* Vulnerability Scanner(SQL Injection, Cross Site Scripting, XPath Injection etc.);
* POC(Proof of Concept): SQL Injection, Cross Site Scripting, XPath Injection etc.;
* GET/Post/Cookie Injection;
* SQL Server: PlainText/FieldEcho(Union)/Blind Injection;
* MySQL/Oracle/DB2/Access: FieldEcho(Union)/Blind Injection;
* Administration Entrance Search;
* Time Delay For Search Injection;
* Auto Get Cookie From Web Browser For Authentication;
* Report Output.

『柒』 SQL語句注入

簡單舉例,某登錄界面用 select 1 from tabUser where username = @val1 and password = @val2 來驗證輸入的用戶名密碼是否有效,只有兩者都正確才會返回 1.

如果你在密碼輸入框(@val2 )輸入 abc or 1 = 1,那麼整個語句就變成 ... where .. and ... or 1=1,很明顯,這條語句總是會返回 1 的。

結果就是雖然沒有正確的用戶名密碼,但成功登錄了。

『捌』 動網7.1 sql版最新注入漏洞的詳細利用以及如何在後台獲取webshell

我就給大家講幾個常用的webshell獲取方法。
1 上傳
說到上傳獲得webshell,就不得不提大名鼎鼎的動網7.0SP2之前的文件上傳漏洞了,那可是連官司方都沒能倖免於難的啊!其中的成因嗎不太好說,大概地說就是字元截斷的問題。我們還是來看看怎麼利用吧。這里我們要請出老兵的萬能上傳工具呢(圖76),為什麼叫萬能上傳工具呢?很簡單,因為連大名鼎鼎的動網論壇都沒有注意到這個嚴重漏洞,其它許多系統自然也避免不了,所以說這個工具是「萬能」的,下面我們找一個沒打過SP2補丁的dvbbs,注冊一個帳號,登錄進去後看有沒有禁止上傳,如果沒有禁止,我們就是提取當前cookies保存起來(怎麼提取?又忘了不是,前面不是說過可以用修改cookies瀏覽器提取嗎?)然後在萬能上傳工具處填好漏洞url,欲上傳的文件和cookies等信息(圖77),點「上傳」,不一會就提示成功了(圖78),我們現在來訪問這個上傳後的文件,看,是不是得到一個shell呢(圖79)
當然,並不是所有的系統都能用這個方法上傳的。下面我再總結幾個常見的上傳方法。
1、進入後台直接上傳。有些系統對管理員可是十分信任的哦,進了後台只要找到有上傳的地方你就可以直接選匹馬放上去,絕不會有任意阻攔(圖80)。
2、添加上傳類型上傳。如果不能直接上傳,可找找看有沒有添加上傳類型的地方,有的話添加一個ASP就可以了。當然,有些系統在代碼中就限定了不允許上傳ASP文件,不要緊,我們可以添加允許上傳ASA、CER等文件,然後把.asp的後綴改為ASA或CER上傳,一樣可用的(圖81)。
3、抓包上傳。這里就要利用Win2000的一個小漏洞了,如果文件名的結尾是空格或「.「號,那麼windows會自動把這個符號「吃」掉。那麼,我們就可以添加允許上傳「ASP 」文件,注意ASP後有個空格,ASP 可不等於ASP啊,所以代碼里的限制就沒用了。然後我們來到文件上傳界面,選擇一個ASP文件,先別上傳。我們打開抓包工具Wsock Expert(圖82),選擇監控IE的上傳窗口,然後回到上傳界面,點擊上傳,提示上傳失敗。預料之中。我們來到Wsock Expert,找到剛才提交的數據包(圖83),看到那個mm.asp沒有,我們在這個後面加個空格,再用NC提交,成功上傳!
4、利用表單沖突上傳。用這個方法最典型的就是動力3.51的上傳了。我們同樣注冊一個用戶,來到發表文章處。切換到「源代碼」模式,輸入下面的代碼:
<FORM name=form1 onsubmit="return check()" action=upfile_article.asp method=post encType=multipart/form-data><INPUT class=tx1 type=file name=FileName> <INPUT class=tx1 type=file name=FileName><INPUT style="BORDER-RIGHT: rgb(88,88,88) 1px double; BORDER-TOP: rgb(88,88,88) 1px double; FONT-WEIGHT: normal; FONT-SIZE: 9pt; BORDER-LEFT: rgb(88,88,88) 1px double; LINE-HEIGHT: normal; BORDER-BOTTOM: rgb(88,88,88) 1px double; FONT-STYLE: normal; FONT-VARIANT: normal" type=submit value=上傳 name=Submit></FORM>
再來到「預覽」模式,是不是看到了兩個選擇上傳文件的框卻只有一個上傳按鈕啊(圖84)?我們在第一個框處選擇一個ASP文件,第二個框處選擇一個jpg文件,然後點上傳。可能會提示沖突,但我們返回「源代碼」模式,就可以看到我們上傳後的Webshell地址了。
5、利用代碼對文件類型的限制上傳。現在許多代碼為了安全都限制了上傳ASP文件,但一些代碼的限制方法實在令我不敢恭維。我見過有些代碼的限制方式是一遇到ASP就把它去掉的。那麼,我們完全可以添加一個上傳類型「ASASPP」,這樣一來,在上傳過程中代碼會把中間為ASP去掉,後綴的自然也就變為ASP的了。
6、利用其它上傳工具。老兵的萬能工具雖名為萬能,但因為有些系統的上傳代碼與動網的是有差異的,所以這個工具對它就失效了。我這里還收集了別的一上上傳利用專用程序。比如去緣雅境的,操作起來也十分簡單,相信大家都會用的。
(2)寫入過濾不完全,
因為現在許多系統都是可以用FSO功能直接寫入其文件的,如果寫入文件的過濾不完全,也可以直接往裡寫個webshell,如動易的conife.asp。這里我要講的是leadbbs後台友情鏈接添加處寫入webshell,我們來到後台的添加友情鏈接處,點「新增友情鏈接」(圖85),然後在「網站名稱處填上冰方後浪子微型ASP後門式海洋的一句話木馬,其它亂填(圖86),然後我們用客戶端連接,成功了吧!(圖87)
除了對文件寫入的過濾外,還有對資料庫寫入的過濾。當我們暴庫得知資料庫後綴為ASP,但用網際快車能下載時,我們就可以確定這個資料庫里不包含ASP語句,那麼我們只要找到一個可以寫入資料庫的地方,寫入一句話木馬,再用客戶端連接,一樣可以成功的。
3、後台備分及恢復
說起後台的備分和恢復獲取webshell,我可算是頗有研究,也可以說是從這里起步學習技術的,先說說常規的方法吧,一般地,我們就是把一個ASP木馬改為gif後綴上傳,然後記下上傳後的地址,下面,我們來到數據備分頁面(圖88),在「資料庫路徑」處填自己剛才上傳的文件名,在「備分後路徑」處填自己想要種馬的地址,注意後綴為ASP(圖89),點「備分」後我們就得到了自己想要的webshell。
但是,如果像動力一樣不允許定義當前資料庫地址呢?一樣可以的,我們通過暴庫術式後台看到動力的資料庫地址,因為ASP的話,我們一樣可以把一個ASP木馬改為gif的型式,然後上傳,現在,我們來到「資料庫恢復」頁面,看到沒有,可以自定義恢復資料庫的路徑(圖90),我們選擇我們剛才上傳的文件路徑,恢復(圖91),恢復成功後整個系統是用不了,但我們只須直接訪問資料庫地址就可以得到webshell了,當然,為了不被別人發現最好還是先把資料庫備分好,得到shell後再用shell恢復回去。
上面一般說的方法就是我發表的第一篇文件《利用ACCESS得到webshell一文的補充》,至此,數據備分和恢復的利用似乎完了,其實還沒有,還是那個動力系統,如果我們無法得到資料庫地址,或者數據是mdb的,出放到了web外,我們不就用不了上面的方法了嗎?
別急,再繞個彎子,我們來仔細看看這個動力系統,備分處限制了只能備分當前的資料庫,不能備分其它文件,且備分後文件後綴限為ASA,但可以自定義文件名。恢復處只能把數據恢復到當前資料庫文件,如果遇上本段開頭提的那三種情況,我們把一個shell恢復出來也是沒用的。既然不能直接弄出來,我們就老老實實恢復一個比較正常的數據吧。說是比較正常,那是因為這個資料庫雖然對系統沒有影響,但還是做過一些手腳的。
我們拿一個相同系統的空資料庫,把<%nodownload%>表中的內容改為一句話木馬(圖92),然後再在後台添加允許上傳MDB文件,上傳。下面到數據恢復處把剛上傳的文件恢復回去,這時系統仍是正常運行的。我們重新用默認的用戶名admin,密碼admin888登錄後,再到數據備分的地方,把數據備分出來,然後用客戶端連接這個備分的文件就可以了。
對於限制沒那麼嚴的動網,我們可以直接備分就行了。雖然7.1中對備分處做了限制(圖93),但恢復處可設限制(圖94),條件比動力寬松多了。
4、SQL導出。對於有注入點的SQL站點,我們還可以用黑客界中的丐幫幫主——就是那個臭要飯的發明的SQL寫入導出大法得到webshell,其原理是在知道網站物理路徑的情況下通過往SQL資料庫中寫入一個帶木馬的表,再將這個表導出,就得到webshell了。為了不讓管理人員發現,我們還要刪掉這個新建的表。那個臭要飯的還專門對此寫了工叫getwebshell的工具(圖95),使用起來也並不復雜,我也就不再說了。

『玖』 如何對一個網站進行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的,插馬秒殺

『拾』 sql注入攻擊與防禦是什麼

SQL注入攻擊:

惡意用戶在提交查詢請求的過程中將SQL語句插入到請求內容中,同時程序本身對用戶輸入內容過分信任而未對惡意用戶插入的SQL語句進行過濾,導致SQL語句直接被服務端執行。

SQL注入攻擊分類:

①注入點的不同分類:數字類型的注入、字元串類型的注入。

②提交方式的不同分類:GET注入、POST注入、COOKIE注入、HTTP注入。

③獲取信息方式的不同分類:基於布爾的盲注、基於時間的盲注、基於報錯的盲注。

SQL注入攻擊防禦方法:

①定製黑名單:將常用的SQL注入字元寫入到黑名單中,然後通過程序對用戶提交的POST、GET請求以及請求中的各個欄位都進行過濾檢查,篩選威脅字元。

②限制查詢長度:由於SQL注入過程中需要構造較長的SQL語句,因此,一些特定的程序可以使用限制用戶提交的請求內容的長度來達到防禦SQL注入的目的,但這種效果不太好。

③限制查詢類型:限制用戶請求內容中每個欄位的類型,並在用戶提交請求的時候進行檢查,凡不符合該類型的提交方式就認為是非法請求。

④白名單法:該方法只對部分程序有效,對一些請求內容相對固定的程序,可以制定請求內容的白名單,比如:某程序接受的請求只有數字,且數字為1-100,這樣可以檢查程序接受的請求內容是否匹配,如果不匹配,則認為是非法請求。

⑤設置資料庫許可權:根據程序要求為特定的表設置特定的許可權,如:某段程序對某表只需具備select許可權即可,這樣即使程序存在問題,惡意用戶也無法對表進行update或insert等寫入操作。

⑥限制目錄許可權:Web目錄應至少遵循可寫目錄不可執行,可執行目錄不可寫的原則;在此基礎上,對各目錄進行必要的許可權細化。